Wear

Membuat aplikasi untuk smartwatch Wear OS by Google.

Tabel ini mencantumkan semua artefak dalam grup androidx.wear.

Artefak Rilis Stabil Saat Ini Kandidat Rilis Berikutnya Rilis Beta Rilis Alfa
wear 1.1.0 - - 1.2.0-alpha10
wear-input 1.0.0 - - 1.1.0-alpha02
wear-complications-data - - - 1.0.0-alpha15
wear-complications-provider - - - 1.0.0-alpha15
wear-watchface - - - 1.0.0-alpha15
wear-watchface-client - - - 1.0.0-alpha15
wear-watchface-complications-rendering - - - 1.0.0-alpha15
wear-watchface-data - - - 1.0.0-alpha15
wear-watchface-editor - - - 1.0.0-alpha15
wear-watchface-style - - - 1.0.0-alpha15
wear-ongoing - - - 1.0.0-alpha06
wear-phone-interactions - - - 1.0.0-alpha04
wear-remote-interactions - - - 1.0.0-alpha03
Library ini terakhir diperbarui pada: 2 Juni 2021

Mendeklarasikan dependensi

Untuk menambahkan dependensi pada Wear, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk mengetahui informasi selengkapnya.

Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle bagi aplikasi atau modul Anda:

Groovy

dependencies {
    implementation "androidx.wear:wear:1.1.0"

    // Add support for wearable specific inputs
    implementation "androidx.wear:wear-input:1.0.0"
    implementation "androidx.wear:wear-input-testing:1.0.0"

    // Use to implement wear watchface complications
    implementation "androidx.wear:wear-complications-provider:1.0.0-alpha14"

    // Use to implement wear watchfaces
    implementation "androidx.wear:wear-watchface:1.0.0-alpha14"

    // Use to implement a watchface style and complication editor
    implementation "androidx.wear:wear-watchface-editor:1.0.0-alpha14"

    // Use to implement wear ongoing activities
    implementation "androidx.wear:wear-ongoing:1.0.0-alpha05"

    // Use to implement support for interactions from the Wearables to Phones
    implementation "androidx.wear:wear-phone-interactions:1.0.0-alpha04"
    // Use to implement support for interactions between the Wearables and Phones
    implementation "androidx.wear:wear-remote-interactions:1.0.0-alpha03"
}

Kotlin

dependencies {
    implementation("androidx.wear:wear:1.1.0")

    // Add support for wearable specific inputs
    implementation("androidx.wear:wear-input:1.0.0")
    implementation("androidx.wear:wear-input-testing:1.0.0")

    // Use to implement wear watchface complications
    implementation("androidx.wear:wear-complications-provider:1.0.0-alpha14")

    // Use to implement wear watchfaces
    implementation("androidx.wear:wear-watchface:1.0.0-alpha14")
}

Untuk informasi dependensi selengkapnya, lihat Menambahkan dependensi build.

Masukan

Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau punya masukan untuk meningkatkan kualitas library ini. Harap periksa masalah yang sudah diketahui dalam library ini sebelum membuat laporan baru. Anda dapat memberikan suara pada masalah yang ada dengan mengklik tombol bintang.

Laporkan masalah baru

Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.

Wear Ongoing & Interactions Versi 1.0.0

Wear-Ongoing Versi 1.0.0-alpha06

2 Juni 2021

androidx.wear:wear-ongoing:1.0.0-alpha06 dirilis. Versi 1.0.0-alpha06 berisi commit berikut.

Perubahan API

  • Menambahkan kolom Judul ke Ongoing Activity. (I7a405)

Perbaikan Bug

  • SerializationHelper.copy() sekarang membuat salinan informasi defensif (I8b276)
  • Memperbaiki dokumentasi setCategory (Iff01f)

Wear-Ongoing Versi 1.0.0-alpha05

18 Mei 2021

androidx.wear:wear-ongoing:1.0.0-alpha05 dirilis. Versi 1.0.0-alpha05 berisi commit berikut.

Perubahan API

  • OngoingActivity kini memiliki pengambil untuk mengambil semua nilai yang ditetapkan langsung melalui Builder (atau default yang diambil dari Notifikasi terkait). (Id8ac8)

    • Class baru Status kini digunakan untuk membuat status OngoingActivity
    • OngoingActivityData dan OngoingActivityStatus tidak lagi menjadi bagian dari API publik.
  • Class TextStatusPart dan TimerStatusPart tidak lagi menjadi bagian dari API publik. (I57fb6)

    • Untuk membuat Part dengan teks statis, gunakan Status.TextPart.
    • Untuk membuat Part dengan stopwatch (hitungan maju), gunakan Status.Stopwatch
    • Untuk membuat Part dengan timer (hitungan mundur), gunakan Status.Timer

Wear-Ongoing Versi 1.0.0-alpha04

5 Mei 2021

androidx.wear:wear-ongoing:1.0.0-alpha04 dirilis. Versi 1.0.0-alpha04 berisi commit berikut ini.

Perubahan API

  • Di OngoingActivity, metode fromExistingOngoingActivity sekarang disebut recoverOngoingActivity.
  • OngoingActivity kini memiliki rangkaian lengkap pengambil, yang sebelumnya hanya tersedia di OngoingActivityData. (I0ee4d)

Wear-Phone-Interactions Versi 1.0.0-alpha04

7 April 2021

androidx.wear:wear-phone-interactions:1.0.0-alpha04 dirilis. Versi 1.0.0-alpha04 berisi commit berikut ini.

Perubahan API

  • Mengupdate konstanta ErrorCode untuk membuat library baru kompatibel dengan versi lama menggunakan implementasi di Wearable Support Library.

Perbaikan Bug

  • Memperbaiki pengecualian yang disebabkan oleh OAuth API baru saat memulai sesi OAuth.

Wear-Remote-Interactions Versi 1.0.0-alpha03

7 April 2021

androidx.wear:wear-remote-interactions:1.0.0-alpha03 dirilis. Versi 1.0.0-alpha03 berisi commit berikut ini.

Perubahan API

  • Mengubah PlayStoreAvailability menjadi class yang berisi objek pendamping dengan metode statis. Penggunaannya tetap sama.

Perbaikan Bug

  • Memperbaiki dokumen ringkasan untuk WatchFaceConfigIntentHelper agar menampilkan kode contoh dengan benar menggunakan karakter HTML yang sebenarnya.

Wear-Ongoing Wear-Phone-Interactions Versi 1.0.0-alpha03

10 Maret 2021

androidx.wear:wear-ongoing:1.0.0-alpha03 dan androidx.wear:wear-phone-interactions:1.0.0-alpha03 dirilis. Versi 1.0.0-alpha03 berisi commit berikut ini.

Fitur Baru

  • Memigrasikan OAuthClient dari Wearable Support Library ke AndroidX. Class yang dimigrasikan ini berganti nama menjadi RemoteAuthClient dan memberikan dukungan untuk autentikasi jarak jauh pada perangkat Wearable bersama dengan dukungan untuk menambahkan ekstensi OAuth PKCE. Menyediakan class pengendali dan helper tambahan untuk komunikasi.
  • Aktivitas yang sedang berjalan sekarang dapat dikaitkan dengan Notification yang memiliki tag, menggunakan konstruktor OngoingActivity.Builder baru.

Perubahan API

  • Menambahkan dukungan untuk tag notifikasi pada Library Ongoing Activities (I653b4)
  • Memigrasikan OAuthClient dari Wear Support Library ke AndroidX, dan menambahkan dukungan untuk ekstensi OAuth PKCE (I3eaaa)

Wear-Remote-Interactions Versi 1.0.0-alpha02

10 Maret 2021

androidx.wear:wear-remote-interactions:1.0.0-alpha02 dirilis. Versi 1.0.0-alpha02 berisi commit berikut ini.

Fitur Baru

  • Memigrasikan class PlayStoreAvailability dari Wearable Support Library ke AndroidX yang menyediakan API untuk memeriksa apakah Play Store tersedia di Ponsel.

Perbaikan Bug

  • Memigrasikan class PlayStoreAvailability dari Wearable Support Library ke AndroidX. (I69bfe)

Versi 1.0.0-alpha02

10 Februari 2021

androidx.wear:wear-ongoing:1.0.0-alpha02 dan androidx.wear:wear-phone-interactions:1.0.0-alpha02 dirilis. Versi 1.0.0-alpha02 berisi commit berikut ini.

Perubahan API

  • Menambahkan dukungan untuk status yang lebih kompleks. Dukungan tersebut terdiri dari sebuah template (atau beberapa) dan serangkaian Bagian yang akan digunakan untuk mengisi placeholder template. OngoingActivityStatus sekarang memiliki metode statis untuk membuat status sederhana hanya dengan satu bagian (Teks atau Timer), dan Builder untuk membuat status yang lebih kompleks. (I1fe81)
  • Memindahkan class BridgingManager dan BridgingConfig dari Support Library Wear ke AndroidX yang menyediakan API untuk mengaktifkan/menonaktifkan notifikasi saat runtime dan menetapkan tag secara opsional untuk notifikasi yang dikecualikan dari mode bridge. (I3a17e)

Versi 1.0.0-alpha01

