wear protolayout

  
Library ini memungkinkan penentuan serangkaian tata letak UI dan ekspresi non-UI dirender/dievaluasi pada platform jarak jauh.
Update Terbaru Rilis Stabil Kandidat Rilis Rilis Beta Rilis Alfa
7 Agustus 2024 1.2.0 - - -

Mendeklarasikan dependensi

Untuk menambahkan dependensi pada wear-protolayout, 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 {
    // Use to implement support for Wear ProtoLayout Expressions
    implementation "androidx.wear.protolayout:protolayout-expression:1.3.0-alpha03"

    // Use to implement support for Wear ProtoLayout
    implementation "androidx.wear.protolayout:protolayout:1.3.0-alpha03"

    // Use to utilize components and layouts with Material design in your ProtoLayout
    implementation "androidx.wear.protolayout:protolayout-material:1.3.0-alpha03"
}

Kotlin

dependencies {
    // Use to implement support for Wear ProtoLayout Expressions
    implementation("androidx.wear.protolayout:protolayout-expression:1.3.0-alpha03")

    // Use to implement support for Wear ProtoLayout
    implementation("androidx.wear.protolayout:protolayout:1.3.0-alpha03")

    // Use to utilize components and layouts with Material design in your ProtoLayout
    implementation("androidx.wear.protolayout:protolayout-material:1.3.0-alpha03")
}

Untuk informasi dependensi selengkapnya, lihat Menambahkan dependensi build.

Masukan

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

Laporkan masalah baru

Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.

Versi 1.2

Versi 1.2.0

7 Agustus 2024

androidx.wear.protolayout:protolayout-*:1.2.0 dirilis. Versi 1.2.0 berisi. commit ini.

Perubahan penting sejak 1.1.0

  • FontStyle telah diupdate agar memiliki dukungan font tambahan untuk sumbu variabel dan API pemilihan font yang lebih baik guna mendukung font Flex mendatang.
  • Dukungan Pengubah tambahan:
    • Pengubah transformasi yang menawarkan terjemahan, rotasi, dan penskalaan dengan atau tanpa animasi.
    • Menentukan nilai yang berbeda (horizontal dan vertikal) untuk setiap radius sudut.
  • Meningkatkan aksesibilitas semua target sentuh dengan memperluas area yang dapat diketuk dari elemen apa pun yang menggunakan pengubah yang Dapat Diklik menjadi setidaknya 48dp kali 48dp.
  • Meningkatkan PrimaryLayout dan EdgeContentLayout dengan menambahkan setResponsiveContentInsetEnabled untuk lebih mendukung perilaku responsif tata letak ini di berbagai ukuran layar dan meningkatkan konsistensi Kartu.
  • Peningkatan penskalaan/non-penskalaan Material Text untuk penskalaan font non-linear Android 14.
  • Peningkatan dukungan untuk arah tata letak RTL pada semua elemen Arc.

Perubahan lainnya

  • Untuk mengetahui kumpulan perubahan yang lebih lengkap yang diperkenalkan di versi 1.1.0, lihat catatan rilis beta01.

Versi 1.2.0-rc01

24 Juli 2024

androidx.wear.protolayout:protolayout-*:1.2.0-rc01 dirilis. Versi 1.2.0-rc01 berisi commit ini.

Perbaikan Bug

  • Kami telah memperbaiki Chip Material standar sehingga dapat digunakan sebagai ikon hanya jika tidak ada label utama atau sekunder yang diteruskan. (Iceef9)
  • Dokumentasi untuk tata letak Material telah diperbarui untuk menyertakan visual dari halaman yang relevan guna memudahkan pemahaman tentang tata letak. (I0256a)

Versi 1.2.0-beta01

10 Juli 2024

androidx.wear.protolayout:protolayout-*:1.2.0-beta01 dirilis. Versi 1.2.0-beta01 berisi commit ini.

Fitur Baru

Rilis 1.2.0-beta01 Wear ProtoLayout menunjukkan bahwa rilis library ini sudah memiliki fitur lengkap dan API terkunci (kecuali jika ditandai sebagai eksperimental). Wear ProtoLayout 1.2 menyertakan fungsi dan API baru berikut:

  • FontStyle telah diperbarui untuk memiliki dukungan font tambahan sebagai berikut:
    • Menetapkan setelan variasi font yang berbeda seperti FontSetting.weight dan FontSetting.width
    • Menetapkan lebar yang sama untuk semua karakter numerik - angka tabulasi (setelan fitur font FontSetting.tnum)
    • Peningkatan API pemilihan font untuk mendukung font fleksibel yang akan datang dengan menentukan nama jenis font pilihan yang akan digunakan.
  • Memperluas pengubah Corner untuk mendukung penentuan setiap CornerRadius dengan nilai horizontal dan vertikal terpisah guna memungkinkan elemen bangunan dengan sudut asimetris.
  • Menambahkan pengubah Transformation baru yang menawarkan terjemahan, rotasi, dan penskalaan LayoutElement. Transformasi ini dapat dianimasikan menggunakan nilai dinamis.
  • Menambahkan setArcDirection dengan opsi Clockwise, CounterClockwise, dan Normal ke semua elemen Arc (Arc, ArcLine, dan ArcText) untuk dukungan yang lebih baik dalam berbagai arah tata letak (seperti LTR dan RTL).
  • Meningkatkan aksesibilitas semua target sentuh dengan memperluas area yang dapat diketuk dari elemen apa pun yang menggunakan pengubah Clickable menjadi setidaknya 48dp kali 48dp.
  • Meningkatkan PrimaryLayout dan EdgeContentLayout dengan menambahkan setResponsiveContentInsetEnabled untuk lebih mendukung perilaku responsif tata letak ini di berbagai ukuran layar dan meningkatkan konsistensi Kartu. Menambahkan peringatan linter untuk menyarankan penggunaan API ini dengan perbaikan cepat.
  • Peningkatan penskalaan/non-penskalaan Material Text untuk penskalaan font non-linear Android 14.

