Mengonfigurasi peristiwa

Peristiwa memicu perubahan status dan memulai tindakan. Peristiwa bertindak sebagai sinyal, yang dikirim dari UI Sistem atau dari luar proses menggunakan intent. Peristiwa memberi tahu UI yang Dapat Diskalakan tentang kejadian yang memerlukan respons.

Peristiwa UI yang Dapat Diskalakan adalah sinyal sistem, yang dipicu oleh perubahan hardware atau software, yang dapat mengubah status panel. Peristiwa ini memberi tahu framework tentang kejadian yang memerlukan respons UI. Untuk kontrol yang lebih akurat terhadap status panel, Anda juga dapat menentukan peristiwa kustom, selain peristiwa sistem bawaan.

Struktur acara

ID unik wajib diisi (ID) mengidentifikasi suatu acara. ID ini mengategorikan jenis kejadian, seperti _System_AppOpenEvent atau _System_PanelEmptyEvent.

Selain ID ini, peristiwa dapat secara opsional membawa token, key-value pair untuk memberikan konteks dan detail tentang peristiwa tersebut. Token ini memungkinkan pemfilteran peristiwa yang lebih terperinci, sehingga transisi atau tindakan dapat dipicu hanya dalam kondisi tertentu.

Token diteruskan ke peristiwa sebagai daftar pasangan nilai kunci yang dipisahkan oleh titik koma (;). Berikut adalah daftar kunci yang didukung sistem:

Kunci Deskripsi
panelId Mengidentifikasi panel UI tertentu yang terkait dengan peristiwa.
component Menentukan nama komponen, seperti aktivitas yang ditautkan ke acara.
package Menunjukkan nama paket yang terkait dengan peristiwa.
panelToVariantId Menentukan varian target panel dalam konteks tertentu. Gunakan atribut ini untuk mengalirkan animasi dengan memantau transisi panel. Misalnya, memicu transisi panel B ke status tertutup saat panel A ditransisikan ke status terbuka.

Contoh:

"component=com.android.app;panelId=panel1"

Logika pencocokan peristiwa

Saat dikirim, peristiwa harus dicocokkan dengan kriteria yang ditentukan untuk memicu transisi atau tindakan. Proses pencocokan terjadi dalam dua tahap:

  • Pencocokan id peristiwa yang ketat: id peristiwa yang dikirim harus cocok persis dengan id yang ditentukan dalam filter peristiwa transisi atau tindakan. Jika ID tidak cocok, peristiwa dianggap tidak cocok.

  • Pencocokan token peristiwa parsial: Jika ID peristiwa cocok, sistem akan menggunakan pencocokan parsial untuk mengevaluasi token peristiwa terhadap token yang ditentukan dalam filter.

    Agar kecocokan terjadi, semua properti peristiwa (token) yang ditentukan dalam definisi peristiwa transisi harus cocok dengan properti yang sesuai dalam peristiwa yang dikirim.

    Namun, peristiwa yang dikirim dapat berisi token tambahan yang tidak secara eksplisit ditentukan dalam filter. Token tambahan tidak mencegah kecocokan. Sebagai gantinya, atribut tersebut diabaikan dalam evaluasi pencocokan.

    Sebaliknya, jika filter menentukan token yang tidak ada dalam peristiwa yang dikirim atau, jika nilai token yang cocok tidak sesuai, maka tidak dianggap sebagai kecocokan.

Misalnya, pertimbangkan transisi yang ditentukan untuk dipicu saat id="app_open" terjadi pada panelId="panel1" dengan component="com.android.myapp.Activity".