27 Januari 2021

androidx.wear:wear-ongoing:1.0.0-alpha01, androidx.wear:wear-phone-interactions:1.0.0-alpha01, dan androidx.wear:wear-remote-interactions:1.0.0-alpha01 dirilis. Versi 1.0.0-alpha01 berisi commit berikut ini.

Perubahan API

  • Memigrasikan library Ongoing Activities ke sub-library baru: wear-ongoing. Class sekarang berada di paket androidx.wear.ongoing (sebelumnya androidx.wear.ongoingactivities) (I7c029)

  • Membuat library dukungan baru untuk menampung class yang mendukung interaksi dari Wearable ke Ponsel. Ini awalnya diisi dengan class yang dimigrasikan dari Wearable Support Library. (Id5180)

  • Memigrasikan class PhoneDeviceType dari Wearable Support Library ke AndroidX. Class yang dimigrasikan berganti nama menjadi PhoneTypeHelper yang menyediakan metode bantuan untuk menentukan jenis ponsel yang akan disambungkan dengan smartwatch saat ini, untuk hanya digunakan di perangkat Wearable. (Ibd947)

  • Membuat library dukungan baru untuk menampung class yang mendukung interaksi antara Wearable dan Ponsel. Ini awalnya diisi dengan class yang dimigrasikan dari Wearable Support Library. (I9deb4)

  • Memigrasikan class WatchFaceCompanion dari Wearable Support Library ke AndroidX. Class yang dimigrasikan berganti nama menjadi WatchFaceConfigIntentHelper yang menyediakan fungsi bantuan untuk menentukan ID dan nama komponen dalam aktivitas konfigurasi tampilan jam di ponsel pendamping, serta dapat digunakan secara lokal untuk mengonfigurasi tampilan jam pada perangkat wearable. (Ia455f)

Wear Complications dan Watchface 1.0.0

Versi 1.0.0-alpha15

2 Juni 2021

androidx.wear:wear-*:1.0.0-alpha15 dirilis. Versi 1.0.0-alpha15 berisi commit berikut ini.

Fitur Baru

Sebagian besar inisialisasi tampilan jam sekarang dilakukan di thread latar belakang, tetapi setelah pemuatan, semua rendering tampilan jam dsb. dilakukan pada UiThread. Terdapat penghalang memori antara pemuatan dan rendering sehingga sebagian besar tampilan jam pengguna tidak perlu melakukan tindakan khusus. Tampilan jam yang menggunakan GLES dapat menjadi pengecualian karena konteksnya spesifik untuk thread dan kita membuat dua konteks tertaut sehingga dapat mengupload resource GL (misalnya tekstur dan shader) di thread latar belakang dan menggunakannya di UiThread.

Kami telah memisahkan pembuatan tampilan jam menjadi tiga fungsi: createUserStyleSchema, createComplicationsManager, dan createWatchFace. Kami berasumsi bahwa createUserStyleSchema dan createComplicationsManager cepat dan createWatchFace mungkin memerlukan waktu untuk memuat aset. Dengan memanfaatkan hal ini, kami telah memperkenalkan WatchFaceControlClient.getDefaultProviderPoliciesAndType yang menampilkan peta ID Detail ke DefaultComplicationProviderPolicies dan ComplicationType default. Proses ini lebih cepat daripada membuat instance headless karena tidak perlu menginisialisasi tampilan jam sepenuhnya untuk melakukan kueri.

Terakhir, detail kini dibuat dengan CanvasComplicationFactory yang memungkinkan pembuatan lambat perender CanvasComplication.

Perubahan API

  • @TargetApi diganti dengan @RequiresApi. (I0184a, b/187447093, b/187447094)
  • Kami telah memperkenalkan WatchFaceControlClient.getDefaultProviderPoliciesAndType yang menampilkan peta ID Detail ke DefaultComplicationProviderPolicies dan ComplicationType default. Jika memungkinkan, jalur cepat yang menghindari pembuatan tampilan jam sepenuhnya digunakan. Untuk memfasilitasi hal ini, WatchFaceService API harus berubah dengan dua metode baru: createUserStyleSchema dan createComplicationsManager yang hasilnya diteruskan ke createWatchFace. Selain itu, Detail sekarang dibuat dengan CanvasComplicationFactory yang memungkinkan pembuatan lambat perender CanvasComplication. (Iad6c1)
  • Kami telah menghapus MOST_RECENT_APP dari SystemProviders. (I3df00)
  • ObservableWatchData kini menjadi class terbatas. (Ic940d)
  • CanvasComplicationFactory.create (yang biasanya terikat io) sekarang dipanggil di thread latar belakang untuk setiap detail sebelum rendering thread UI dimulai. Ada penghalang memori antara pembuatan dan rendering, sehingga tidak diperlukan proses threading khusus. (Ia18f2)
  • Pembuatan tampilan jam sekarang dilakukan di thread latar belakang meskipun semua rendering dilakukan pada UI thread, GlesRenderer mendukung dua konteks tertaut untuk mendukung hal ini. WatchFaceControlClient.createHeadlessWatchFaceClient dan WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient dapat di-resolve sebelum WatchFaceService.createWatchFace selesai. Panggilan API berikutnya akan diblokir hingga inisialisasi watchFace selesai. (Id9f41)
  • EXPANSION_DP dan STROKE_WIDTH_DP tidak lagi terlihat di api.txt. (I54801)
  • Kami telah membuat EditorSession.createOnWatchEditingSession memunculkan TimeoutCancellationException jika ada error, bukan mengirim sesi null. Selain itu, nilai return EditorRequest.createFromIntent dan EditorSession.createOnWatchEditingSession kini menjadi NonNull. (I41eb4)

Versi 1.0.0-alpha14

18 Mei 2021

androidx.wear:wear-*:1.0.0-alpha14 dirilis. Versi 1.0.0-alpha14 berisi commit berikut ini.

Fitur Baru

  • EditorSession.openComplicationProviderChooser kini menampilkan ChosenComplicationProvider yang berisi ID detail, ComplicationProviderInfo, dan Paket yang berisi tambahan lainnya yang ditampilkan oleh pemilih penyedia.
  • Selain itu, kami terus memigrasikan kode ke Kotlin dan sebagian besar API tampilan jam kini ditetapkan di Kotlin.

Perubahan API

  • Properti GlesRenderer eglContext dan eglDisplay kini tidak dapat bernilai null. Setiap error GL kini dilaporkan melalui GlesRenderer.GlesException, bukan melalui RuntimeExceptions. (Ib1005)
  • Kami telah memigrasikan androidx.wear.watchface.complications.rendering.ComplicationDrawable dari Java ke Kotlin (Ibc3eb)
  • Kami telah memigrasikan androidx.wear.watchface.complications.rendering.ComplicationStyle dari Java ke Kotlin (I3375e)
  • Kami menambahkan informasi tentang penyedia detail untuk setiap detail dalam EditorSession. (I37f14)
  • Kami memperluas hasil EditorSession.openComplicationProviderChooser untuk menyertakan informasi yang ditampilkan oleh yang dipilih. (Iead6d)

Wear Complications & Watchface Versi 1.0.0-alpha13

5 Mei 2021

androidx.wear:wear-*:1.0.0-alpha13 dirilis. Versi 1.0.0-alpha013 berisi commit berikut ini.

Fitur Baru

  • Tampilan jam dapat memiliki elemen visual yang penting selain menampilkan waktu dan detail. Untuk memberikan dukungan bagi pembaca layar dalam hal ini, tampilan jam kini dapat menentukan aksesibilitas ContentDescriptionLabels melalui properti additionalContentDescriptionLabels Renderer. Selain itu, untuk mengontrol pengurutan ContentDescriptionLabels, accessibilityTraversalIndex telah ditambahkan ke detail. Ini dapat dimodifikasi oleh ComplicationsUserStyleSetting.

  • Untuk mendorong developer agar mempertimbangkan pembaca layar dengan cermat, kami telah membuat kolom contentDescription ShortTextComplicationData.Builder, LongTextComplicationData.Builder, dan RangedValueComplicationData.Builder yang wajib untuk diteruskan ke konstruktor mereka. Jika ComplicationText.EMPTY diteruskan untuk contentDescription, contentDescription akan otomatis dibuat dari teks dan judul.

  • WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient sekarang melemparkan ServiceStartFailureException jika tampilan jam melemparkan pengecualian selama init. Hal ini akan sangat mempermudah untuk mendiagnosis masalah saat memulai tampilan jam.

