Menerapkan panel notifikasi pendahuluan

Di Android 17 dan yang lebih baru, UI Berskala untuk notifikasi heads-up (HUN) memungkinkan Anda menyesuaikan pengelolaan jendela (posisi, scrim latar belakang, animasi) panel HUN menggunakan framework UI Berskala dengan overlay resource runtime (RRO). Fitur ini memungkinkan kontrol atas penampung notifikasi tanpa memengaruhi rendering konten internal.

Penerapan

Penerapan UI Berskala untuk HUN mencakup hal berikut:

  • API publik dan sistem: Memperkenalkan class HunWindow dan <HunPanel> logika penguraian tag XML dalam pengurai UI Berskala.
  • Penerapan partner:
    • Menentukan overlay RRO kustom.
    • Untuk membuat file XML (misalnya, res/xml/hun_panel.xml), gunakan tag root <HunPanel>.
    • Menentukan elemen <Variant> untuk mengontrol batas, gravitasi (TOP atau BOTTOM), visibilitas, dan latar belakang (drawable scrim).
    • Memetakan varian ke peristiwa sistem (misalnya, _System_Show_Panel) menggunakan <Transitions>.
  • Perangkat baru versus perangkat yang diupgrade: Ini adalah perubahan konfigurasi yang dibuat oleh RRO. Untuk mengupgrade perangkat agar menerima image sistem baru, buat RRO yang sesuai untuk menentukan perilaku HUN. Hal ini memungkinkan pengguna menyimpang dari default.
  • Mengaktifkan atau menonaktifkan: Untuk mengaktifkan atau menonaktifkan fitur ini, tambahkan atau hapus @xml/hun_panel dari konfigurasi window_states.
  • Setelan default: Ubah setelan default dengan menerapkan RRO Anda sendiri yang mengganti konfigurasi default sistem.

Persyaratan dan validasi

Gunakan urutan berikut untuk menguji pengaktifan dan penonaktifan overlay:

adb shell cmd overlay disable --user current com.example.overlay.scalableUI.hun.bottom

Jika Anda mengaktifkan atau menonaktifkan RRO, HUN akan ditampilkan di bagian bawah atau atas.

Validasi manual

  • Posisi: Pastikan HUN muncul pada gravitasi (TOP atau BOTTOM) dan batas yang ditentukan.
  • Interaksi: Pastikan swipe untuk menutup berfungsi (jika tidak dapat ditutup, pastikan tombol berfungsi).
  • Animasi: Pastikan animasi transisi antara status terbuka dan tertutup.