Jika peristiwa yang dikirim memiliki id="app_open", panelId="panel1", dan component="com.android.myapp.Activity", kecocokan akan dibuat. Semua kriteria filter terpenuhi dan nilai yang lebih spesifik untuk Activity value in the dispatched event is considered a match forcom.android.myapp`.

Namun, kecocokan akan gagal jika peristiwa yang dikirim saat id="app_open", panelId="panel1", dan component="com.android.yourapp.Activity". Meskipun id dan panelId cocok, component tidak sama dengan component dalam transisi — com.android.myapp — tidak cocok dengan com.android.yourapp dalam peristiwa yang dikirim.

Pemicu transisi

Meskipun transisi mungkin cocok, ini tidak berarti transisi dipicu. Hanya satu transisi yang dapat dipicu untuk setiap peristiwa. UI yang dapat diskalakan bertujuan untuk memicu hanya kecocokan terdekat.

Misalnya, saat dua transisi — satu dengan nama komponen dan satu tanpa nama komponen -m — cocok, hanya transisi dengan nama komponen yang dipicu.

Pengiriman dan penanganan peristiwa

Peristiwa adalah pusat dari perilaku dinamis UI yang Dapat Diskalakan. Peristiwa dapat dikirim dari UI Sistem atau dari proses eksternal dengan intent.

Peristiwa sistem

Framework ini menentukan beberapa peristiwa sistem yang memfasilitasi tindakan ini:

Atribut Deskripsi
_System_OnHomeEvent

(SYSTEM_HOME_EVENT_ID)
Menandakan bahwa sistem menerima permintaan untuk menampilkan layar Beranda. Di AAOS, Beranda dapat berupa konfigurasi jendela yang fleksibel, seperti kombinasi widget, atau bahkan peta. Peristiwa ini sangat penting untuk transisi atau tindakan yang bergantung pada pengguna yang melihat antarmuka layar utama utama.
_System_TaskOpenEvent

(SYSTEM_TASK_OPEN_EVENT_ID)

Dikirim saat tugas atau aplikasi dibuka. Peristiwa umum ini dapat memicu tindakan atau transisi berdasarkan peluncuran aplikasi.

Acara ini berisi token seperti panelId dan component.

_System_TaskCloseEvent

(SYSTEM_TASK_CLOSE_EVENT_ID)
Menandakan bahwa tugas atau aplikasi telah ditutup dan berfungsi sebagai bagian yang berlawanan dengan _System_TaskOpenEvent. Hal ini memungkinkan sistem bereaksi terhadap aplikasi yang ditutup. Hal ini dapat memicu transisi untuk mengembalikan panel ke status default atau untuk memulai tindakan pembersihan lainnya.
_System_TaskPanelEmptyEvent

(SYSTEM_TASK_PANEL_EMPTY_EVENT_ID)

Dikirim saat panel tertentu menjadi kosong dan menyertakan panelId sebagai token sehingga pemicu difilter sesuai dengan panel mana yang kosong.

Peristiwa ini penting untuk pemulihan error yang andal dan untuk meluncurkan ulang aplikasi saat konten terkait mengalami error atau berhenti secara tidak terduga untuk mencegah tampilan panel UI kosong.

Misalnya, jika aplikasi ControlBar mengalami error, Anda dapat mengonfigurasi dan mengambil tindakan untuk mendeteksi peristiwa ini di panelnya dan meluncurkan kembali ControlBar secara otomatis

.
_System_EnterSuwEvent

(SYSTEM_ENTER_SUW_EVENT_ID)
Menunjukkan sistem memasuki Wizard Penyiapan (SUW). Peristiwa ini menandakan kesiapan sistem dan dapat dikonfigurasi untuk meluncurkan aplikasi atau menampilkan panel yang ditentukan setelah sistem diinisialisasi. Memasuki status sistem kritis seperti itu memerlukan peristiwa khusus untuk memicu penyesuaian atau tindakan UI yang sesuai.
_System_ExitSuwEvent

(SYSTEM_EXIT_SUW_EVENT_ID)
Menunjukkan sistem keluar dari Wizard Penyiapan (SUW). Serupa dengan _System_EnterSuwEvent, peristiwa ini memungkinkan sistem merespons penyelesaian proses penyiapan dengan meluncurkan aplikasi default atau beralih ke UI standar.
_System_OnAnimationEndEvent

(SYSTEM_ON_ANIMATION_END_EVENT_ID)
Dipicu saat animasi selesai di UI. Anda dapat menggunakan peristiwa ini untuk memicu tindakan atau perubahan status berikutnya yang bergantung pada penyelesaian transisi visual.

Peristiwa ini berisi token untuk variantId guna menunjukkan varian mana yang akhirnya dipilih panel di akhir animasi.