Perubahan API

  • Kami menambahkan dukungan untuk memiliki nama komponen null di ComplicationProviderInfo, yang diperlukan untuk mendukung Wear OS versi lama. (I744d2)
  • Kami telah memigrasikan androidx.wear.complications.SystemProviders dari Java ke Kotlin. (Ia1f8b)
  • Kami telah menyembunyikan semua class dari API publik yang ada di android.support.wearable.complications dan membuat wrapper yang sesuai di AndroidX jika diperlukan. (I7bd50)
  • Kami telah mengganti nama metode di TimeDifferenceComplicationText.Builder dari setMinimumUnit menjadi setMinimalTimeUnit. (I20c64)
  • Kami telah membuat kolom contentDescription ShortTextComplicationData.Builder, LongTextComplicationData.Builder, dan RangedValueComplicationData.Builder yang wajib untuk diteruskan di konstruktor. (I8cb69)
  • Kami telah mengganti nama ComplicationProviderService.onComplicationUpdate menjadi onComplicationRequest, serta mengenkapsulasi id dan parameter jenis metode ini menjadi data ComplicationRequest. Pemroses yang sesuai telah diganti namanya menjadi ComplicationRequestListener dan metodenya ComplicationRequestListener.onComplicationData. (Iaf146)
  • Kami telah menghapus metode isActiveAt dari ComplicationData dan mengekspos kolom validTimeRange, bukan metode tersebut. Panggilan metode ini dapat diganti dengan validTimeRange.contains. (I65936)
  • Kami telah mengubah deskripsi metode ComplicationProviderService.onComplicationActivated untuk menerima ComplicationType, bukan int. (Idb5ff)
  • Memigrasi ProviderUpdateRequester dari Java ke Kotlin. (Ibce13)
  • GlesRender.makeContextCurrent kini bersifat publik. Kode tampilan jam mungkin perlu melakukan panggilan gl di luar render dan onGlContextCreated, dan mungkin karena konteks interaktif dan headless, panggilan ini diperlukan. (I8a43c)
  • WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient sekarang melemparkan ServiceStartFailureException jika tampilan jam dilemparkan selama init. Selain itu, WatchFaceService sekarang melemparkan pengecualian jika createWatchFace memerlukan waktu lebih dari 6 detik. (I59b2f)
  • Kami telah menghapus properti id GlesTextureComplication yang tidak digunakan. (I28958)
  • Tampilan jam sekarang dapat menentukan aksesibilitas ContentDescriptionLabels melalui properti additionalContentDescriptionLabels Renderer. Selain mengontrol pengurutan ContentDescriptionLabels, accessibilityTraversalIndex telah ditambahkan ke detail. Ini dapat dimodifikasi oleh ComplicationsUserStyleSetting. (Ib7362)
  • Perluas dokumentasi tentang penanganan peristiwa sentuh di tampilan jam. (Iaf31e)

Perbaikan Bug

  • EditorSession.getComplicationsPreviewData() sekarang menampilkan peta untuk setiap detail yang tidak kosong. Instance EmptyComplicationData digunakan untuk detail kosong. (I1ef7e)

Wear Complications & Watchface Versi 1.0.0-alpha12

21 April 2021

androidx.wear:wear-*:1.0.0-alpha12 dirilis. Versi 1.0.0-alpha12 berisi commit berikut ini.

Fitur Baru

Editor tampilan jam harus menandai bagian tampilan jam yang akan membantu menunjukkan aspek smartwatch yang sedang dikonfigurasi. Kami telah memperluas RenderParameters untuk mengizinkan gaya serta detail untuk ditandai. Ada HighlightLayer opsional baru yang dimaksudkan untuk diredupkan di bagian atas tampilan jam dengan transparansi alfa (API screenshot dapat melakukan peredupan ini untuk Anda, atau menyediakan HighlightLayer sendiri untuk fleksibilitas maksimum). Misalkan Anda memiliki gaya yang memungkinkan Anda mengonfigurasi tampilan smartwatch, perender di renderHighlightLayer bisa menggambar garis di sekitarnya.

Guna mendorong dukungan Penyedia Detail untuk aksesibilitas, kami telah membuat kolom contentDescription PhotoImageComplicationData.Builder, MonochromaticImageComplicationData.Builder, dan SmallImageComplicationData.Builder menjadi argumen konstruktor wajib. ComplicationTapFilter dan Complication.createEdgeComplicationBuilder telah ditambahkan untuk mendukung detail tepi (digambar di sekitar tepi layar). Rendering dan pengujian hit detail tepi diserahkan ke tampilan jam. Pengujian hit tepi tidak didukung dari editor pendamping.

Perubahan API

  • Menambahkan awalan PROVIDER_ ke konstanta di SystemProviders. (I1e773)
  • Kami telah membuat kolom wajib contentDescription PhotoImageComplicationData.Builder, MonochromaticImageComplicationData.Builder, dan SmallImageComplicationData.Builder agar diteruskan di konstruktor. (I9643a)
  • ProviderInfoRetriever.requestPreviewComplicationData diganti namanya menjadi retrievePreviewComplicationData. (I911ee)
  • Memigrasikan ComplicationProviderService dari Java ke Koltin. (I849f2)
  • Metode ComplicationProviderService.onBind sekarang sudah final (I39af5)
  • Kami telah mengaktifkan kembali antarmuka CanvasComplication dan memindahkan CanvasComplicaitonDrawable, GlesTextureComplication, dan ComplicationHighlightRenderer ke wear-watchface-complications-rendering. (I84670)
  • RenderParameters telah difaktorkan ulang untuk mendukung rendering sorotan yang diperluas. Sekarang Anda dapat meminta rendering sorotan untuk gaya serta semua atau satu detail. Selain itu, CanvasRenderer dan GlesRenderer sekarang memiliki metode renderHighlightLayer abstrak baru untuk merender sorotan apa pun yang diminta oleh editor. Lapisan telah diganti namanya menjadi WatchFaceLayer. (Ic2444)
  • ComplicationTapFilter dan Complication.createEdgeComplicationBuilder telah ditambahkan untuk mendukung detail tepi. Rendering dan pengujian hit detail tepi diserahkan ke tampilan jam. Pengujian hit tidak didukung dari dalam editor. (Ia6604)
  • Untuk DoubleRangeUserStyleSetting & LongRangeUserStyleSetting: defaultValue, maximumValue, dan minimumValue sekarang menjadi properti kotlin. Selain itu, fungsi UserStyleSetting.Option seperti toBooleanOption, toCoplicationOptions, toListOption, dan sejenisnya telah dihapus. (I52899)
  • Menambahkan ukuran chin ke properti perangkat yang tersedia untuk tampilan jam. (I76e1e)
  • Konstruktor ComplicationHighlightRenderer sekarang menerima parameter outlineExpansion dan outlineStrokeWidth. (I87009)
  • ComplicationDrawable.getNoDataText sekarang menjadi bagian dari API publik. (I00598)

Versi 1.0.0-alpha11

7 April 2021

androidx.wear:wear-*:1.0.0-alpha11 dirilis. Versi 1.0.0-alpha11 berisi commit berikut ini.

Fitur Baru

  • Menerapkan lebih banyak penyempurnaan pada API tampilan jam. Sebagian besar perubahan adalah penggantian nama sederhana, tetapi InteractiveWatchFaceWcsClient dan InteractiveWatchFaceSysUiClient digabungkan menjadi InteractiveWatchFaceClient.

