OEM dapat mengonfigurasi opsi di perangkat foldable yang memungkinkan pengguna memilih cara layar luar berperilaku saat mereka melipat perangkat dari kondisi tidak terkunci dan dibentangkan.
Setelan ini berada di Setelan > Layar > Lanjutkan penggunaan aplikasi saat dilipat. Pengguna memiliki tiga opsi berikut:
- Selalu: Saat pengguna melipat perangkat, layar depan akan selalu aktif dan tetap tidak terkunci.
- Geser ke atas untuk melanjutkan: Saat pengguna melipat perangkat, perangkat akan menampilkan pelindung tombol tanpa memerlukan autentikasi, kecuali jika aplikasi menahan wakelock, dalam hal ini perangkat akan tetap aktif di aplikasi. Ini adalah setelan default.
- Jangan pernah: Saat pengguna melipat perangkat, perangkat akan terkunci dan layar depan akan dinonaktifkan.
Gambar 1. Setelan perilaku kunci lipatan.
Mengonfigurasi setelan perilaku kunci lipatan
Untuk menampilkan setelan perilaku kunci lipatan di Setelan, isi boolean
config_fold_lock_behavior di file config.xml overlay perangkat Anda:
<!-- Whether to show Fold lock behavior setting feature in Settings app -->
<bool name="config_fold_lock_behavior">true</bool>
Detail implementasi
Perilaku kunci lipatan dikontrol oleh setelan dan beberapa class backend.
Setelan dan UI
Nilai setelan FOLD_LOCK_BEHAVIOR dipertahankan sebagai string,
yang sesuai dengan pilihan pengguna di Setelan > Layar > Lanjutkan
penggunaan aplikasi saat dilipat:
- Selalu:
stay_awake_on_fold_key - Geser ke atas untuk melanjutkan:
selective_stay_awake_key - Tidak pernah:
sleep_on_fold_key
Setelan ini diperbesar dari display_settings.xml. UI halaman setelan
diimplementasikan dalam fragmen FoldLockBehaviorSettings, dan
preferensi dikelola oleh FoldLockBehaviorPreferenceController.
Logika backend
Saat perangkat dilipat, LogicalDisplayMapper dan
PowerManager mengontrol perilaku perangkat sebagai berikut:
LogicalDisplayMappermembaca nilai setelanFOLD_LOCK_BEHAVIORmenggunakanFoldSettingProvider.- Berdasarkan nilai setelan:
- Jika nilainya
stay_awake_on_fold_key, perangkat akan tetap aktif. - Jika nilainya adalah
selective_stay_awake_keyatausleep_on_fold_key,LogicalDisplayMapperakan mengirimkan sinyal#goToSleepkePowerManager.- Untuk
selective_stay_awake_key, sinyal#goToSleepmencakup flagPowerManager.GO_TO_SLEEP_FLAG_SOFT_SLEEP. Hal ini menyebabkan perangkat menampilkan pelindung tombol tanpa memerlukan autentikasi. - Untuk
sleep_on_fold_key, sinyal#goToSleepdikirim tanpa tanda ini, sehingga menyebabkan perangkat terkunci.
- Untuk
- Jika nilainya