Perubahan API

  • Nama jenis font default (DEFAULT_SYSTEM_FONT) dihapus seperti yang tersirat dengan tidak menggunakan preferredFontFamilies API. (I39dab)
  • Parameter yang diteruskan ke FontSetting.width harus positif. (I1266f)

Versi 1.2.0-alpha05

26 Juni 2024

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

Fitur Baru

  • Tambahkan metode hasText ke Material.CompactChip untuk memeriksa apakah konten teks telah ditetapkan. (I6e8fc)

Perubahan API

  • Konstanta FontFamily dipindahkan ke FontStyle, bukan class Builder-nya. (I06ed)
  • Mengupdate FontSetting.weight dan FontSetting.width API untuk menyertakan anotasi Range dan mengubah parameter bobot menjadi int. (Ia726c)

Perbaikan Bug

  • Teks yang tidak skalabel di library Material kini berfungsi dengan benar dengan penskalaan font non-linear Android 14. (I6601e)

Versi 1.2.0-alpha04

29 Mei 2024

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

Perubahan API

  • Menambahkan API sudut asimetris agar dapat menentukan radius setiap sudut secara terpisah dengan 2 nilai. (Icbd69)
  • Memperluas API FontSetting untuk menyertakan:
    • setelan fitur font seperti menyetel font menjadi tabulasi. (If12b7)
    • setelan variasi font seperti menetapkan lebar kustom untuk font variabel. (I2b36d)
  • Menambahkan API jenis font ke FontStyle untuk memungkinkan penentuan daftar urutan jenis font yang harus digunakan. (Iba9f5)
  • Mengganti nama konstanta untuk tinggi ruang antara konten dan label sekunder di LayoutDefaults Material yang awalnya diawali dengan “Edge content” agar lebih umum karena dapat diterapkan ke PrimaryLayout dan EdgeContentLayout. (I4dc32)

Perbaikan Bug

  • Mengganti nama penamaan sumbu font variabel dari axisName menjadi axisTag. (I02ba3)

Versi 1.2.0-alpha03

14 Mei 2024

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

Fitur Baru

  • Menambahkan API untuk menetapkan nilai bobot kustom untuk FontStyle. (I7390a)

Perbaikan Bug

  • Memperbaiki kegagalan di getTouchDelegateInfo karena peta target kosong. (I2accf)

Versi 1.2.0-alpha02

1 Mei 2024

androidx.wear.protolayout:protolayout-*:1.2.0-alpha02 dirilis. Versi 1.2.0-alpha02 berisi commit ini.

Perubahan API

  • Kami telah menambahkan dukungan untuk menonaktifkan masukan riak pada setiap elemen yang dapat diklik. (If1ede)
  • API untuk transformasi telah dihapus dari ArcModifiers karena tidak mendukung fitur tersebut (Ic0827)
  • ArcDirectionProp Builder sekarang mengharapkan nilai dalam konstruktor. (I76ada)
  • Metode PlatformDataValues.Builder.putAll akan memungkinkan penggabungan satu PlatformDataValue ke yang lain. (I50ba3)
  • Text#setIsScalable diganti namanya menjadi Text#setScalable. (If920e)
  • Teks Material dapat menyetel apakah akan menggunakan ukuran skalabel (bertambah saat ukuran font pengguna diubah) atau tidak. (Ibc849)
  • Kami telah menambahkan opsi untuk menetapkan deskripsi konten ke TitleChip. (I5d21f)
  • Memperbaiki CompactChip agar berfungsi dengan benar dengan ikon saja dan mengupdate API untuk memungkinkan opsi ini. (I6589e)

Perbaikan Bug

  • Memperbaiki masalah potensi data platform duplikat selama inisialisasi. (Iba0fd)
  • Memperkenalkan pengambil baru ke DynamicDataNode untuk mengambil biaya node. Biaya digunakan saat memperoleh kuota node dinamis. Saat ini, Node dengan nilai tetap akan memiliki biaya 0, semua node lainnya akan memiliki biaya 1. (Ia33e1)
  • Menghapus logika penghitungan dari NO_OP_QUOTA_MANAGER. (Ib50b8)
  • Kami telah menambahkan aturan lint untuk melaporkan peringatan saat PrimaryLayout digunakan tanpa setResponsiveContentInsetEnabled dan memberikan perbaikan cepat. (I12025)
  • Ada batas jumlah node ekspresi dinamis. (Iffae8)