Perubahan API

  • ContentDescriptionLabel.text kini menjadi ComplicationText, bukan Wearable Support Library lama, TimeDependentText. (I80c03)
  • SystemProviders.GOOGLE_PAY tidak dijamin akan ada di semua perangkat Android R, sehingga telah dihapus dari daftar. Penyedia ini masih mungkin digunakan melalui DefaultComplicationProviderPolicy (If01b5)
  • Kami mengganti nama ComplicationUpdateCallback menjadi ComplicationUpdateListener agar konsisten. (I61ec7)
  • Peta format kawat UserStyle telah diubah menjadi Map<String, byte[]> dan untuk memudahkan, class UserStyleData telah ditambahkan ke API publik dan kini digunakan oleh wear-watchface-client dan wear-watchface-editor. Selain itu, CustomValueUserStyleSetting.CustomValueOption.value kini menjadi byte[], bukan String. (Iaa103)
  • UserStyleSetting dan UserStyleSetting.Option kini masing-masing menggunakan UserStyleSetting.Id dan UserStyleSetting.Option.Id untuk menyimpan ID, bukan String. (I63f72)
  • InteractiveWatchFaceClient.SystemState diganti namanya menjadi WatchUiState. (I6a4e0)
  • InteractiveWatchFaceWcsClient dan InteractiveWatchFaceSysUiClient digabungkan karena sulit menjelaskan pembagian tanggung jawab (Iff3fa)
  • Nilai enum lapisan diganti namanya agar jelas. Layer#TOP_LAYER kini menjadi Layer#COMPLICATIONS_OVERLAY dan Layer#BASE_LAYER kini menjadi Layer#BASE (Ia144e)
  • UserStyleListener diganti namanya menjadi UserStyleChangeListener (I18524)
  • UserStyleRepository diganti namanya menjadi CurrentUserStyleRepository (I6ea53)
  • InteractiveWatchFaceWcsClient.updateInstance diganti namanya menjadi updateWatchfaceInstance. (I321dc)
  • Peristiwa WatchFace TapType diganti namanya agar selaras dengan MotionEvents/Compose. (I0dfd0)
  • takeWatchfaceScreenshot diganti namanya menjadi renderWatchFaceToBitmap, takeComplicationScreenshot diganti namanya menjadi renderComplicationToBitmap (Ie0697)
  • Antarmuka CanvasComplication dihapus dan digantikan oleh class CanvasComplicationDrawable terbuka. (I1f81f)
  • WatcfaceControlServiceFactory telah dihapus dari API publik. (I1f8d3)
  • Kami telah mengganti nama CanvasComplication.setData menjadi CanvasComplication.loadData. (If1239)
  • ComplicationsManager.bringAttentionToComplication diganti namanya menjadi displayPressedAnimation. (Ic4297)
  • WatchFaceService.createWatchFace kini memiliki anotasi @UiThread. (Ib54c2)
  • Mengubah nama parameter CanvasComplicationDrawable untuk memperbaiki bug. (I50dac)
  • Kami telah menambahkan HeadlessWatchFaceClient.toBundle() dan HeadlessWatchFaceClient.createFromBundle untuk mendukung pengiriman HeadlessWatchFaceClient melalui AIDL. (I07c35)
  • HeadlessWatchFaceClient dan InteractiveWatchFaceClient kini memiliki ClientDisconnectListener dan isConnectionAlive() untuk memungkinkan Anda mengamati apakah koneksi terputus karena alasan tertentu (misalnya, tampilan jam dinonaktifkan). (Ie446d)
  • WatchFaceControlClient#getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClientAsync kini menjadi fungsi penangguhan dan diganti namanya menjadi getOrCreateInteractiveWatchFaceClient. (Ib745d)
  • EditorState.commitChanges dan hasCommitChanges() diganti namanya menjadi shouldCommitChanges(). (I06e04)
  • previewComplicationData diganti namanya menjadi previewComplicationsData untuk menunjukkan (biasanya) ada lebih dari satu detail di peta. (I56c06)
  • InteractiveWatchFaceWcsClient.bringAttentionToComplication diganti namanya menjadi displayPressedAnimation agar konsisten dengan ComplicationsManager.displayPressedAnimation. (Ic9999)
  • Semua instance id instance tampilan jam telah dienkapsulasi dalam class WatchFaceId baru (I45fdf)
  • Properti complicationState diganti namanya menjadi complicationsState untuk menunjukkan bentuk jamak. (Ided07)
  • Kami telah menghapus berbagai konversi Binder wear-watchface-client, yang tidak akan dibutuhkan. (Icc4c0)
  • Agar konsisten, EditorServiceClient telah difaktorkan ulang untuk menggunakan pemroses, bukan pengamat. (Iec3a4)
  • Kami telah menambahkan beberapa anotasi @Px yang tidak ada ke InteractiveWatchFaceSysUiClient dan WatchFaceControlClient. (I3277a)
  • Mengganti nama EditorObserverCallback menjadi EditorObserverListener agar konsisten. (Ie572d)
  • EditorState.watchFaceInstanceId dibatasi untuk API level Android R dan yang lebih baru dan tidak lagi nullable. (Id52bb)
  • EditorSession.launchComplicationProviderChooser diganti namanya menjadi openComplicationProviderChooser. (I9d441)
  • EditorSession.createOnWatchEditingSessionAsync diganti namanya menjadi createOnWatchEditingSession dan kini menjadi fungsi penangguhan. (Id257b)
  • Menambahkan beberapa anotasi @UiThread yang tidak ada pada EditorSession. (I6935c)
  • UserStyleSetting.affectsLayers diganti namanya menjadi affectedLayers. (I6e22b)

Versi 1.0.0-alpha10

24 Maret 2021

androidx.wear:wear-*:1.0.0-alpha10 dirilis. Versi 1.0.0-alpha10 berisi commit berikut.

Fitur Baru

  • Sekarang Anda dapat membuat objek gl terbuka (mis. tekstur) selama WatchFaceService.createWatchFace karena GlesRenderer sekarang memerlukan panggilan eksplisit ke iniOpenGLContext yang dapat dilakukan di dalam createWatchFace.

Perubahan API

  • IdAndComplicationData agak janggal dan telah dihapus dari API publik. Class & antarmuka yang menggunakannya telah difaktorkan ulang. (I4c928)
  • Kami telah mengganti ReferenceTime dengan CountUpTimeReference dan CountDownTimeReference yang lebih jelas. (Ib66c6)
  • Menambahkan beberapa anotasi @Px dan @ColorInt yang hilang. (I9bbc3)
  • Complication.complicationConfigExtras kini tidak dapat dinolkan dan default menjadi Bundle.EMPTY. (Iad04f)
  • GlesRenderer kini mengharuskan Anda memanggil initOpenGLContext setelah selesai dibuat. Fungsi ini merupakan detail internal, tetapi sekarang berada di API publik untuk mengizinkan panggilan GL sebelumnya di dalam createWatchFace. (I726c2)
  • Kami telah menghapus Complication.setRenderer karena seharusnya tidak diperlukan. (Ie992f)
  • Complicaiton.setComplicationBounds tidak lagi menjadi bagian dari API publik. Jika Anda perlu menyesuaikan posisi detail, hal ini dapat dilakukan melalui ComplicationsUserStyleSetting. (Ibd9e5)
  • ComplicationsManager.TapCallback.onComplicationSingleTapped diganti namanya menjadi onComplicationTapped. (I3a55c)
  • ComplicationOutlineRenderer.drawComplicationSelectOutline diganti namanya menjadi drawComplicationOutline. (I14b88)

Versi 1.0.0-alpha09

10 Maret 2021

androidx.wear:wear-complications-*:1.0.0-alpha09 dan androidx.wear:wear-watchface-*:1.0.0-alpha09 dirilis. Versi 1.0.0-alpha09 berisi commit berikut ini.

Fitur Baru

  • Antarmuka antara host WCS/SysUI dan di WCS/SysUI telah berkembang. Sekarang editor dapat menentukan apakah perubahan gaya akan mengaktifkan atau menonaktifkan detail (aktif = initiallyEnabled ditambah penggantian apa pun dari ComplicationsUserStyleSetting). Selain itu, EditorService.closeEditor memungkinkan SysUI menutup editor tampilan jam dari jarak jauh jika perlu.
  • Selain itu, InteractiveWatchFaceWcsClient.setUserStyle dengan perintah yang lebih canggih updateInstance yang: mengubah ID instance, menyetel gaya, dan menghapus semua detail sekaligus.

Perubahan API

  • TraceEvents telah ditambahkan ke library tampilan jam. (I1a141)
  • ComplicationState sekarang memiliki properti baru initiallyEnabled yang berguna untuk memprediksi konsekuensi penggantian gaya. (I8c905)
  • Kami telah mengganti InteractiveWatchFaceWcsClient.setUserStyle dengan perintah yang lebih canggih updateInstance yang: mengubah ID instance, menyetel gaya, dan menghapus detail. (Ife6f6)
  • API screenshot WatchFaceClient tidak lagi mengompresi screenshot karena proses tersebut berjalan lambat, kami menyerahkan pascapemrosesan ke pemanggil. (Id35af)
  • Anda dapat menutup editor tampilan jam melalui EditorService.closeEditor dari jarak jauh. (Ic5aa4)
  • Menambahkan anotasi nullability (Ic16ed)

Versi 1.0.0-alpha08

24 Februari 2021

androidx.wear:wear-*:1.0.0-alpha08 dirilis. Versi 1.0.0-alpha08 berisi commit berikut ini.

Fitur Baru

  • Beberapa tampilan jam didesain dengan sekitar satu atau beberapa detail tertentu. Untuk mendukung hal ini, kami telah menambahkan Complication.Builder#setFixedComplicationProvider yang jika disetel ke benar (true) akan mencegah pengguna mengubah detail dalam slot tersebut.
  • Library tampilan jam mengutamakan Kotlin dan menggunakan coroutine (mis. fungsi penangguhan). Untuk pengguna Java, kami telah menyediakan wrapper ListenableFuture untuk meningkatkan interoperabilitas di library berikut: wear/wear-watchface-guava, wear/wear-watchface-client-guava & wear/wear-watchface-editor-guava.

Perubahan API

  • Kami telah menghapus dukungan untuk ketuk dua kali pada detail yang meluncurkan pemilih penyedia. Fitur ini tidak umum dalam tampilan jam dan mempersulit implementasi SysUI. (I3ef24)
  • Metode ProviderInfoRetriame dapat melempar ServiceDisconnectedException jika binder tiba-tiba tertutup. (Ib2cc4)
  • Dari Android 11 dan seterusnya, ada batasan kapan ProviderChooser dapat dijalankan. Selain itu, kami berharap editor dibuat dengan wear-watchface-editor baru sehingga ComplicationHelperActivity dihapus dari API publik. (Ib19c1)
  • Menghapus metode statis ComplicationText yang mendukung builder. (Ibe399)
  • Kami telah memperkenalkan wrapper ListenableFuture guava untuk berbagai metode penangguhan library tampilan jam. (I16b2c)
  • Untuk kejelasan API, kami telah menambahkan konstruktor sekunder ke RenderParameters yang tidak memerlukan tint, untuk digunakan dengan LayerModes selain LayerMode.DRAW_OUTLINED. (I497ea)
  • ListUserStyleSetting sebelumnya berbeda dari yang lain karena memiliki argumen default. Semua konstruktor subclass StyleSetting sekarang mengambil nilai default di akhir. (I9dbfd)
  • CanvasComplication telah difaktorkan ulang untuk menggunakan metode tersembunyi, yang mempermudah implementasi subclass (I5b321)
  • Kami telah memfaktorkan ulang EditorResult yang diganti dengan EditorService baru dan EditorSession.broadcastState() untuk melakukan streaming pembaruan pada pengamat (biasanya SysUI). (Ic4370)
  • Beberapa tampilan jam dibuat dengan detail tertentu sebagai bagian tak terpisahkan dari tampilan jam ketika penyedia tidak dapat dikonfigurasi pengguna. Untuk mendukung hal ini, kami telah menambahkan Complication.Builder#setFixedComplicationProvider. (I4509e)
  • EditorRequest kini menentukan nama paket, bukan ComponentName, karena SysUI kesulitan mencari nama class editor, dan kami hanya memerlukan nama paket. (Ib6814)

