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
6 Maret 2024 1.1.0 - - 1.2.0-alpha01

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.2.0-alpha01"

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

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

Kotlin

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

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

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

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-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 kini memiliki opsi untuk menambahkan ArcDirection (Clockwise, Counterclockwise, atau Normal) ke elemen tersebut. Menambahkan perilaku ini ke Arc, ArcLine, atau ArcText akan memperbaiki perilakunya di tata letak RTL. (I90699)
  • EdgeContentLayout telah diperbarui dengan penyetel setResponsiveContentInsetEnabled baru untuk mencapai keselarasan yang lebih baik dengan panduan UX, konsistensi dalam 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 menghindari konten tersebut keluar dari tepi layar. (I0c457)
  • Menambahkan metode untuk menghapus margin luar dari CircularProgressIndicator sehingga 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 elipsis, spasi huruf, dan rata tengah digunakan pada Text. (I716c7)
  • Tambahkan solusi untuk masalah gambar busur ski. (I08f09)
  • Memperbaiki arah menggambar 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 panjang yang lebih baik dari 360 derajat di ArcLine.
  • Pemformatan tanggal-waktu mendukung zona waktu yang berbeda untuk jenis data dinamis.
  • Opsi pembuatan elips dan pengubahan ukuran teks yang lebih baik, untuk menangani teks yang terpotong.
  • Spacer mendukung dimensi yang diperluas dengan bobot opsional.
  • Anotasi persyaratan versi skema ke semua ProtoLayout API.
  • Memperluas area target ke elemen Clickable apa pun hingga ukuran 48 dp x 48 dp, untuk memenuhi persyaratan aksesibilitas.
  • Padding font dinonaktifkan secara default dan merupakan satu-satunya perilaku di semua elemen Teks dan komponen Material yang berisi teks.