Versi 1.2.0-alpha01

6 Maret 2024

androidx.wear.protolayout:protolayout-*:1.2.0-alpha01 dirilis. Versi 1.2.0-alpha01 berisi commit ini.

Fitur Baru

  • Elemen ProtoLayout Arc sekarang memiliki opsi untuk menambahkan ArcDirection (Clockwise, Counterclockwise, atau Normal) ke dalamnya. Menambahkan perilaku ini ke Arc, ArcLine, atau ArcText akan memperbaiki perilakunya pada tata letak RTL. (I90699)
  • EdgeContentLayout telah diperbarui dengan penyetel setResponsiveContentInsetEnabled baru untuk mencapai keselarasan yang lebih baik dengan panduan UX, konsistensi di Kartu dengan menempatkan label utama di tempat tetap di atas, dan inset responsif untuk label. (I60175)
  • Kami telah menambahkan PrimaryLayout.setResponsiveContentInsetEnabled yang menambahkan inset responsif ke label utama, label sekunder, dan chip bawah dalam tata letak ini untuk mencegah konten keluar dari tepi layar. (I0c457)
  • Menambahkan metode untuk menghapus margin luar dari CircularProgressIndicator agar dapat digunakan sebagai komponen yang lebih kecil. (I55c06)

Perubahan API

  • Perender kartu kini mengecualikan padding font di semua elemen teks secara default, tanpa opsi untuk menyertakannya. (I3e300)

Perbaikan Bug

  • Memperbaiki masalah perataan Teks saat elipsize, spasi huruf, dan rata tengah digunakan pada Teks. (I716c7)
  • Menambahkan solusi untuk masalah menggambar alur melengkung. (I08f09)
  • Memperbaiki arah gambar ArcLine untuk tata letak RTL. (I6c141)

Versi 1.1

Versi 1.1.0

7 Februari 2024

androidx.wear.protolayout:protolayout-*:1.1.0 dirilis. Versi 1.1.0 berisi commit ini.

Perubahan penting sejak versi 1.0.0

  • Dukungan gradien dan representasi yang lebih baik untuk panjang yang lebih besar dari 360 derajat di ArcLine.
  • Pemformatan tanggal-waktu mendukung zona waktu yang berbeda untuk jenis data dinamis.
  • Opsi pengubahan ukuran otomatis dan elipsisasi teks yang lebih baik, untuk menangani teks yang terpotong.
  • Pengatur jarak mendukung dimensi yang diperluas dengan bobot opsional.
  • Anotasi persyaratan versi skema untuk semua ProtoLayout API.
  • Area target diperluas ke elemen Clickable apa pun menjadi 48 dp x 48 dp, untuk memenuhi persyaratan aksesibilitas.
  • Padding font dinonaktifkan secara default dan merupakan satu-satunya perilaku di semua elemen Text dan komponen Material yang berisi teks.

Perubahan lainnya

  • Untuk mengetahui kumpulan perubahan yang lebih lengkap yang diperkenalkan di versi 1.1.0, lihat catatan rilis beta01.

Versi 1.1.0-rc01

24 Januari 2024

androidx.wear.protolayout:protolayout-*:1.1.0-rc01 dirilis. Versi 1.1.0-rc01 berisi commit ini.

Perbaikan Bug

  • PlatformTimeUpdateNotifierImpl langsung dicentang setelah mengaktifkan update. (I77145)
  • CircularProgressIndicator telah diperbaiki untuk tata letak RTL. Mulai sekarang, semua akan berputar searah jarum jam. (I95ee3)
  • Menambahkan solusi untuk masalah menggambar alur melengkung. (I08f09)

Versi 1.1.0-beta01

10 Januari 2024

androidx.wear.protolayout:protolayout-*:1.1.0-beta01 dirilis. Versi 1.1.0-beta01 berisi commit ini.

Fitur Baru