Versi 1.0.0-alpha07

10 Februari 2021

androidx.wear:wear-*:1.0.0-alpha07 dirilis. Versi 1.0.0-alpha07 berisi commit berikut.

Fitur Baru

  • WatchFaceService.createWatchFace sekarang menjadi fungsi penangguhan, yang berarti tampilan jam tidak lagi harus memblokir UI thread selagi menunggu IO. Demikian pula dengan wear-watchface-editor dan wear-complications-data

Perubahan API

  • Menghapus class PhotoImage dan menggunakan Ikon secara langsung. (I8a70b)
  • Mengekspos validTimeRange dari ComplicationData. (I91366)
  • Membuat atribut seperti gambar menjadi lebih eksplisit. (I81700)
  • wear-watchface-editor dan wear-complications-data telah difaktorkan ulang untuk menggunakan fungsi penangguhan, bukan coroutine. Rx Java & Wrapper kompatibilitas di masa mendatang yang akan diikuti. (If3c5f)
  • ProviderInfoRetriever sekarang menampilkan PreviewNotAvailableException jika requestPreviewComplicationData tidak dapat menampilkan data pratinjau karena masalah koneksi atau kurangnya dukungan API. (I4964d)
  • WatchFaceControlService::createWatchFaceControlClient sekarang menjadi fungsi yang ditangguhkan dan getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient sekarang disebut getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClientAsync yang menampilkan Deferred<InteractiveWatchFaceWcsClient>. RX Java dan Wrapper kompatibilitas di masa mendatang yang akan diikuti. (I5d461)
  • Mengganti nama CATEGORY_PROVIDER_CONFIG_ACTION menjadi CATEGORY_PROVIDER_CONFIG. (I7c068)
  • Perhatikan bahwa createOnWatchEditingSession sekarang menjadi fungsi yang ditangguhkan karena tampilan jam terkadang tidak tersedia hingga beberapa saat setelah aktivitas editor dimulai. (Ida9aa)
  • WatchFaceService.createWatchFace sekarang menjadi fungsi penangguhan yang memungkinkan inisialisasi asinkron, sebelumnya Anda harus memblokir thread utama. (If076a)
  • UserStyle sekarang memiliki operator array dan kami telah menambahkan helper transmisi untuk UserStyle.Option. (I35036)
  • Kami telah memperbaiki bug marshaling dengan wireformat UserStyle yang mengubah beberapa API tersembunyi yang tidak stabil. (I8be09)
  • Kami telah menambahkan CustomValueUserStyleSetting yang memungkinkan Anda menyimpan string khusus aplikasi tunggal dalam UserStyle. Editor tampilan jam default akan mengabaikan nilai ini. (Ic04d2)
  • InstanceID tidak diteruskan dalam intent tambahan untuk Android WearOS versi R dan versi lama yang tidak dapat diupgrade. Untuk mendukung hal ini, sekarang kami mengizinkan InstanceID menjadi null. (Id8b78)
  • EditorRequest sekarang menyertakan editor ComponentName yang ditetapkan sebagai komponen di WatchFaceEditorContract.createIntent (I3cd06)
  • Tampilan jam EditorResult sekarang menyertakan pratinjau ComplicationData untuk memungkinkan pemanggil mengambil screenshot tampilan jam setelah diedit. (I2c561)

Perbaikan Bug

  • Menambahkan penggantian toString() ke UserStyle, UserStyleSetting, dan UserStyleSchema yang membuat penggunaan class ini menjadi sedikit lebih baik. (I9f5ec)

Versi 1.0.0-alpha06

27 Januari 2021

androidx.wear:wear-*:1.0.0-alpha06 dirilis. Versi 1.0.0-alpha06 berisi commit berikut ini.

Fitur Baru

  • Kami telah memperkenalkan library wear/wear-watchface-editor baru yang memungkinkan developer tampilan jam dan calon OEM membuat editor gaya dan detail. SysUI akan mengirimkan Intent ke tampilan jam yang akan menggunakan class EditorSession yang baru untuk mengakses detail WatchFace dan mencatat hasilnya melalui Activity.setWatchRequestResult. Untuk mendukung ini, kami telah menambahkan ProviderInfoRetriever.requestPreviewComplicationData yang memungkinkan editor tampilan jam meminta pratinjau ComplicationData. Manfaat pratinjau ComplicationData tidak seperti data live, Anda tidak perlu khawatir untuk menunjukkan dialog izin saat melakukan rendering editor (catatan: jika pengguna memilih penyedia dengan izin, mereka akan tetap diminta untuk memberikan izin tersebut).

Perubahan API

  • ComplicationProviderInfo sekarang memiliki kolom untuk ComponentName penyedia, dukungan untuk kolom ini akan ditambahkan ke WearOS di masa mendatang dan untuk sementara waktu akan berupa null. (Id8fc4)
  • Kami telah menambahkan ProviderInfoRetriever.requestPreviewComplicationData yang memungkinkan editor tampilan jam meminta pratinjau ComplicationData. Hal ini berguna karena detail live mungkin memerlukan izin dan Anda sekarang dapat menampilkan data pratinjau untuk detail yang tidak aktif. (I2e1df)
  • ComplicationManager sekarang menjadi parameter opsional konstruktor WatchFace dan argumennya telah diurutkan ulang untuk memungkinkan hal ini. (I66c76)
  • Kami telah menambahkan Bundle opsional ke Complications yang jika disetel akan bergabung dengan intent yang dikirimkan untuk meluncurkan aktivitas pemilih penyedia. (Ifd4ad)
  • Kami telah menambahkan library wear-watchface-editor baru untuk didukung pada editor yang dihosting oleh SysUI atau tampilan jam. SysUI akan meluncurkan editor ini dengan mengirimkan intent. Layanan aktivitas tampilan jam dapat menggunakan class EditorSession baru untuk mengakses detail WatchFace dan mencatat hasilnya melalui Activity.setWatchRequestResult. (I2110d)
  • LayerMode.DRAW_HIGHLIGHTED sekarang disebut LayerMode.DRAW_OUTLINED dan RenderParameters.highlightComplicationId sekarang disebut RenderParameters.selectedComplicationId yang memperjelas detail tertentu selain garis besar. (I90a40)
  • WatchFaceControlClient.getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient di masa mendatang kini dapat di-resolve dengan ServiceStartFailureException jika layanan mati saat menunggu tampilan jam dibuat. (I0f509)
  • EditorSession.complicationPreviewData sekarang menjadi ListenableFuture karena pengambilan data ini adalah proses yang asinkron. (Iead9d)

Perbaikan Bug

  • Kami menghapus kolom yang tidak digunakan dari ComplicationOverlay yang dibiarkan aktif dan complicationBounds. (I17b71)

Versi 1.0.0-alpha05

13 Januari 2021

androidx.wear:wear-*:1.0.0-alpha05 dirilis. Versi 1.0.0-alpha05 berisi commit berikut.

Fitur Baru

Tampilan jam sering kali mendukung sejumlah konfigurasi detail dengan berbagai detail yang ditampilkan. Untuk memudahkan penyiapan ini, kini kami mendukung detail yang awalnya dinonaktifkan dengan memanggil setEnabled(false) pada builder. Detail dapat diaktifkan nanti melalui ComplicationsUserStyleSetting.

Perubahan API

  • ComplicationHelperActivity kini menerima Collection<ComplicationType> daripada array int sehingga lebih mudah digunakan. (I1f13d)
  • ProviderInfoRetriever.retrieveProviderInfo sekarang menampilkan ListenableFuture<ProviderInfo[]> dengan benar. (If2710)
  • Anda kini dapat membuat detail yang awalnya dinonaktifkan dengan memanggil setEnabled(false) pada builder. (Idaa53)
  • WatchFaceState sekarang memiliki properti isHeadless yang hanya berlaku untuk instance headless. (Ifa900)
  • ComplicationDrawable sekarang mendukung pemuatan sinkron drawable secara opsional. Ini digunakan oleh API screenshot. (I34d4a)

Versi 1.0.0-alpha04

16 Desember 2020

androidx.wear:wear-*:1.0.0-alpha04 dirilis. Versi 1.0.0-alpha04 berisi commit berikut ini.

