Widget dan notifikasi percakapan

Android 11 menambahkan dukungan untuk menyesuaikan perilaku dan penempatan Notifikasi Percakapan di menu Notifikasi berdasarkan prioritas dan tingkat pemberitahuan, sehingga Percakapan dapat ditandai sebagai Penting dan balon khusus percakapan dapat diluncurkan di ruang Percakapan.

Berdasarkan fitur Android 11 ini, Android 12 menawarkan dua fitur Percakapan baru:

  • Fitur Percakapan Terbaru di Setelan memungkinkan pengguna menyesuaikan perilaku notifikasi untuk percakapan terbaru tanpa menunggu notifikasi.

  • Fitur Widget Percakapan memungkinkan pengguna membuka chat dengan mudah di layar utama, sehingga memberikan tampilan cepat percakapan terbaru.

Dokumen ini menjelaskan aspek penerapan, penyesuaian, dan validasi notifikasi dan widget percakapan.

Ringkasan Notifikasi Percakapan

Android 11 memperkenalkan primitif sistem baru, Percakapan, yang diwakili oleh objek pintasan berbagi yang ada (yang diluncurkan dengan Android 9).

Primitive Percakapan dapat digunakan sebagai berikut:

  • Untuk berbagi data Percakapan antar-aplikasi di seluruh sistem melalui Sharesheet (sudah ada di Android 10).

  • Untuk mendorong balon(pintasan di Android 11). Lihat Gambar 1.

  • Untuk berpartisipasi dalam ruang Percakapan baru di atas panel samping Notifikasi (diterapkan di Android 11). Lihat Gambar 2.

  • Untuk membuat Widget Percakapan (diimplementasikan di Android 12).

    conv_bubbles

    Gambar 1: Notifikasi diluncurkan sebagai balon dari panel samping notifikasi

    notifikasi_konv.

    Gambar 2: Ruang percakapan yang terletak di bagian atas menu Notifikasi

Selain menautkan ke pintasan yang mewakili percakapan, notifikasi juga menggunakan MessagingStyle untuk menyertakan pesan terakhir percakapan di ruang Percakapan.

Partner GMS wajib menerapkan hal berikut:

  • Ruang Percakapan baru sebagai bagian terpisah di atas panel Notifikasi.
  • Gaya notifikasi yang memungkinkan dan mendukung pola balon khusus Percakapan.

Partner yang menerapkan Percakapan juga harus menerapkan Percakapan penting. Namun, penerapan Percakapan dapat diselaraskan dengan konsep OEM yang serupa. Secara keseluruhan, partner memiliki kebebasan untuk menyelaraskan bagian percakapan dengan UI Sistem tertentu mereka. Partner tidak perlu mengubah atau menerapkan kode/ekstensi HAL/driver/kernel.

Lihat implementasi referensi berikut di bagian SystemUI & PeopleService di AOSP:

frameworks/base/packages/SystemUI/src/com/android/systemui/people/
frameworks/base/core/java/android/app/people/
frameworks/base/services/people/java/com/android/server/people/

Validasi

Untuk memastikan versi fitur Anda berfungsi sebagaimana mestinya, verifikasi hal berikut:

  1. Aplikasi yang sepenuhnya mendukung Conversation API akan melihat notifikasinya di bagian baru, dan dapat menyesuaikan notifikasi tersebut berdasarkan percakapan, bukan berdasarkan NotificationChannel umum.

  2. Balon khusus percakapan berfungsi.

Untuk memvalidasi penerapan, gunakan pengujian berikut dalam paket notifikasi:

  • Pengujian CTS.

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • Pengujian CTS Verifier.

    cts/apps/CtsVerifier/src/com/android/cts/verifier/notifications/
    
    

Ringkasan Widget Percakapan

Di Android 12, fitur Widget Percakapan dibangun pada representasi Percakapan yang dibuat di Android 11 (seperti yang dijelaskan bagian sebelumnya) dengan memungkinkan aplikasi memberikan status untuk percakapan tersebut yang ditampilkan di Widget Percakapan.

conv_widgets

Gambar 3: Percakapan yang ditampilkan di Widget Percakapan

Fitur Widget Percakapan di Android 12 mendukung koneksi dengan memungkinkan pengguna membuka chat dengan mudah di layar utama. Widget ini adalah pintasan yang ditingkatkan dan memungkinkan pengguna kembali ke percakapan secara efisien selagi menampilkan cuplikan status percakapan.

Partner harus menerapkan hal berikut:

  1. Widget yang disediakan oleh SystemUI.
  2. Alur untuk menambahkan widget ini dari layar pemilihan widget.
  3. Dukungan untuk pengubahan ukuran widget sebagai berikut:

Perhatikan dependensi berikut saat menerapkan Widget Percakapan:

  • Partner tidak perlu memodifikasi atau menerapkan kode HAL/driver/kernel.
  • Status API, yang memungkinkan aplikasi menambahkan informasi status atau ketersediaan ke percakapan dan widget terkait, digunakan untuk penerapan.
  • Prosesnya sama pada implementasi perangkat baru dan implementasi upgrade.
  • Fitur Widget Percakapan memiliki dependensi pada fitur baru yang diluncurkan di Android 12, yang menyimpan percakapan yang baru-baru ini dilihat (misalnya, dari notifikasi). Fitur terakhir ini memungkinkan untuk memperluas daftar percakapan yang berpotensi ditambahkan pengguna ke layar utama mereka.

Lihat implementasi referensi berikut di file SystemUI dan Launcher3:

frameworks/base/packages/SystemUI/src/com/android/systemui/people/
frameworks/base/core/java/android/app/people/
frameworks/base/services/people/java/com/android/server/people/

Penyesuaian

Fitur Widget Percakapan tidak dapat diaktifkan atau dinonaktifkan. Namun, partner dapat mengubah tata letak template widget, selama persyaratan GMS memenuhi syarat.

Validasi

Untuk memastikan versi fitur Anda berfungsi sebagaimana mestinya, verifikasi hal berikut:

  1. Dengan menekan lama Peluncur, Widget Percakapan baru untuk Percakapan dapat ditambahkan melalui pemilih widget. Lihat gambar 4 untuk UI pemilih Widget:

    widget_picker

    Gambar 4: UI alat pilih widget untuk menambahkan Widget Percakapan baru

  2. Saat mengirim notifikasi ke perangkat dari Percakapan yang dipilih, widget akan diperbarui untuk mencerminkan notifikasi tersebut.

  3. Saat menerapkan status ke Percakapan tersebut menggunakan ConversationStatus API, widget akan mencerminkan status tersebut.

  4. Pengguna dapat mengubah ukuran widget dan widget dapat mengubah ukurannya berdasarkan Peluncur saat ini. Tata letak widget Anda harus berfungsi dengan baik dengan berbagai ukuran Peluncur di perangkat yang berbeda dan saat mengubah ukuran widget.

Untuk memvalidasi penerapan, gunakan pengujian berikut dalam paket notifikasi:

  • Pengujian CTS (PeopleManagerTest) untuk platform API.

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • Pengujian manual untuk persyaratan GMS - Percakapan.