Rilis 1.1.0-beta01 Wear ProtoLayout menunjukkan bahwa rilis library ini sudah memiliki fitur lengkap dan API terkunci (kecuali jika ditandai sebagai eksperimental). Wear ProtoLayout 1.1 menyertakan fungsi dan API baru berikut:

  • ArcLine kini mendukung gradien dengan menambahkan Brush dengan SweepGradient dan memiliki bayangan pada ujungnya agar lebih mewakili panjang yang lebih besar dari 360 derajat dengan menambahkan Shadow pada StrokeCap yang ada.
  • DynamicInstant memiliki dukungan untuk pemformatan tanggal-waktu yang ditentukan. DynamicInstant dan DynamicDuration dapat digunakan sebagai jenis data status atau platform.
  • Fitur pengubahan ukuran teks otomatis untuk ukuran teks yang memungkinkan setelan beberapa ukuran menjadi FontStyle.setSizes. Ukuran teks akan diskalakan secara otomatis berdasarkan ruang yang dimilikinya di dalam induk. Selain itu, kami telah meningkatkan opsi elipsis untuk teks yang berlebih dengan menambahkan TEXT_OVERFLOW_ELLIPSIZE dan menghentikan penggunaan TEXT_OVERFLOW_ELLIPSIZE_END.
  • Spacer kini mendukung memiliki dimensi yang diperluas dengan bobot opsional. Untuk mem-build ExpandedDimensionProp, kami telah menambahkan metode bantuan DimensionBuilders.weight.
  • Dukungan untuk menyembunyikan dan memperlihatkan elemen tata letak secara dinamis dengan Modifier.visible. Ini termasuk memiliki nilai dinamis di BoolProp.
  • Semua ProtoLayout API kini memiliki anotasi persyaratan versi skema dan versi dapat diperiksa sebelum memanggil API yang lebih baru.
  • Setiap elemen yang memiliki Clickable kini memiliki area target yang diperluas hingga minimal 48x48 di perender untuk mendukung persyaratan aksesibilitas dengan lebih baik.
  • Setelah komponen Material dan inisiatif Compose lainnya, kami kini menonaktifkan padding font secara default di semua elemen Text. Selain itu, AndroidTextStyle dan penyetel terkait telah dihapus dari API publik. dengan perbaikan bug berikut:
  • Menambahkan penyetel untuk memosisikan konten edge di EdgeContentLayout sehingga dapat diposisikan sebelum konten lainnya.
  • Menampilkan pengecualian secara konsisten saat menemukan nilai enum yang tidak dikenal.
  • Membatalkan hasil ekspresi jika menghasilkan nilai numerik yang tidak valid (NaN atau tak terbatas) atau menampilkan ArithmeticException.

Perubahan API

  • Update pada SweepGradient API untuk memungkinkan penerimaan warna atau ColorStops di konstruktor. (I6676f)

Perbaikan Bug

  • Menambahkan API terbatas dan dukungan perender untuk menyetel arah penggambaran elemen busur. (Idef5a)
  • RoundMode ditetapkan secara default ke Floor dalam FloatToInt32Node jika tidak ditentukan. Node akan tetap menampilkan pengecualian jika RoundMode yang diberikan tidak dikenal. (I1b2d8)

Versi 1.1.0-alpha04

13 Desember 2023

androidx.wear.protolayout:protolayout-*:1.1.0-alpha04 dirilis. Versi 1.1.0-alpha04 berisi commit ini.

Fitur Baru

  • Class VersionInfo tidak menerapkan antarmuka Comparable. (I8d13c)
  • Perender kini mendukung opsi TEXT_OVERFLOW_ELLIPSIZE. (I7f085)

Perubahan API

  • Opsi tambahan teks TEXT_OVERFLOW_ELLIPSIZE_END kini tidak digunakan lagi. Gunakan API baru TEXT_OVERFLOW_ELLIPSIZE dengan perilaku yang sangat serupa. (I822d8)
  • Setelah komponen Material dan inisiatif Compose lainnya, kami kini menonaktifkan padding font secara default di semua elemen Text. Selain itu, AndroidTextStyle dan penyetel terkait telah dihapus dari API publik. (I79094, Ib0b03, I32959, Iaf7d5, Ifa298, I0a4ae, Ida9d3)
  • Modifier.hidden diganti dengan Modifier.visible (I56902)
  • FontStyle#setSizes sekarang menerima argumen int, bukan SpProp. (I02b37)

Perbaikan Bug

  • Menampilkan pengecualian saat menemukan nilai enum Tidak Didefinisikan atau Tidak Dikenal. (I9d2cf)
  • Faktorkan ulang DynamicTypeBindingRequest. (I27b57)
  • Membatalkan hasil ekspresi jika menghasilkan nilai numerik yang tidak valid (NaN atau tak terbatas) atau menampilkan ArithmeticException. (I681ae)

Versi 1.1.0-alpha03

29 November 2023

androidx.wear.protolayout:protolayout-*:1.1.0-alpha03 dirilis. Versi 1.1.0-alpha03 berisi commit ini.

Fitur Baru

  • Menambahkan dukungan eksperimental untuk menyembunyikan/menyembunyikan elemen tata letak secara dinamis (I64a78)
  • Menambahkan dukungan nilai dinamis ke BoolProp (I2fe96)
  • Menambahkan anotasi persyaratan versi skema ke ProtoLayout API (I0f03c)
  • Memperluas API dengan opsi baru di TextOverflow untuk membuat elips Teks dalam penampung induk tetap meskipun baris maksimum tidak tercapai (tetapi tidak ada cukup ruang untuk Teks). (I110a9)
  • Menambahkan metode helper DimensionBuilders.weight untuk membangun ExpandedDimensionProp dengan bobot. (I4f72b)
  • DynamicInstant dan DynamicDuration dapat digunakan sebagai jenis data status atau platform. (I6819f)

Perubahan API

  • Mengupdate API untuk menyembunyikan DynamicZonedDateTime dan memindahkan semua operasinya ke DyanamicInstant (I34b94)
  • Spacer kini mendukung Dimensi yang diperluas untuk lebar/tinggi. (Ie7c94)
  • Mendukung ekstensi area target klik di Renderer (I39c79)

Versi 1.1.0-alpha02

15 November 2023