Fitur Baru

  • Library wear tampilan jam sekarang mendukung setelan batas per jenis. Misalnya, Anda dapat beralih ke kotak pembatas lebar untuk ComplicationType.LONG_TEXT, sedangkan kotak pembatas yang lebih kecil digunakan untuk jenis lain.

Perubahan API

  • Detail sekarang menggunakan ComplicationBounds yang menggabungkan Map<ComplicationType, RectF> untuk mendukung per ukuran jenis detail. (I1ebe7)
  • RenderParameter kini memungkinkan Anda menentukan tint sorotan untuk digunakan dalam screenshot. (Iff42b)
  • Dengan pengecualian batas, kini Anda harus menggunakan ComplicationsUserStyleSetting untuk memodifikasi detail, hal ini untuk memastikan OS tetap sinkron. (I8dc5d)
  • Renderer sekarang menjadi class tertutup. Ini berarti CanvasRenderer dan GlesRenderer sekarang menjadi class dalam Renderer. (Iab5d4, b/173803230)
  • CanvasComplicationDrawable.drawHighlight diganti namanya menjadi drawOutline. ObserverWatchData kini memiliki beberapa anotasi UiThread yang hilang. ScreenState sekarang dihapus sepenuhnya dari WatchState. (If1393)
  • API level minimum untuk wear-watchface sekarang adalah 25. Perhatikan bahwa dukungan kanvas hardware memerlukan API level 26 atau yang lebih tinggi. (Ic9bbd)
  • InteractiveWatchFaceWcsClient kini memiliki helper getComplicationIdAt. (I05811)
  • API level untuk wear-watchface-client telah dikurangi menjadi 25, namun API screenshot memerlukan API level 27. (Id31c2)

