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:
LogicalDisplayMapper
membaca nilai setelanFOLD_LOCK_BEHAVIOR
menggunakanFoldSettingProvider
.- Berdasarkan nilai setelan:
- Jika nilainya
stay_awake_on_fold_key
, perangkat akan tetap aktif. - Jika nilainya adalah
selective_stay_awake_key
atausleep_on_fold_key
,LogicalDisplayMapper
akan mengirimkan sinyal#goToSleep
kePowerManager
.- Untuk
selective_stay_awake_key
, sinyal#goToSleep
mencakup flagPowerManager.GO_TO_SLEEP_FLAG_SOFT_SLEEP
. Hal ini menyebabkan perangkat menampilkan pelindung tombol tanpa memerlukan autentikasi. - Untuk
sleep_on_fold_key
, sinyal#goToSleep
dikirim tanpa tanda ini, sehingga menyebabkan perangkat terkunci.
- Untuk
- Jika nilainya