androidx.wear.protolayout:protolayout-*:1.1.0-alpha02 dirilis. Versi 1.1.0-alpha02 berisi commit ini.

Fitur Baru

  • Menambahkan kolom ArcLine StrokeCap Shadow ke API. (I830ec)
  • Memperluas API agar dapat menentukan lebar atau tinggi Spacer yang akan diperluas. (I757ca)
  • Kami telah menambahkan API eksperimental untuk menskalakan ukuran teks secara otomatis berdasarkan ruang yang dimilikinya di dalam induk. (Ibbe63)
  • Mendukung ukuran minimum yang dapat diklik (I178e3)
  • Penambahan dukungan perender untuk StrokeCap Shadow. (I48b17)
  • Menambahkan dukungan perender untuk Sweep Gradient di ArcLine. (I4d5bb)

Versi 1.1.0-alpha01

18 Oktober 2023

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

Fitur Baru

  • Menambahkan opsi kuas ke Arcline, dengan dukungan untuk SweepGradient. (Ie7ce3)
  • Menambahkan dukungan untuk pemformatan tanggal-waktu yang ditentukan. (Ibfae0)
  • Menambahkan proto dan Wrapper java yang diperlukan untuk pemformatan tanggal-waktu yang ditentukan. (I97126)
  • Menambahkan pengambil untuk membaca kembali nilai yang disimpan dalam DynamicDataValue. (Ie6cea)
  • Menambahkan penyetel untuk memosisikan konten edge di EdgeContentLayout sehingga dapat diposisikan sebelum konten lainnya. (Ie8e8a)

Perbaikan Bug

  • Memperbaiki masalah saat ekspresi dengan pendaftaran sumber data multi-waktu tidak segera diperbarui. (I8e1a8)
  • Memperbaiki bug untuk menempatkan elemen root di tengah selama update diff. (Ie48f7)
  • Nilai batasan tata letak yang tidak ditetapkan (atau kosong) tidak akan diabaikan lagi. (Ibc785)
  • Mengurangi penundaan antara tata letak yang terlihat dan inisialisasi node pipeline. (I38d4e)

Versi 1.0

Versi 1.0.0

9 Agustus 2023

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

Fitur utama 1.0.0

Library ProtoLayout memperkenalkan API untuk membuat tata letak dan ekspresi yang dapat digunakan di berbagai platform Wear OS. Misalnya, library Kartu menggunakan API ini untuk mendukung data binding platform (untuk update data kartu yang lebih cepat) dan animasi.

Versi 1.0.0-rc01

26 Juli 2023

androidx.wear.protolayout:protolayout-*:1.0.0-rc01 dirilis. Versi 1.0.0-rc01 berisi commit ini.

  • Untuk bermigrasi dari Kartu ke ProtoLayout, ikuti petunjuk di sini.

Perubahan API

  • Kami telah menghapus metode setLayoutConstraintForDynamicAnchorAngle dan getLayoutConstraintForDynamicAnchorAngle dari elemen Arc. Metode ini telah ditambahkan secara tidak sengaja dan tidak berpengaruh pada tata letak yang disediakan. (If7d01)
  • Kami telah membatasi kedalaman maksimum yang dapat dimiliki tata letak ProtoLayout hingga 30 LayoutElements bertingkat. (I8a74b)

Perbaikan Bug

  • Kami telah menambahkan pemeriksaan untuk ditampilkan jika DynamicColor telah ditetapkan untuk SpanText. (I0e5bc)
  • Dijelaskan bahwa unit sumber data DAILY_CALORIES adalah kkal. (Iaa785)

Versi 1.0.0-beta01

21 Juni 2023

androidx.wear.protolayout:protolayout-*:1.0.0-beta01 dirilis. Versi 1.0.0-beta01 berisi commit ini.

Fitur Baru

  • Mengizinkan pengaturan jam untuk pengujian pengikatan waktu. (I05622)

Perubahan API

  • PlatformDataReceiver.onData() dan StateBuilders.Builder.addKeyToValueMapping kini menerima pemetaan dengan keamanan jenis DynamicDataKey ke DynamicDataValue, bukan generik yang tidak aman. Artinya, DynamicDataValue sekarang diketik dengan DynamicType miliknya. Konstanta HEART_RATE_ACCURACY_X dipindahkan ke root PlatformHealthSources, untuk mencocokkan pemosisian konstanta Android lainnya. Konstanta int HEART_RATE_ACCURACY_X kini digunakan langsung di DynamicHeartRateAccuracy.constant() dan DynamicHeartRateAccuracy.dynamicDataValueOf(), bukan konstanta nilai. (I82ff5)
  • Class PlatformHealthSources.Constants dapat dibuat instance-nya secara tidak sengaja. Masalah ini telah diperbaiki sekarang. (Icb849)
  • PlatformTimeUpdateNotifier#setReceiver sekarang menerima Runnable, bukan fungsi Supplier dan Executor untuk memberi tahu. (I9d938)
  • Kita telah mengubah jenis parameter di PlatformTimeUpdateNotifier#setReceiver dari Callable menjadi Supplier. (I664bf)
  • CompactChip dan TitleChip kini mendukung penambahan ikon ke ikon tersebut. (I5a01e)