Perbaikan Bug

  • Kita sekarang mengekspos ComplicationType dari ComplicationData detail saat ini di ComplicationState. (I9b390)
  • InteractiveWatchFaceWcs kini memiliki metode `bringAttentionToComplication untuk menandai secara singkat detail yang ditentukan. (I6d31c)
  • InteractiveWatchFaceWcsClient#setUserStyle sekarang memiliki kelebihan beban dalam menerima Map <string, string=""> yang berpotensi dapat menghindari perjalanan pulang pergi IPC tambahan yang diperlukan untuk membuat UserStyle. (I24eec)</string,>

Versi 1.0.0-alpha03

2 Desember 2020

androidx.wear:wear-*:1.0.0-alpha03 dirilis. Versi 1.0.0-alpha03 berisi commit berikut ini.

Fitur Baru

Class Complication sekarang memiliki properti complicationData yang memungkinkan tampilan jam mengamati perubahan ComplicationData. Hal ini memungkinkan untuk mengubah dimensi detail berdasarkan jenis detail.

Kecepatan frame variabel sekarang didukung dengan menetapkan ke Renderer.interactiveDrawModeUpdateDelayMillis. Untuk tampilan jam yang menjalankan animasi pendek setiap detik, hal ini bisa menyebabkan penghematan daya yang baik dengan beralih ke mode tidur ketika tidak menganimasikan.

Perubahan API

  • BACKGROUND_IMAGE telah diganti namanya menjadi PHOTO_IMAGE bersama dengan class terkait. Tipe detail ini tidak digunakan secara eksklusif untuk latar belakang, karena itu namanya diganti. (I995c6)
  • DefaultComplicationProviderPolicy dianotasi dengan benar menggunakan IntDefs. (I3b431)
  • Class TimeDependentText tersembunyi tidak lagi ditampilkan melalui ContentDescriptionLabel, sebagai gantinya kami menambahkan pengakses untuk mendapatkan teks pada waktu yang ditentukan. (Ica692)
  • Konstruktor ObservableWatchData sekarang menjadi internal. (I30121, b/173802666)
  • Complication sekarang memiliki complicationData yang memungkinkan tampilan jam mengamati perubahan ComplicationData. Complication juga memiliki panggilan isActiveAt baru yang dapat digunakan untuk mengetahui apakah ada yang harus dirender pada tanggal waktu yang disediakan. (Ic0e2a)
  • SharedMemoryImage yang kosong sudah tidak ada lagi di API publik. (I7ee17)
  • WatchFace.overridePreviewReferenceTimeMillis kini memiliki anotasi IntRange dan pengambil dan penyetel memiliki nama yang konsisten. (Ia5f78)
  • Complication.Builder sekarang dibuat melalui Complication.createRoundRectComplicationBuilder atau Complication.createBackgroundComplicationBuilder agar lebih jelas (I54063)
  • Menambahkan WatchFace.TapListener yang memungkinkan ketuk yang tidak digunakan oleh detail dapat dilihat oleh WatchFace. (Ic2fe1, b/172721168)
  • WatchFace sekarang mendukung kecepatan frame variabel dengan menetapkan ke Renderer.interactiveDrawModeUpdateDelayMillis. Hal ini dapat membantu menghemat masa pakai baterai dengan tidur saat tidak menganimasi. (I707c9)
  • WatchFace.Builder tidak lagi diperlukan dan invalidate() dan interactiveUpdateRateMillis telah dipindahkan ke Renderer. (I329ea)
  • Untuk interoperabilitas Java yang lebih baik, pengambil diganti namanya untuk properti boolean di WatchState (I6d2f1)
  • Mengganti nama TapListener menjadi TapCallback dan InvalidateCallback menjadi InvalidateListener untuk konsistensi. (I9414e)
  • Opsi gaya tampilan jam Wear 2.0 telah dipindahkan ke class-nya sendiri untuk kejelasan. Penyetel WatchFace.Builder sekarang memiliki pengambil class WatchFace simetris. (Iefdfc)
  • Menambahkan InteractiveWatchFaceWcsClient dan WatchFaceControlClient.getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient yang mendapatkan instance yang ada atau membuatnya setelah layanan wallpaper tersambung dan membuat mesin. (Id666e)
  • WatchFaceControlClient sekarang menjadi antarmuka untuk memungkinkan pengujian memalsukannya. (I875d9)
  • HeadlessWatchFaceClient, InteractiveWatchFaceSysUiClientImpl, InteractiveWatchFaceWcsClient sekarang menjadi antarmuka untuk memudahkan pengujian. (I7cdc3)
  • Menambahkan anotasi ke metode di wear-watchface-complications-rendering (I0d65c)

Perbaikan Bug

  • Menghapus bentuk layar dari DeviceConfig, yang menduplikasi android.content.res.Configuration#isScreenRound() (Ifadf4)
  • Mengubah WatchFaceControlClient.getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient untuk menerima Map<String, String>, bukan UserStyle, karena sulit membuat UserStyle tanpa mengetahui skema yang hanya bisa Anda dapatkan setelah klien dibuat. (Iea02a)
  • Memperbaiki InteractiveWatchFaceWcsClient untuk menggunakan ComplicationState, bukan format berkabel. (Icb8a4)
  • UserStyleSettings kini menjadi class tertutup karena editor tampilan jam hanya memahami class bawaan. (I2d797)

Versi 1.0.0-alpha02

11 November 2020

androidx.wear:wear-*:1.0.0-alpha02 dirilis. Versi 1.0.0-alpha02 berisi commit berikut ini.

Perubahan API

  • ComplicationDetails kini disebut ComplicationState dan digabungkan dengan benar serta penggunaan dukungan wearable @ComplicationData.ComplicationType telah dimigrasikan ke ComplicationType androidx. (I4dd36)
  • Menambahkan parameter highlightedComplicationId opsional ke RenderParameters yang memungkinkan Anda meminta penyorotan satu detail dalam screenshot. (I66ce9)
  • ComplicationProviderService untuk menggunakan API detail gaya baru agar konsisten (Id5aea)
  • getPreviewReferenceTimeMillis kini mendapatkan waktu referensi dari DeviceConfig. (I779fe)
  • Menyederhanakan platform Renderer API, dapat menggunakan SurfaceHolder.Callback untuk mengamati perubahan sebagai gantinya. (I210db)
  • CanvasComplicationRenderer tidak diperpanjang dari Renderer, dan namanya diganti agar lebih jelas. (Ibe880)

Perbaikan Bug

  • Versi pertama androidx.wear:wear-watchface-client (I1e35e)
  • Mengubah nama GlesTextureComplication#renderer agar lebih jelas (Ib78f7)
  • Mengganti nama StyleCategory menjadi StyleSetting agar lebih jelas (I488c7)
  • Menambahkan UserStyleSchema agar API lebih rapi (If36f8)

Versi 1.0.0-alpha01

28 Oktober 2020

androidx.wear:wear-complications-*:1.0.0-alpha01 dan androidx.wear:wear-watchface-*:1.0.0-alpha01 dirilis. Versi 1.0.0-alpha01 berisi commit berikut ini.

Perubahan API

  • Menghapus beberapa hal yang tidak ingin kami tampilkan di API publik. (I41669)
  • Membuat library androidx.wear:wear-complications-provider. (I77f1f)
  • ComplicationsUserStyleCategory adalah kategori baru yang direkomendasikan untuk mengonfigurasi detail (I96909)
  • Menambahkan wear-complication-data API. (I7c268)
  • Fungsi dengan nilai pengembalian boolean akan diawali dengan "is", bukan "get" (If36ff)
  • Saran API adalah untuk menghindari penggunaan dilindungi sehingga class ini telah difaktorkan ulang untuk mengambil parameter melalui konstruktor. (I61644)
  • Mengganti nama setBackgroundComplication agar jelas. (I96fe3)
  • Menggunakan properti Kotlin untuk ComplicationDrawable isHighlighted & data (I4dcc8)
  • Sebagai ganti ComplicationRenderer.InvalidateCallback, kami menambahkan Complication#invalidate() (I4f4c6)
  • API ini tidak digunakan lagi di WearableSupport dan dihapus di sini. (Ib425c)
  • Mengganti nama beberapa metode builder WatchFace untuk menekankan sifat lama Wear 2.0. (Idb775)
  • Kandidat API beta pertama untuk wear/wear-watchface (Id3981)
  • Versi API pertama yang dipantau. (Ie9fe6)
  • Menyembunyikan ComplicationDrawable.BorderStyle IntDef dengan benar dan memindahkan ke ComplicationStyle agar konsisten. (I27f7a)
  • Menambahkan anotasi yang tidak ada untuk metode ComplicationStyle (I838fd)
  • Library ini tidak memiliki platform API publik (I88e2b)
  • Semua class Opsi kategori gaya kini sudah final dengan benar. (Ib8323)
  • Versi API pertama yang dipantau. (I27c85)

Perbaikan Bug

  • Mengubah ComplicationProviderService agar memiliki metode getComplicationPreviewData eksplisit. (I4905f)
  • Pemeriksaan lint API untuk MissingGetterMatchingBuilder diaktifkan untuk androidx (I4bbea, b/138602561)
  • Mengganti nama wear-complications-rendering. (Ifea02)
  • Nama tampilan kategori gaya kini adalah CharSequences (I28990)
  • Mengganti Override dengan Overlay untuk mencocokkan konvensi penamaan tema & gaya saat ini. (I4fde9)
  • Mengganti nama UserStyle#getOptions agar jelas. (I695b6)

Versi 1.2.0

Versi 1.2.0-alpha10

2 Juni 2021

androidx.wear:wear:1.2.0-alpha10 dirilis. Versi 1.2.0-alpha10 berisi commit berikut.

Fitur Baru

  • Alpha10 meningkatkan dukungan aksesibilitas di Curved Text dan ArcLayout. Hal ini juga menambahkan beberapa penggantian nama kecil di DismissibleFrameLayout untuk membantu memperjelas API.

Perubahan API

  • Kami telah mengganti nama metode berikut di DismissibleFrameLayout (Ib195e):
    • Callback#onDismissed -> Callback#onDismissedFinished
    • isSwipeDismissible -> isDismissableBySwipe
    • isBackButtonDismissible -> isDismissableByBackButton
  • Kami telah membuat metode berikut sebagai versi final (Ib195e):
    • setBackButtonDismissible
    • setSwipeDismissible
    • registerCallback
    • unregisterCallback

Perbaikan Bug

  • Menggunakan konten CurvedTextView pada Talkback. (I05798)
  • Aksesibilitas yang lebih baik untuk tampilan normal di ArcLayout. (I4418d)

Versi 1.2.0-alpha09

18 Mei 2021

androidx.wear:wear:1.2.0-alpha09 dirilis. Versi 1.2.0-alpha09 berisi commit berikut ini.

Perubahan API

  • Menambahkan fungsi baru CurvedTextView.setTypeface() (mirip dengan TextView), untuk menetapkan jenis font teks dan gaya tebal/miring. (I4653c)
  • Mengganti nama WearArcLayout menjadi ArcLayout, WearCurvedText menjadi CurvedText, dan WearArcLayout.ArcLayoutWidget menjadi ArcLayout.Widget. (I6e5ce)
    • Pada ArcLayout.Widget, mengganti nama getThicknessPx menjadi getThickness.
    • Konstanta perataan vertikal di ArcLayout.LayoutParams sekarang diberi nama yang dimulai dengan VERTICAL_ALIGN_ (sebelumnya VALIGN_)
  • Pada CurvedTextView, metode setMinSweepDegrees dan setMaxSweepDegrees diganti dengan setSweepRangeDegrees (I7a9d9)

Versi 1.2.0-alpha08

5 Mei 2021

androidx.wear:wear:1.2.0-alpha08 dirilis. Versi 1.2.0-alpha08 berisi commit berikut ini.

Perubahan API

  • Untuk meningkatkan kejelasan kode, kami menambahkan anotasi @FloatRange ke beberapa parameter sudut dan jenis nilai yang ditampilkan. (I430dd)
  • Pada antarmuka WearArcLayout.ArcLayoutWidget, metode insideClickArea sekarang disebut isPointInsideClickArea. (Ia7307)

Versi 1.2.0-alpha07

24 Maret 2021

androidx.wear:wear:1.2.0-alpha07 dirilis. Versi 1.2.0-alpha07 berisi commit berikut ini.

Perbaikan Bug

  • Memperbaiki error pada turunan non-curved di dalam WearArcLayout yang disebabkan oleh penggunaan ukuran layar dengan tinggi lebih besar dari lebar. Turunan non-curved ini sekarang ditempatkan dengan benar di dalam arc di semua jenis layar.

Versi 1.2.0-alpha06

27 Januari 2021

androidx.wear:wear:1.2.0-alpha06 dirilis. Versi 1.2.0-alpha06 berisi commit berikut ini.

Perubahan API

  • Memigrasikan library Ongoing Activities ke sub-library baru: wear-ongoing. Class sekarang berada di paket androidx.wear.ongoing (sebelumnya androidx.wear.ongoingactivities) (I7c029)
  • Memigrasikan class WearableCalendarContract dari Wearable Support Library ke AndroidX. API ini memberikan sebuah subset data yang tersedia melalui CalendarContract, tetapi disinkronkan otomatis ke perangkat wearable. (I6f2d7)

Perbaikan Bug

  • Menonaktifkan fitur tutup tombol kembali secara default di FrameLayout yang Dapat Ditutup karena geser-untuk-tutup tetap menjadi cara utama untuk membuka kembali layar penuh pada perangkat Wearable (Ic24e3)
  • Memperbaiki beberapa masalah dalam menangani visibilitas anak pada WearArcLayout (Icf912)

Versi 1.2.0-alpha05

13 Januari 2021

androidx.wear:wear:1.2.0-alpha05 dirilis. Versi 1.2.0-alpha05 berisi commit berikut ini.

Perbaikan Bug

  • Mengupdate javadoc class AmbientModeSupport untuk menyediakan cuplikan contoh guna menunjukkan penggunaan umum class ini dengan lebih baik.

Versi 1.2.0-alpha04

16 Desember 2020

androidx.wear:wear:1.2.0-alpha04 dirilis. Versi 1.2.0-alpha04 berisi commit berikut ini.

Perubahan API

  • Penambahan dukungan untuk menunjukkan bahwa Aktivitas dapat "dilanjutkan otomatis" saat perangkat keluar dari mode standby di class AmbientModeSupport. Fungsionalitas ini sebelumnya tersedia di class WearableActivity dari WearableSupportLibrary yang tidak digunakan lagi. (I336ab)
  • OngoingActivity
    • Kategori sekarang dapat disetel saat membuat OngoingActivity, misalnya OngoingActivitiy.Builder.getCategory(String)
    • OngoingActivityData kini memiliki stempel waktu saat OngoingActivity dibuat - OngoingActivityData.getTimestamp()
    • (I91cb4)
  • Penambahan dukungan untuk menetapkan margin pada turunan WearArcLayout dengan mengubah parameter tata letak untuk memperluas MarginLayoutParams, yaitu WearArcLayout.LayoutParams memperluas android.view.ViewGroup.MarginLayoutParams. (I2cd88)
  • Mengubah jenis default anchor WearCurvedTextView menjadi WearArcLayout.ANCHOR_CENTER (sebelumnya WearArcLayout.ANCHOR_START). Ini akan menyederhanakan kontrak antara tata letak lengkung dan teks melengkung karena teks melengkung secara default akan menggambar dirinya sendiri berpusat x di bagian atas, dan tata letak lengkung induk dapat memutarnya ke tempat yang seharusnya. (I105ff)

Versi 1.2.0-alpha03

2 Desember 2020

androidx.wear:wear:1.2.0-alpha03 dirilis. Versi 1.2.0-alpha03 berisi commit berikut ini.

Fitur Baru

Penampung tata letak baru DismissableFrameLayout, yang menangani tombol kembali untuk menutup dan/atau geser untuk menutup, yang ditujukan untuk digunakan dalam aktivitas. Setidaknya satu pemroses harus ditambahkan untuk menindak tindakan penutupan. Pemroses biasanya akan menghapus tampilan yang memuatnya atau fragmen dari aktivitas saat ini. setSwipeDismissable(boolean) & setBackButtonDismissable(boolean) disediakan untuk kontrol langsung pada fitur. Tata letak baru ini dimaksudkan untuk menggantikan SwipeDismissFrameLayout yang ada.

Widget melengkung sekarang menangani peristiwa sentuh. Widget normal di dalam WearArcLayout akan menerima semua peristiwa sentuh, dipetakan ke ruang koordinatnya. WearCurvedTextView (di dalam WearArcLayout atau tidak) dapat menetapkan pengendali onClick dan onLongClick.

Class aktivitas yang sedang berlangsung sekarang menjadi VersionedParcelables, bukan menggunakan serialisasi/deserialisasi kustom. Ikon statis dan intent sentuh kini diperlukan.

Perubahan API

  • Atribut "sweepDegrees" untuk WearCurvedTextView dipisahkan menjadi minSweepDegrees dan maxSweepDegrees untuk memberikan tata letak widget yang lebih fleksibel.

Versi 1.2.0-alpha02

11 November 2020

androidx.wear:wear:1.2.0-alpha02 dirilis. Versi 1.2.0-alpha02 berisi commit berikut.

Rilis ini menambahkan "Ongoing Activities API" baru untuk pertama kalinya. API ini dapat digunakan oleh developer untuk menandakan bahwa aktivitas yang berjalan lama, seperti olahraga kebugaran atau sesi pemutaran media sedang berlangsung. API ini memungkinkan developer memberikan pembaruan status berkala seperti “jarak dan waktu berlari” atau “lagu yang diputar saat ini” untuk ditampilkan di tampilan jam atau di peluncur aplikasi. Fungsi ini ditargetkan pada perangkat mendatang yang mengaktifkan fungsi aktivitas yang sedang berlangsung.

Perubahan API

  • API baru untuk Aktivitas yang Sedang Berjalan, ini adalah lingkungan tanpa pengoperasian pada "perangkat yang tidak didukung". (I69a31)

Versi 1.2.0-alpha01

28 Oktober 2020

androidx.wear:wear:1.2.0-alpha01 dirilis. Versi 1.2.0-alpha01 berisi commit berikut.

Fitur Baru

  • Menambahkan komponen WearCurvedTextView untuk memudahkan penulisan teks melengkung mengikuti kelengkungan lingkaran terbesar yang dapat dicetak dalam tampilan. Contoh penggunaan:
<androidx.wear.widget.WearCurvedTextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="example curved text"
        app:anchorAngleDegrees="180"
        app:anchorPosition="center"
        app:clockwise="false"
        style="@android:style/TextAppearance.Large"
/>

Contoh teks melengkung di Android Wear

  • Menambahkan container WearArcLayout untuk menata letak elemen turunannya satu per satu pada lengkungan baik searah maupun berlawanan arah jarum jam. Turunannya dapat berupa widget android standar atau widget "melengkung" yang mengimplementasikan antarmuka ArcLayoutWidget. Contoh penggunaan:
<androidx.wear.widget.WearArcLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:anchorPosition="center">
      <ImageView
              android:layout_width="20dp"
              android:layout_height="20dp"
              android:src="@drawable/ic_launcher"
      />
      <androidx.wear.widget.WearCurvedTextView
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:text="Curved Text"
              style="@android:style/TextAppearance.Small"
              android:padding="2dp"
       />
  </androidx.wear.widget.WearArcLayout>

Contoh teks lengkung di Android Wear

(I536da)

Wear-Input 1.1.0

Versi 1.1.0-alpha02

18 Mei 2021

androidx.wear:wear-input:1.1.0-alpha02 dan androidx.wear:wear-input-testing:1.1.0-alpha02 dirilis. Versi 1.1.0-alpha02 berisi commit berikut ini.

Perubahan API

  • Metode RemoteInputIntentHelper yang digunakan untuk mendapatkan atau menempatkan tambahan yang mewakili label judul, batal, konfirmasikan, dan sedang diproses kini menggunakan CharSequence, bukan String untuk label ini. (I0e71f)

Versi 1.1.0-alpha01

27 Januari 2021

androidx.wear:wear-input:1.1.0-alpha01 dan androidx.wear:wear-input-testing:1.1.0-alpha01 dirilis. Versi 1.1.0-alpha01 berisi commit berikut ini.

Perubahan API

  • Memigrasikan class RemoteInputIntent dari Wearable Support Library ke AndroidX. Class yang dimigrasikan berganti nama menjadi RemoteInputIntentHelper yang menyediakan fungsi bantuan untuk input remote pendukung melalui memulai intent. (I47cee)

Wear-Input 1.0.0

Versi 1.0.0

2 Desember 2020

androidx.wear:wear-input:1.0.0 dan androidx.wear:wear-input-testing:1.0.0 dirilis. Versi 1.0.0 berisi commit berikut.

Rilis ini sama persis dengan 1.0.0-rc01.

Fitur utama 1.0.0

  • Migrasi fungsi WearableButtons dari Wearable Support Library ke Jetpack.

  • Menambahkan androidx.wear.input.test.TestWearableButtonsProvider yang mengimplementasikan androidx.wear.input.WearableButtonsProvider untuk membantu menguji aplikasi yang dikembangkan dengan library androidx.wear:wear-input.

Versi 1.0.0-rc01

11 November 2020

androidx.wear:wear-input:1.0.0-rc01 dan androidx.wear:wear-input-testing:1.0.0-rc01 dirilis. Versi 1.0.0-rc01 berisi commit berikut.

Rilis ini sama persis dengan 1.0.0-beta01.

Versi 1.0.0-beta01

28 Oktober 2020

androidx.wear:wear-input:1.0.0-beta01 dan androidx.wear:wear-input-testing:1.0.0-beta01 dirilis tanpa perubahan sejak 1.1.0-alpha01. Versi 1.0.0-beta01 berisi commit berikut.

Wear-Input-Testing Versi 1.0.0-alpha01

14 Oktober 2020

androidx.wear:wear-input-testing:1.0.0-alpha01 dirilis. Versi 1.0.0-alpha01 berisi commit berikut ini.

Perubahan API

  • Menambahkan androidx.wear.input.test.TestWearableButtonsProvider yang mengimplementasikan androidx.wear.input.WearableButtonsProvider untuk membantu menguji aplikasi yang dikembangkan dengan library androidx.wear:wear-input. (I0ed0c)

Wear-Input Versi 1.0.0-alpha01

2 September 2020

androidx.wear:wear-input:1.0.0-alpha01 dirilis. Versi 1.0.0-alpha01 berisi commit berikut ini.

Fitur Baru

Migrasi fungsi WearableButtons dari Wearable Support Library ke Jetpack. Dukungan pengujian tambahan akan disediakan dalam library androidx.wear:wear-input-testing pada rilis Jetpack berikutnya.

Versi 1.1.0

Versi 1.1.0

14 Oktober 2020

androidx.wear:wear:1.1.0 dirilis. Versi 1.1.0 berisi commit berikut ini.

Perubahan utama sejak versi 1.0.0

  • Menambahkan awalan layout_ ke atribut boxedEdges (kini layout_BoxedEdges) untuk BoxInsetLayout guna mematuhi konvensi penamaan Android. Ini akan menghapus error linter di Android Studio untuk atribut ini. (I4272f)
  • Menambahkan EXTRA_ANIMATION_DURATION_MILLIS opsional ke ConfirmationActivity untuk mengizinkan durasi yang ditampilkan dialog konfirmasi. (adb83ce, b/143356547)
  • Memperbarui WearableActionDrawView untuk menunda kemunculan panel tindakan sampai panel terbuka untuk kali pertama. (I01026, b/163870541)

Versi 1.1.0-rc03

2 September 2020

androidx.wear:wear:1.1.0-rc03 dirilis. Versi 1.1.0-rc03 berisi commit berikut ini.

Perbaikan Bug

  • Memperbaiki masalah Panel Tindakan yang tidak menampilkan konten saat dibuka. (I01026, b/163870541)

Versi 1.1.0-rc02

24 Juni 2020

androidx.wear:wear:1.1.0-rc02 dirilis. Versi 1.1.0-rc02 berisi commit berikut ini.

Perbaikan Bug

  • Menambahkan awalan layout_ ke atribut boxedEdges (kini layout_boxedEdges) untuk BoxInsetLayout guna mematuhi konvensi penamaan Android. Ini akan menghapus error linter di Android Studio untuk atribut ini.

Versi 1.1.0-rc01

14 Mei 2020

androidx.wear:wear:1.1.0-rc01 dirilis tanpa perubahan sejak .1.0-beta01. Versi 1.1.0-rc01 berisi commit berikut ini.

Versi 1.1.0-beta01

29 April 2020

androidx.wear:wear:1.1.0-beta01 dirilis tanpa perubahan sejak androidx.wear:wear:1.1.0-alpha01. Versi 1.3.0-beta01 berisi commit berikut ini.

Versi 1.1.0-alpha01

15 April 2020

androidx.wear:wear:1.1.0-alpha01 dirilis. Versi 1.1.0-alpha01 berisi commit berikut ini.

Perubahan API

  • Menambahkan EXTRA_ANIMATION_DURATION_MILLIS opsional ke ConfirmationActivity untuk mengizinkan durasi yang ditampilkan dialog konfirmasi. (adb83ce, 134523c, b/143356547)

Perbaikan Bug

  • Memperbarui WearableActionDrawView untuk menunda kemunculan panel tindakan sampai panel terbuka untuk kali pertama. (5cd32f7)