OEM dapat mengonfigurasi opsi di perangkat foldable yang memungkinkan pengguna memilih perilaku layar luar saat mereka melipat perangkat dari status tidak terkunci dan tidak dilipat.
Setelan ini terletak di Setelan > Layar > Lanjutkan penggunaan aplikasi saat dilipat. Pengguna memiliki tiga opsi berikut:
- Selalu: Saat pengguna melipat perangkat, layar depan selalu menyala dan tetap tidak terkunci.
- Geser ke atas untuk melanjutkan: Saat pengguna melipat perangkat, perangkat akan menampilkan keyguard tanpa memerlukan autentikasi, kecuali jika aplikasi menahan wakelock, yang dalam hal ini perangkat akan tetap aktif di aplikasi. Ini adalah setelan default.
- Tidak pernah: Saat pengguna melipat perangkat, perangkat akan terkunci dan layar depan akan mati.
Gambar 1. Setelan perilaku kunci lipat.
Mengonfigurasi setelan perilaku kunci lipat
Untuk menampilkan setelan perilaku kunci lipat di Setelan, isi boolean
config_fold_lock_behavior di file overlay config.xml
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 lipat 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 di-inflate 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 adalah
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#goToSleepmenyertakan flagPowerManager.GO_TO_SLEEP_FLAG_SOFT_SLEEP. Hal ini menyebabkan perangkat menampilkan keyguard tanpa memerlukan autentikasi. - Untuk
sleep_on_fold_key, sinyal#goToSleepdikirim tanpa flag ini, sehingga menyebabkan perangkat terkunci.
- Untuk
- Jika nilainya adalah