Perbaikan Bug

  • Memperbarui pesan Prop dengan kolom dinamis untuk menggunakan salah satu dari keduanya (I81739)
  • Menggunakan kembali implementasi penyetel untuk overload yang memiliki penyetel (Ied70c)
  • Merekam sidik jari dengan benar di penyetel yang memiliki overload (I86ed2)

Versi 1.0.0-alpha11

7 Juni 2023

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

Fitur Baru

  • Kami telah menambahkan PlatformDataKey untuk akurasi detak jantung. (I7f9b8)

Perubahan API

  • Ganti nama StateBuilders#getIdToValueMapping menjadi getKeyToValueMapping dan ubah jenis nilai yang ditampilkan menjadi Map<<AppDataKey<?>,DynamicDataValue>. (Iaa7ae)
  • Membuat StateStore menjadi class terakhir (I408ca)
  • Antarmuka TimeGateway telah diganti dengan PlatformTimeUpdateNotifier di library protolayout-expression-pipeline yang memberikan frekuensi yang diinginkan untuk memperbarui data waktu. (I60869)
  • Mengganti nama register/unregisterForData di PlatformDataProvider menjadi set/clearReceiver (I14b02)
  • Di Teks Material, getExcludeFontPadding diganti namanya menjadi hasExcludeFontPadding. (Iea01d)
  • Penyetel untuk menyejajarkan label secara sempurna telah ditambahkan ke semua komponen chip. Semua chip sekarang menerapkan target min. yang dapat diketuk. (I8ae92)
  • LayoutDefaults#BUTTON_MAX_NUMBER diganti namanya menjadi MAX_BUTTONS. (I84788)
  • DAILY_DISTANCE diganti namanya menjadi DAILY_DISTANCE_M. (I4f758)

Perbaikan Bug

  • Perbarui dokumen jenis Prop untuk mengklarifikasi alasan nilai statis diterapkan. Tentukan nilai default yang digunakan jika nilai statis tidak diberikan. (I155aa)
  • Namespace PlatformDataKey harus mengikuti penamaan gaya Java. (I47bda)

Versi 1.0.0-alpha10

24 Mei 2023

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

Fitur Baru

  • Menambahkan AppDataKey untuk mengakses status yang dikirim aplikasi; Menambahkan PlatformDataKey untuk mengakses data platform; Menambahkan dukungan namespace di StateStore. (I7985e)
  • Mendukung operasi Equal dan NotEqual untuk DynamicBool. (I6a0c1)

Perubahan API

  • Class FontStyles sekarang sudah final (Iaa2ea)
  • LayoutElementBuilders#FontStyles tidak digunakan lagi. Gunakan androidx.wear.protolayout.Typography atau buat FontStyle Anda sendiri. (Ic929b)
  • Sembunyikan antarmuka bertingkat Action#Builder dari antarmuka Action. Implementasi Builder telah disediakan oleh class LoadAction dan LaunchAction. (I1d70c)
  • Izinkan penggunaan DynamicFloat dengan FloatProp. Perhatikan bahwa FloatProp tidak memerlukan batasan tata letak karena tidak digunakan sebagai properti perubahan tata letak. (I286ac)
  • Tindakan LoalAction dan SetStateAction dihapus karena belum benar-benar didukung. (I5d6a6)
  • Menambahkan dukungan untuk format ARGB_8888 untuk resource gambar inline. (I8a07c)
  • Mengganti nama StateEntryValue menjadi DynamicDataValue, dan mengupdate API status untuk menggunakan DynamicDataKey (If1c01)
  • Kami membatasi jumlah entri yang diizinkan di StateStore untuk memastikan bahwa penggunaan memori dan waktu update status terkendali dan dikontrol dengan baik untuk setiap instance StateStore. Akibatnya, developer perlu memastikan bahwa mereka tidak memiliki lebih dari MAX_STATE_ENTRY_COUNT entri dalam peta. Jika tidak, mereka akan mendapatkan IllegalStateException saat membuat atau memperbarui StateStore. (Ibadb3)
  • Menyembunyikan class OnLoadTrigger dan OnConditionMetTrigger, dan mengganti nama setTrigger menjadi setCondition untuk OnConditionMetTrigger. (Ibf629)
  • Untuk alasan performa dan kompatibilitas, perender ProtoLayout tidak akan mendukung rangkaian fitur lengkap di resource AnimatedVectorDrawable. Kita menandai API tersebut sebagai eksperimental sampai dapat menentukan set yang didukung. (Ic6daf)
  • Menambahkan jenis dinamis untuk jarak harian, kalori harian, dan lantai harian. Kunci untuk sumber kondisi platform sekarang berada di bawah PlatformHealthSources.Keys (Ib7637)
  • Metode Easing.cubicBezier menggantikan CubicBezierEasing.Builder. Dengan demikian, class EasingFunction akan dihapus dan konstanta easing dari class tersebut sekarang dapat diakses langsung dari antarmuka Easing. Selain itu, setInfiniteRepeatable diganti dengan INFINITE_REPEATABLE_WITH_RESTART dan INFINITE_REPEATABLE_WITH_REVERSE (Ib41e7)
  • Terapkan PlatformDataProvider untuk memberikan detak jantung dan langkah harian. Antarmuka SensorGateway dihapus dari API publik. (I55b84)
  • Tambahkan PlatformDataProvider, dan update StateStore untuk mendaftar ke PlatformDataProvider saat kunci yang didukung penyedia diperlukan oleh node dari pipeline ekspresi. (Ib616a)
  • SensorGateway tidak lagi Closeable karena tidak lagi mempertahankan status apa pun. (I6b4f7)
  • Izinkan penggunaan FloatProp dengan DynamicFloat untuk progres di CircularProgressIndicator. Ini didukung untuk perender yang mendukung versi 1.2. Perender lama akan kembali ke staticValue jika disediakan, jika tidak, ke 0 (I0d91b)
  • Konstanta MultiButtonLayout telah difaktorkan ulang menjadi class LayoutDefaults.MultiButtonLayoutDefaults yang sekarang berisi konstanta untuk ukuran tombol bergantung pada sejumlah tombol dalam tata letak. (I13973)
  • Dukungan penggunaan StringProp dengan DynamicString dalam Teks Material. Ini didukung untuk perender yang mendukung versi 1.2. Perender lama akan kembali ke nilai statis yang diberikan. Perbarui jenis nilai yang ditampilkan Text#getText dari String ke StringProp. (I7275b)

