Window Manager

Window Manager membantu developer aplikasi mendukung faktor bentuk perangkat baru dan menyediakan tampilan API umum untuk berbagai fitur Window Manager di versi platform lama dan baru. Rilis awal ditujukan bagi perangkat foldable dan versi mendatang akan diperluas ke lebih banyak jenis layar dan fitur jendela.
Update Terbaru Rilis Stabil Saat Ini Kandidat Rilis Berikutnya Rilis Beta Rilis Alfa
2 Juni 2021 - - - 1.0.0-alpha07

Mendeklarasikan dependensi

Untuk menambahkan dependensi pada Window Manager, 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.window:window:1.0.0-alpha07"
}

Kotlin

dependencies {
    implementation("androidx.window:window:1.0.0-alpha07")
}

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.

Versi 1.0.0

Versi 1.0.0-alpha07

2 Juni 2021

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

Fitur Baru

  • Memigrasikan library jendela inti ke Kotlin. Akan menggunakan coroutine dan fungsi penangguhan untuk menampilkan data asinkron ke depannya.
  • Menambahkan WindowInfoRepo sebagai titik interaksi utama untuk mendapatkan WindowMetrics dan aliran data WindowLayoutInfo.
  • Artefak window-java baru untuk menampilkan API yang cocok untuk Java guna mendaftarkan dan membatalkan pendaftaran callback.
  • Artefak window-rxjava2 dan window-rxjava3 baru untuk menampilkan API yang disesuaikan dengan RxJava.

Perubahan API

  • Menambahkan WindowServices untuk memberikan dependensi secara seragam.
    • Menambahkan API berbasis coroutine untuk menggunakan info tata letak jendela. (Iab70f)
  • Memigrasikan library pengelola jendela inti ke Kotlin. (Icca34)

Perbaikan Bug

  • Menambahkan class data baru untuk mewakili batasan fitur. (I6dcd1)

Versi 1.0.0-alpha06

5 Mei 2021

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

Fitur Baru

  • Kami telah memulai migrasi ke Kotlin dan akan selesai pada rilis berikutnya.
  • DeviceState telah dihapus dari API publik. Gunakan FoldingFeature sebagai gantinya.
  • Kami telah menghapus STATE_FLIPPED dari status FoldingFeature karena saat ini tidak didukung oleh kasus penggunaan apa pun.
  • Kami juga telah menghapus API lain yang sudah tidak digunakan lagi.

Perubahan API

  • Menambahkan Kotlin sebagai dependensi.
    • Memigrasikan library inti ke Kotlin. (Idd995)
  • Menghapus builder DisplayFeature. (I61fa4)
  • Menghapus DeviceState dari API publik. Gunakan FoldingFeature sebagai gantinya. (Id6079)
  • Menghapus callback status perangkat dari ekstensi. (I5ea83)
  • Menghapus STATE_FLIPPED dari FoldingFeature. (I9c4e1)
  • Menghapus metode pendaftaran yang tidak digunakan lagi. (Ib381b)

Versi 1.0.0-alpha05

24 Maret 2021

androidx.window:window:1.0.0-alpha05 dirilis. Versi 1.0.0-alpha05 berisi commit berikut.

Fitur Baru

Kami telah menambahkan metode praktis ke FoldingFeature agar aplikasi dapat mengetahui apakah fitur tersebut memisahkan, menutupi, dan menentukan orientasi engsel. Kami juga menyembunyikan jenis engsel sehingga

Kami menghapus metode pembacaan sinkron dari WindowManager. Metode pembacaan sinkron rentan terhadap error karena ada kondisi race implisit. Daftarkan pemroses dan callback untuk menerima update pada WindowLayoutInfo.

Perubahan API

  • Menambahkan metode praktis agar berfungsi dengan FoldingFeatures (Ie733f)
  • Menghapus metode pembacaan sinkron dari WindowManager (I96fd4)

Version 1.0.0-alpha04

