Glance

Membuat tata letak untuk platform jarak jauh menggunakan API khas Jetpack Compose.
Update Terbaru Rilis Stabil Kandidat Rilis Rilis Beta Rilis Alfa
7 Februari 2024 - - - 1.0.0-alpha05

Mendeklarasikan dependensi

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

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

Groovy

dependencies {
    // For Glance support
    implementation "androidx.glance:glance:1.1.0-alpha01"
    // For AppWidgets support
    implementation "androidx.glance:glance-appwidget:1.1.0-alpha01"

    // For Wear-Tiles support
    implementation "androidx.glance:glance-wear-tiles:1.0.0-alpha05"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.1.0-beta03"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    // For Glance support
    implementation("androidx.glance:glance:1.1.0-alpha01")
    
    // For AppWidgets support
    implementation("androidx.glance:glance-appwidget:1.1.0-alpha01")

    // For Wear-Tiles support
    implementation("androidx.glance:glance-wear-tiles:1.0.0-alpha05")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.1.0-beta03"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

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.1

Versi 1.1.0-alpha01

7 Februari 2024

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

Fitur Baru

  • Library pengujian unit untuk Glance yang tidak memerlukan UI Automator. Kode Glance dapat diuji langsung tanpa harus meng-inflate tampilan.
  • Komponen tingkat lebih tinggi untuk tata letak yang lebih sederhana.
  • Opsi Pengubah dan tema baru.
  • API baru untuk mendapatkan alur RemoteView dari komposisi, runComposition

Perubahan API

  • Menambahkan peran warna widgetBackground baru ke tema Glance. (Ia2ab8)
  • Menambahkan GlanceAppWidget.runComposition (I6344c, b/298066147)
  • Menambahkan komponen TopBar baru (Ibd361)
  • Menambahkan penggantian ke pengubah clickable. (Iacecf)
  • Menambahkan API baru untuk menambahkan tint tombol. Hal ini harus bersifat eksperimental hingga versi 1.0. (I92523)
  • Menambahkan runGlanceAppWidgetUnitTest yang menyediakan cakupan untuk memanggil metode di GlanceAppWidgetUnitTest seperti provideComposable guna menyediakan composable kecil yang terisolasi untuk pengujian, onNode guna menemukan elemen composable Glance dalam konten yang disediakan. Hal ini memungkinkan Anda menulis pengujian unit untuk setiap fungsi composable di appWidget untuk memverifikasi bahwa dengan input tertentu, fungsi menghasilkan kumpulan elemen composable Glance yang diinginkan. (I2f682)
  • Menambahkan pengubah testTag dalam semantik untuk digunakan dalam pengujian unit. (I8f62f)
  • mengupdate TitleBar - teks dan ikon dapat diberi warna satu per satu. (Ia0a60)
  • Menambahkan komponen scaffold (I8a736)
  • Menambahkan filter hasActionRunCallbackClickAction dan pernyataan assertHasActionRunCallbackClickAction untuk menguji actionRunCallack. Selain itu, menambahkan fungsi varian singkat tambahan untuk filter pengujian terkait tindakan - hasStartActivityClickAction<activityClass>(..), hasStartServiceAction<receiverClass>(..), hasSendBroadcastAction<receiverClass>(..). Menambahkan varian serupa untuk assertHasXXX pasangannya. (Ieca63)
  • Memindahkan API yang belum dirilis. Mengubah pengubah dari internal menjadi publik tetapi library dibatasi (If2a08)
  • Menambahkan metode onCompositionError tempat developer dapat menjalankan kode saat terjadi error (I9b56f)
  • Menambahkan API tombol dan iconbutton untuk melihat secara sekilas (I0fd6f)
  • Menambahkan filter isLinearProgressIndicator, isIndeterminateLinearProgressIndicator, isIndeterminateCircularProgressIndicator untuk mencocokkan indikator progres. Tambahan filter hasAnyDescendants untuk menguji apakah node memiliki turunan dalam sub-hierarki yang cocok dengan matcher tertentu (Ifd426)
  • Menambahkan pernyataan dan filter untuk memungkinkan pengujian tindakan klik yang memulai layanan / aktivitas atau siaran. Juga mencakup pengujian jika elemen input dicentang. (I3041c)

Versi 1.0.0

Versi 1.0.0-alpha06

7 Februari 2024

androidx.glance:glance-appwidget-preview:1.0.0-alpha06 dan androidx.glance:glance-preview:1.0.0-alpha06 dirilis. Versi 1.0.0-alpha06 berisi commit berikut ini.

Fitur Baru

  • Versi diupdate untuk mengikuti modul Glance utama.

Versi 1.0.0

6 September 2023

androidx.glance:glance-*:1.0.0 dirilis. Versi 1.0.0 berisi commit ini.

Fitur utama 1.0.0

  • Beralih Sekilas ke versi stabil 1.0.0

Versi 1.0.0-rc01

26 Juli 2023

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

Mengalihkan Glance ke rc01 dalam perjalanan menuju rilis stabil untuk 1.0.0.

Fitur Baru

  • Menambahkan parameter utama ke lambda tindakan untuk pemanggilan tindakan yang lebih stabil.
  • Menambahkan kemampuan untuk memberikan tindakan ActvityOptions ke startActivity.
  • Menambahkan dukungan untuk Android 14

Perubahan API

  • Menambahkan parameter kunci opsional untuk semua elemen yang menerima lambda. (Id96c1, b/282445798)
  • Menambahkan dukungan untuk menyetel paket ActivityOptions untuk actionStartActivity (I6a08d)
  • Menggabungkan file API publik dan eksperimental untuk d,e,f,g-paths (I03646, b/278769092)
  • T/A, perubahan file API hanyalah pengurutan ulang metode (I5fa95)
  • Menambahkan API untuk menetapkan CoroutineContext bagi permintaan GlanceAppWidgetReceiver (I0a100)
  • Menambahkan API baru guna menyediakan ActivityOptions untuk LazyColumn dan LazyVerticalGrid yang akan digunakan untuk semua tindakan dalam daftar.(Id8d71)

Perbaikan Bug

  • T/A, perubahan file API hanyalah pengurutan ulang metode (I5fa95)
  • Demo gaya komponen teks sekilas (Ie78a4)

Versi 1.0.0-beta01

10 Mei 2023

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

Fitur Baru

  • Memindahkan library ke versi beta.
  • Dukungan untuk tema menggunakan GlanceTheme , menambahkan modul Glance-material dan Glance-material3 untuk mendukung tema gaya material 2 dan material 3 di Glance.
  • Dukungan untuk FontFamily ditambahkan ke API teks.
  • Memindahkan GlanceAppWidget ke mekanisme update berbasis sesi WorkManager. Pengguna Glance untuk AppWidgets kini seharusnya mengganti GlanceAppWidget.provideGlance, bukan metode Content lama. Seperti yang sekarang terjadi pada pekerja, ini sekarang menjadi tempat yang baik untuk memuat resource, database, atau item jaringan tanpa harus memiliki pekerja terpisah.

Perubahan API

  • Menambahkan *Defaults API untuk Button, Checkbox, RadioButton, dan Switch. Tampilan ini mendekatkan dengan pola Jetpack Compose. (I94828)
  • Modul template Glance baru (I94459)
  • Membuat ResourceColorProvider internal ke modul. Perubahan yang dapat menyebabkan gangguan. Diperlukan karena ResourceColorProvider hanya boleh digunakan untuk tema dinamis guna menghindari situasi saat beberapa warna merupakan resource dinamis dan beberapa lainnya sudah sepenuhnya diselesaikan. (Ib0db7)
  • Menambahkan FontFamily sebagai opsi untuk TextStyle. (Ic19ba, b/274179837)
  • Nama parameter nilai untuk Enum.valueOf diubah (Ia9b89)
  • Lebih banyak pengecualian yang ditampilkan dari enum valueOf (I818fe)
  • Mengupdate GlanceAppWidget untuk menggunakan provideGlance sebagai titik entri utama. GlanceAppWidget.Content tidak digunakan lagi. (I202b5)
  • Menambahkan opsi untuk menyediakan warna tint untuk gambar (I26192, b/212418562)
  • Lebih banyak nullability jenis nilai yang ditampilkan dari fungsi tersembunyi yang tidak digunakan lagi. (Ibf7b0)
  • Menambahkan anotasi @JvmDefaultWithCompatibility (I8f206)
  • Menghapus SingleEntityTemplateData.displayHeader yang tidak digunakan. (I7f094)
  • Menambahkan dukungan untuk menggunakan lambda sebagai callback (Ia0bbd)
  • Memindahkan DayNightColorProvider ke modul Glance (I1842c, b/256934779)
  • Menghapus LocalColorProvider dari Template. Sekarang template akan menggunakan GlanceTheme.colors (Ic15e2)
  • Menghapus nullability dari Text(style: TextStyle) (I7123b, b/237012816)
  • Warna teks default menjadi hitam. menghapus nullability (I3072c, b/237012816)
  • Membuat tema dinamis ColorProviders sebagai objeknya sendiri. Menjadikan ResourceColorProvider internal ke modul. (Id0e2d, b/237012816)
  • Tambahkan Kategori yang belum ditentukan ke ImageSize. (I2fa39)
  • Menghapus fungsi GlanceAppWidget.Content yang tidak digunakan lagi (Ib05f6)
  • Menambahkan pengubah sebagai parameter ke AndroidRemoteViews. (I515d4)
  • Menambahkan GlanceAppWidget.compose untuk mempermudah pengujian unit (Ie9b28)

Perbaikan Bug

  • Menambahkan widget demo untuk font teks Glance (I5c3d7)
  • Menjadikan AndroidRemoteViews cukup besar dengan Pengubah.
  • Masalah terkait warna tema yang tidak konsisten telah diselesaikan
  • Semua resource kini diberi awalan untuk menghindari konflik

Versi 1.0.0-alpha05

5 Oktober 2022

androidx.glance:glance:1.0.0-alpha05, androidx.glance:glance-appwidget:1.0.0-alpha05, dan androidx.glance:glance-wear-tiles:1.0.0-alpha05 dirilis. Versi 1.0.0-alpha05 berisi commit ini.

Fitur Baru

  • Menambahkan requestPinGlanceAppWidget ke GlanceAppWidgetManager, yang memungkinkan aplikasi meminta pengguna untuk menambahkan widget berbasis Glance ke layar utama mereka. (Ic6e47)
  • Menambahkan ACTION_DEBUG_UPDATE ke GlanceAppWidgetReceiver untuk memungkinkan developer memaksa widget mereka diupdate dari adb pada emulator dan perangkat yang telah di-root. (I94ae1)

Perubahan API

  • Menghapus tombol tindakan header di template Glance untuk menyederhanakan kasus penggunaan. (Ie4387)
  • Memfaktorkan ulang Template Entity Tunggal untuk menggunakan kembali desain subsistem Blokir. (Iecd2c)
  • Memfaktorkan ulang Template Daftar Glance untuk menggunakan desain Blokir Text/Image/Action. (If0cc1)
  • Menambahkan rentang nomor prioritas untuk TextBlock dan ImageBlock. (I73100)

Perbaikan Bug

  • Menghapus dependensi Material3. (I28d1c)
  • Berpindah ke sistem yang lebih konsisten untuk menambahkan margin dan spasi dalam tata letak template Glance. (I29773)
  • Memperbaiki aturan Proguard yang salah format yang memblokir rilis yang diminifikasi dari pembuatan.

Versi 1.0.0-alpha04

10 Agustus 2022

androidx.glance:glance:1.0.0-alpha04, androidx.glance:glance-appwidget:1.0.0-alpha04, dan androidx.glance:glance-wear-tiles:1.0.0-alpha04 dirilis. Versi 1.0.0-alpha04 berisi commit berikut ini.

Fitur Baru

  • Menambahkan fitur pewarnaan Tombol.
  • Menambahkan anotasi GlanceComposable untuk pemeriksaan waktu kompilasi yang lebih baik.
  • Menambahkan fitur Glance khusus Wear.

Perubahan API

  • Mengupdate Glance Gallery Data API dan Condensed View. (Ibc7a8)
  • Menambahkan ButtonColors untuk mengonfigurasi tombol. (Iea88d, b/236305351)
  • Mengganti nama ColorProvider.resolve menjadi ColorProvider.getColor (Ic9dfe)
  • Menambahkan metode copy() ke TextStyle. (I9aef6)
  • Menambahkan class ColorProviders yang dapat digunakan sebagai bagian dari tema untuk Glance. (I848b9, b/237012816)
  • Menambahkan dukungan Template Daftar ke gaya daftar dan tampilan yang diciutkan. (I50cdc)
  • Menambahkan semantik ke GlanceModiier dan GlanceCurvedModifier. (Ifda7e)
  • Menambahkan anotasi GlanceComposable. (I5dbf0)
  • Memindahkan Template Glance ke project Glance utama. (I9db94)
  • Menambahkan ColorProvider.resolve() (Ife532, b/214733442)
  • Metode baru untuk mendapatkan GlanceId dari appWidgetId yang ada atau intent dari aktivitas konfigurasi (Icb70c, b/230391946)
  • Menambahkan anotasi GlanceComposable. (I2c21f)
  • Menambahkan GlanceRemoteViews untuk menjalankan komposisi di luar GlanceAppWidget. (I18f92)
  • Menghapus Warna di ProgressIndicatorDefaults. (I40299)
  • Mengganti nama metode onRun ActionCallback menjadi onAction, agar konsisten dengan API publik, seperti yang diperlukan oleh masukan ulasan API. (Icfa57)
  • Mengonversi tata letak template glance untuk menggunakan peta (I46bfd)
  • Menambahkan composable RadioButton (I4ecce)
  • Menambahkan GlanceWearTiles untuk menulis kartu Wear (Ia9f65)
  • Menambahkan clickable ke GlanceCurvedModifier (Iec2a0)
  • Menerapkan CurvedRow sebagai cakupan dan membuat DSL untuk menambahkan elemen composable dan/atau melengkung normal. Juga menambahkan curvedLine dan curvedSpacer yang diterjemahkan ke ArcLine dan ArcSpacer dalam kartu proto (Ib955b)
  • Mengubah nullability di core dan appcompat agar sesuai dengan Tiramisu DP2 (I0cbb7)
  • Menambahkan dukungan untuk RuncallbackAction di kartu glance-wear, hanya RunCallbackAction TANPA parameter yang didukung untuk saat ini (Ide64a)

Kontribusi Eksternal

  • Diupdate: compose:ui:ui-test api (updateApi) karena migrasi test-coroutines-lib (I3366d)

Versi 1.0.0-alpha03

23 Februari 2022

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

Fitur Baru

  • Definisi status disederhanakan menjadi default untuk Preferensi.

Perubahan API

  • Menyederhanakan handle status dengan menjadikan PreferencesGlanceStateDefinition sebagai handle status default. Menghapus GlanceAppWidget.updateAppWidgetState dan memperkenalkan updateAppWidgetState yang menggunakan Preferences secara default. (I58963)
  • Menambahkan class Glance TemplateText dan memperbarui desain Template (I4e146)
  • Menambahkan infrastruktur outline untuk template Freeform (If03d6)
  • Memperbarui ke tata letak SingleEntityTemplate (If925d)
  • Menambahkan LazyVerticalGrid (I5f442)
  • Menggunakan ColorProvider pada SingleEntityTemplate (I01ee0)
  • Memperbarui nama class template (I3720e)
  • Menambahkan composable LinearProgressIndicator dan CircularProgressIndicator. (Ie116b)

Perbaikan Bug

  • Penerapan template glance awal, menentukan data "single item template" dan tata letak template contoh (I35837)
  • Menyejajarkan isi kolom ke tengah secara default (I264be)
  • Perbaikan bug dengan fillMaxSize/Width/Height dalam glance-wear-tiles (I0a39f)

Versi 1.0.0-alpha02

26 Januari 2022

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

Fitur Baru

Rilis ini berisi kumpulan API untuk mem-build Kartu Wear menggunakan runtime Compose dengan composable yang dioptimalkan untuk "Glanceable"

  • Deklarasikan layanan kartu Wear Anda dengan memperluas GlanceTileService, sebuah layanan untuk membuat kartu di fungsi Content() composable.
  • Composable glance khusus kartu Wear: CurvedRow, CurvedText.
  • Tangani mode linimasa yang berbeda untuk kartu dengan menentukan TimelineMode.SingleEntry dan TimelineMode.TimeBoundEntries.
  • LocalTimeInterval, Komposisi lokal mengacu pada interval waktu tertentu.
  • BorderModifer adalah GlanceModifier yang menerapkan batas di sekeliling elemen.

Rilis ini juga menambahkan Indikator Progres ke AppWidget Glance.

Perubahan API

  • Menambahkan composable LinearProgressIndicator dan CircularProgressIndicator. (Ie116b)
  • Mengubah actionStartBroadcastReceiver menjadi actionSendBroadcast (I7d555)
  • Meneruskan Konteks ke callback onDelete GlanceAppWidget (I4c795)

Perbaikan Bug

  • Penanganan OPTIONS_APPWIDGET_SIZES yang benar jika ada tetapi kosong. (I01f82)

Versi 1.0.0-alpha01

15 Desember 2021

androidx.glance:glance:1.0.0-alpha01, androidx.glance:glance-appwidget:1.0.0-alpha01, dan androidx.glance:glance-appwidget-proto:1.0.0-alpha01 dirilis. Versi 1.0.0-alpha01 berisi commit berikut ini.

Fitur dalam rilis awal

  • Rilis pertama Glance mencakup kumpulan API pertama untuk membuat AppWidget menggunakan Compose Runtime dengan kumpulan Composable baru yang dioptimalkan untuk “Glanceable”.

Fitur