Versi 1.0.0-alpha09

10 Mei 2023

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

Fitur Baru

  • Kami telah menambahkan elemen tata letak ekstensi eksperimental. Perhatikan bahwa ini tidak dapat digunakan secara default dan memerlukan ekstensi perender yang dapat memahami elemen tata letak. (I6581d)
  • Penambahan dukungan StrokeCap untuk ArcLine. (I94951)
  • Penambahan dukungan untuk operasi Instan Bersyarat. (I489a7)
  • Menambahkan dukungan untuk operasi Durasi Bersyarat. (Iab469)
  • Menambahkan dukungan untuk membuat durasi dari detik. (Ib5fa1)

Perubahan API

  • Metode enable/disablePlatformSource telah dihapus dari DynamicTypeEvaluator. Pemanggil harus bertanggung jawab atas update. (I78c6d)
  • Mengizinkan pembatasan ukuran jenis data yang dibatasi. (Ie2966)
  • Menambahkan dukungan untuk deskripsi konten dinamis di protolayout-material. (I62c8e)
  • Gunakan long dan @IntRange untuk durasi dan penundaan di AnimationParameters. (I388b6)

Versi 1.0.0-alpha08

19 April 2023

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

Fitur Baru

  • AndroidTextStyle telah ditambahkan ke LayoutElementBuilders (I8d967)
  • Kami telah menambahkan dukungan untuk setelan mengecualikan padding font di Teks Material ProtoLayout. (I17f5d)
  • ARGB_8888 kini didukung untuk gambar inline. (I18c1e)
  • DynamicColor kini mendukung operasi onCondition. (I10927)

Perubahan API

  • Mendukung durasi kustom untuk animasi terbalik (I3251f)
  • Kami telah menambahkan pengubah SemanticDescription. Selain itu, ContentDescription tidak dapat diikat. (I3f1d)
  • Metode DynamicBool.isFalse() sekarang diganti dengan DynamicBool.negate() dan DynamicBool.isTrue() dihapus. Selain nilai DynamicFloat NaN dan penyempitan DynamicInt32 ke DynamicFloat, sekarang memunculkan hasil dinamis yang tidak valid. (I6ac1e)
  • Pemformat Int dan float sekarang menggunakan pola Builder. (Ieb213)

Perbaikan Bug

  • Nilai statis penggantian telah dihapus dari kolom yang dapat dianimasikan. (Ifcb01)
  • DynamicTypeValueReceiver#onPreUpdate telah dihapus (I2dc35)
  • Panjang String dalam ekspresi dinamis kini dibatasi. (I4c93)
  • Dependensi gradle kini disetel dengan benar ke api, bukan implementation, jika diperlukan. (I40503)

Versi 1.0.0-alpha07

5 April 2023

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

Fitur Baru

  • Menambahkan dukungan nilai dinamis ke StringProp (I04342)
  • Menandai elemen tata letak yang dapat diikat (Ia110b)

Perubahan API

  • sensorGateway#registerSensorGatewayConsumer menggunakan jenis data sebagai parameter, bukan metode di Konsumen. (Icf314)
  • ObservableStateStore diganti namanya menjadi StateStore. (Ieb0e2)
  • Menambahkan DynamicTypeEvaluator.Builder, bukan argumen konstruktor untuk mengizinkan lebih banyak argumen opsional, termasuk ObservableStateStore yang sekarang ditetapkan secara default ke penyimpanan kosong. (I6f832)
  • Urutan parameter telah difaktorkan ulang di DynamicTypeEvaluator. (Ic1ba4)

Perbaikan Bug

  • Menyebarkan sinyal dengan benar dari sumber sensor platform ke node downstream (I5a922)

Versi 1.0.0-alpha06