10 Maret 2021

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

Fitur Baru

  • Memperbaiki bug saat tidak ada WindowLayoutInfo yang dimunculkan jika tidak ada implementasi OEM. Kini kami memunculkan WIndowLayoutInfo kosong.
  • Memperbaiki bug yang statusnya tidak akan diperbarui dengan benar jika status engsel berubah saat aplikasi di latar belakang. Status kini harus konsisten.
  • Memperbarui file proguard untuk mengabaikan peringatan dari dependensi runtime.

Perbaikan Bug

  • Memberikan nilai kosong saat library OEM tidak ada. (Ide935)

Versi 1.0.0-alpha03

18 Februari 2021

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

Fitur Baru

  • Memberikan nilai kosong untuk WindowLayoutInfo saat implementasi OEM kosong. Ini akan memudahkan penggunaan library di lebih banyak perangkat. Karena API bersifat asinkron, aplikasi tetap disarankan untuk menulis beberapa kode defensif dan memberikan nilai default setelah waktu tunggu. Kami tidak memiliki jaminan apa pun terkait implementasi OEM dan nilai awal mungkin tertunda.

Perbaikan Bug

  • Memberikan nilai kosong saat library OEM tidak ada. (Ide935)

Versi 1.0.0-alpha02

27 Januari 2021

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

Fitur Baru

  • Kami tidak lagi menggunakan beberapa API untuk membantu menyederhanakan API dan mengurangi kesalahan. Beberapa contoh utama adalah menghapus operasi pembacaan sinkron dari WindowsManager dan tidak menggunakan DeviceState. Operasi pembacaan sinkron dapat menyebabkan kondisi race dan memiliki UI yang salah.

  • Kami telah mengonversi DisplayFeature ke antarmuka yang akan diterapkan fitur lainnya di masa mendatang. Fitur pertama kami adalah FoldingFeature yang kini merupakan representasi lipatan layar atau engsel. Fitur ini juga berisi status engsel yang menggantikan DeviceState.

  • WindowMetrics diperkenalkan di Android 11 untuk memberikan cara mudah kepada developer dalam mengkueri metrik tentang jendela, misalnya posisi dan ukurannya di layar dan inset sistem. Kami telah melakukan backporting API dalam rilis ini agar developer dapat memanfaatkan WindowMetrics dan terus mendukung versi Android yang lebih lama. WindowMetrics dapat diperoleh melalui WindowManager#getCurrentWindowMetrics() dan API WindowManager#getMaximumWindowMetrics().

Perubahan API

  • Tidak lagi menggunakan API yang akan dihapus di alfa berikutnya (Ib7cc4)
  • Mengupdate ExtensionInterface untuk menerima referensi Aktivitas eksplisit. (I07ded)
  • Memperkenalkan WindowMetrics API. (I3ccee)
  • Menghapus metode pembacaan sinkron dari WindowManager (I69983)
  • Membuat paket ExtensionWindowBackend terlindungi. (Ied208)

Perbaikan Bug

  • Mengupdate API ExtensionInterface untuk menerima konteks visual. (I8e827)

Kontribusi Eksternal

  • Menggabungkan DeviceState and WindowLayoutInfo agar lebih mudah mengakses data. (Id34f4)

Versi 1.0.0-alpha01

27 Februari 2020

androidx.window:window:1.0.0-alpha01 dan androidx.window:window-extensions:1.0.0-alpha01 dirilis. Versi 1.0.0-alpha01 berisi commit berikut ini. Ini adalah rilis pertama library Window Manager.

Fitur baru

  • DisplayFeature: API baru ini akan mengidentifikasi gangguan di permukaan layar datar dengan tampilan yang diperluas, misalnya engsel atau lipatan
  • DeviceState: API baru ini akan memberitahukan posisi ponsel saat ini dari daftar posisi yang telah ditentukan (Misalnya, CLOSED, OPENED, HALF_OPENED, dll.)