Perubahan lainnya

  • Untuk melihat rangkaian 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 tick segera setelah mengaktifkan update. (I77145)
  • CircularProgressIndicator telah diperbaiki untuk tata letak RTL. Mulai sekarang, semuanya akan berputar searah jarum jam dalam semua kondisi. (I95ee3)
  • Tambahkan solusi untuk masalah gambar busur ski. (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 Wear ProtoLayout 1.1.0-beta01 menunjukkan bahwa rilis library ini memiliki fitur lengkap dan API dikunci (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 di bagian batas untuk menunjukkan panjang yang lebih besar dari 360 derajat dengan lebih baik dengan menambahkan Shadow pada StrokeCap yang ada.
  • DynamicInstant memiliki dukungan untuk pemformatan tanggal-waktu yang dikategorikan. DynamicInstant dan DynamicDuration dapat digunakan sebagai jenis data status atau platform.
  • Fitur pengubahan ukuran otomatis untuk ukuran teks yang memungkinkan penyetelan beberapa ukuran ke FontStyle.setSizes dengan ukuran Teks akan otomatis diskalakan berdasarkan ruang yang dimilikinya di dalam induk. Selain itu, kami meningkatkan opsi elipsis untuk teks yang melebihi batas dengan menambahkan TEXT_OVERFLOW_ELLIPSIZE dan menghentikan penggunaan TEXT_OVERFLOW_ELLIPSIZE_END.
  • Spacer kini mendukung 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.
  • Area target setiap elemen yang memiliki Clickable kini diperluas hingga setidaknya 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 tepi di EdgeContentLayout sehingga dapat diposisikan sebelum konten lain.
  • Secara konsisten menampilkan pengecualian 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 salah satu warna atau ColorStops di konstruktor. (I6676f)

Perbaikan Bug

  • Menambahkan API yang dibatasi 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 mengimplementasikan antarmuka Comparable. (I8d13c)
  • Perender sekarang 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 mirip. (I822d8)
  • Setelah komponen Material dan inisiatif Compose lainnya, kami kini menonaktifkan padding font secara default pada 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 Undefined 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/memperlihatkan 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 elipsis Teks dalam penampung induk tetap meskipun baris maksimum tidak tercapai (tetapi tidak ada cukup ruang untuk Teks). (I110a9)
  • Menambahkan metode helper DimensionBuilders.weight untuk mem-build 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 Perender (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 Spasi yang 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)
  • Menambahkan dukungan perender untuk StrokeCap Shadow. (I48b17)
  • Menambahkan dukungan perender untuk Gradien Sapu 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 dikategorikan. (Ibfae0)
  • Menambahkan proto dan Wrapper java yang diperlukan untuk pemformatan tanggal-waktu yang dikategorikan. (I97126)
  • Menambahkan pengambil untuk membaca kembali nilai yang disimpan dalam DynamicDataValue. (Ie6cea)
  • Menambahkan penyetel untuk memosisikan konten tepi di EdgeContentLayout sehingga dapat diposisikan sebelum konten lain. (Ie8e8a)

Perbaikan Bug

  • Memperbaiki masalah saat ekspresi dengan pendaftaran sumber data beberapa kali tidak diperbarui secara langsung. (I8e1a8)
  • Memperbaiki bug untuk memusatkan elemen root selama update diff. (Ie48f7)
  • Nilai batasan tata letak yang tidak ditetapkan (atau kosong) tidak akan diabaikan lagi. (Ibc785)
  • Mengurangi penundaan antara tata letak menjadi terlihat dan node pipeline-nya diinisialisasi. (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 petunjuknya di sini.

Perubahan API

  • Kami telah menghapus metode setLayoutConstraintForDynamicAnchorAngle dan getLayoutConstraintForDynamicAnchorAngle dari elemen Arc. Metode ini tidak sengaja ditambahkan 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 yang akan ditampilkan jika DynamicColor telah ditetapkan untuk SpanText. (I0e5bc)
  • Diperjelas 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 binding waktu. (I05622)

Perubahan API

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

Perbaikan Bug

  • Memperbarui pesan Prop dengan kolom dinamis untuk menggunakan salah satu (I81739)
  • Menggunakan kembali implementasi penyetel untuk overload yang memiliki penyetel (Ied70c)
  • Merekam sidik jari dengan benar dalam 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, lalu ubah jenis nilai yang ditampilkan menjadi Map<<AppDataKey<?>,DynamicDataValue>. (Iaa7ae)
  • Menjadikan StateStore sebagai 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 Material Text, getExcludeFontPadding diganti namanya menjadi hasExcludeFontPadding. (Iea01d)
  • Penyetel untuk menyelaraskan label secara sempurna ditambahkan ke semua komponen chip. Semua chip kini memiliki 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

  • Memperbarui dokumen jenis Prop untuk memperjelas 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 aplikasi yang dikirim; Menambahkan PlatformDataKey untuk mengakses data platform; Tambahkan 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. Harap gunakan androidx.wear.protolayout.Typography atau buat FontStyle Anda sendiri. (IC929b)
  • Menyembunyikan 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 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 pembaruan status tertampung dan dikontrol dengan baik untuk setiap instance StateStore. Akibatnya, developer perlu memastikan bahwa mereka tidak memiliki lebih dari MAX_STATE_ENTRY_COUNT entri di peta. Jika tidak, developer akan mendapatkan IllegalStateException saat membuat atau memperbarui StateStore. (Ibadb3)
  • Menyembunyikan class OnLoadTrigger dan OnConditionMetTrigger, serta mengganti nama setTrigger menjadi setCondition untuk OnConditionMetTrigger. (Ibf629)
  • Untuk alasan performa dan kompatibilitas, perender ProtoLayout tidak akan mendukung rangkaian fitur lengkap dalam resource AnimatedVectorDrawable. Kami menandai API tersebut sebagai eksperimental hingga kami dapat menentukan set yang didukung. (IC6daf)
  • Menambahkan jenis dinamis untuk jarak harian, kalori harian, dan lantai harian. Kunci untuk sumber kondisi platform kini berada di bawah PlatformHealthSources.Keys (Ib7637)
  • Metode Easing.cubicBezier menggantikan CubicBezierEasing.Builder. Dengan demikian, class EasingFunction telah 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 menyediakan detak jantung dan langkah harian. Antarmuka SensorGateway dihapus dari API publik. (I55b84)
  • Menambahkan PlatformDataProvider dan mengupdate 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)
  • Mengizinkan penggunaan FloatProp dengan DynamicFloat untuk progres di CircularProgressIndicator. Ini didukung untuk perender yang mendukung versi 1.2. Perender lama akan melakukan fallback ke staticValue jika disediakan, jika tidak ke 0 (I0d91b)
  • Konstanta MultiButtonLayout telah difaktorkan ulang menjadi class LayoutDefaults.MultiButtonLayoutDefaults yang kini berisi hal tersebut untuk ukuran tombol, bergantung pada jumlah tombol di tata letak. (I13973)
  • Mendukung penggunaan StringProp dengan DynamicString dalam Teks Material. Ini didukung untuk perender yang mendukung versi 1.2. Perender lama akan melakukan fallback ke nilai statis yang disediakan. Perbarui jenis nilai yang ditampilkan Text#getText dari String menjadi 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 nilai ini tidak dapat digunakan secara default dan memerlukan ekstensi perender yang mampu memahami elemen tata letak. (I6581d)
  • Menambahkan dukungan StrokeCap untuk ArcLine. (I94951)
  • Menambahkan 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 terikat. (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 yang mengecualikan padding font di Material Text 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() telah dihapus. Selain itu, 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 memungkinkan lebih banyak argumen opsional, termasuk ObservableStateStore yang kini secara default disetel ke penyimpanan kosong. (I6f832)
  • Memfaktorkan ulang urutan parameter 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 terbalik 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 animasi "update konten" eksperimental ke 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)
  • Kami 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 elemen tunggal. (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 sebuah tombol juga dihapus.
  • Kami telah menambahkan versi skema perender dan skala font ke DeviceParameters (yang dapat digunakan untuk membuat tata letak secara 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 minimum untuk dimensi yang digabungkan.
  • Kami telah menambahkan durasi dan jenis dinamis instan. Ini dapat digunakan untuk mewakili waktu instan atau durasi 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.