22 Maret 2023

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

Fitur Baru

  • Kami telah menambahkan API eksperimental untuk menggunakan detak jantung dan langkah harian dalam ekspresi dinamis (Ifd711)
  • Kami telah menambahkan dukungan untuk penundaan mundur dan maju untuk animasi. (Ic25f7)
  • Kami telah menambahkan dukungan DynamicColor ke Batas dan Latar Belakang
  • Kami telah menambahkan dukungan nilai dinamis ke jenis di DimensionBuilder
  • Tata letak dan komponen dari tiles-material dipindahkan ke protolayout-material

Perubahan API

  • LoadActionListener telah ditambahkan ke ProtoLayoutViewInstance (If7806)

Perbaikan Bug

  • Menambahkan FloatNodesTest (Id7281)
  • Memperbaiki error perender saat tidak dapat memuat bitmap terstruktur.

Versi 1.0.0-alpha05

8 Maret 2023

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

Fitur Baru

  • Kami telah menambahkan "pembaruan konten" eksperimental animasi pada objek Modifiers. Animasi ini akan dipicu setiap kali elemen (dengan pengubah ini) atau salah satu turunannya berubah selama update tata letak. (bd03e5d)

Perubahan API

  • Kami telah menambahkan forwardRepeatDelayMillis dan reverseRepeatDelayMillis ke Repeatable. Kami juga mengganti nama delayMillis di AnimationSpec menjadi startDelayMillis (Ifb266)
  • Metode DynamicTypeEvaluator.bind kini menerima Executor. (I346ab)
  • Kita telah menambahkan metode startEvaluation ke BoundDynamicType untuk memicu evaluasi setelah jenis dinamis terikat. (I19908)

Perbaikan Bug

  • Objek Animator akan digunakan kembali untuk animasi berikutnya dari satu elemen. (Ia3be9)

Versi 1.0.0-alpha04

22 Februari 2023

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

Fitur Baru

  • ObservableStateStore kini memberi tahu pemroses jika kunci juga dihapus.
  • Kami telah menambahkan versi skema perender dan skala font ke DeviceParameters (yang dapat digunakan untuk membuat tata letak bersyarat sebagai respons terhadap versi dan setelan font yang berbeda).
  • Kami telah menambahkan dukungan untuk menganimasikan nilai DynamicInt32 (I05485)
  • Kami telah menambahkan pemicu OnLoad dan OnConditionalMet. Ini dapat digunakan untuk memulai animasi yang mendukung pemicu.
  • Kami telah menambahkan bobot tata letak untuk dimensi yang diperluas dan ukuran min untuk dimensi yang digabungkan.
  • Kami telah menambahkan jenis durasi dan dinamis instan. Ini dapat digunakan untuk mewakili instan atau durasi waktu dalam ekspresi dinamis.
  • Kami telah menambahkan dukungan untuk AnimatedVectorDrawable dan SeekableAnimatedVectorDrawable sebagai resource tata letak.

Perubahan API

  • Data sensor memerlukan API 29+. (I8099e)
  • Kami telah menambahkan dua metode bantuan launchAction (untuk meluncurkan Aktivitas).

Perbaikan Bug

  • Mengganti nama set/getSpec menjadi set/getAnimationSpec di animasi Kartu (I3d74b)

Versi 1.0.0-alpha03

8 Februari 2023

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

Fitur Baru

  • Kami telah menambahkan toByteArray() dan fromByteArray() ke jenis Dinamis di library protolayout-express.
  • Kami telah menambahkan toString() ke jenis Dinamis di library protolayout-express.
  • Kami telah menambahkan dukungan evaluasi untuk jenis Dinamis. Class DynamicTypeEvaluator dari library protolayout-expression-pipeline dapat digunakan untuk mengevaluasi (dan menerima nilai yang diperbarui) untuk jenis Dinamis yang dibuat sebelumnya (DynamicString, DynamicFloat, …)
  • Jika animasi tidak dapat diputar (karena dinonaktifkan oleh evaluator atau jumlah animasi yang berjalan telah mencapai batas yang ditetapkan), nilai statis yang ditetapkan pada node yang dapat dianimasikan akan digunakan untuk mengganti animasi.

Versi 1.0.0-alpha02

25 Januari 2023

androidx.wear.protolayout:protolayout:1.0.0-alpha02, androidx.wear.protolayout:protolayout-expression:1.0.0-alpha02, dan androidx.wear.protolayout:protolayout-proto:1.0.0-alpha02 dirilis. Versi 1.0.0-alpha02 berisi commit berikut ini.

Fitur Baru

  • Builder tata letak dari androidx.wear.tiles:tiles beralih ke androidx.wear.protolayout:protolayout. Builder tata letak di androidx.wear.tiles:tiles tidak akan digunakan lagi dalam salah satu rilis alfa berikutnya.

Versi 1.0.0-alpha01

11 Januari 2023

androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01 dan androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01 dirilis. Versi 1.0.0-alpha01 berisi commit ini.

Fitur Baru

  • Rilis ini memperkenalkan library baru "ProtoLayout Expression" untuk membuat ekspresi dari variabel dinamis.