Los OEM pueden configurar una opción en los dispositivos plegables que permite a los usuarios elegir cómo se comporta la pantalla externa cuando pliegan el dispositivo desde un estado desbloqueado y desplegado.
El parámetro de configuración se encuentra en Configuración > Pantalla > Continuar usando apps con el dispositivo plegado. El usuario tiene las siguientes tres opciones:
- Siempre: Cuando el usuario pliega el dispositivo, la pantalla frontal siempre se enciende y permanece desbloqueada.
- Desliza el dedo hacia arriba para continuar: Cuando el usuario pliega el dispositivo, este muestra el bloqueo de pantalla sin requerir autenticación, a menos que una app mantenga un bloqueo de activación, en cuyo caso el dispositivo permanece activo en la app. Este es el parámetro de configuración predeterminado.
- Nunca: Cuando el usuario pliega el dispositivo, este se bloquea y la pantalla frontal se apaga.
Figura 1: Es el parámetro de configuración del comportamiento de bloqueo de plegado.
Cómo configurar el parámetro de configuración de comportamiento de bloqueo de plegado
Para mostrar el parámetro de configuración de comportamiento de bloqueo de pliegue en Configuración, completa el valor booleano config_fold_lock_behavior
en el archivo de superposición config.xml
de tu dispositivo:
<!-- Whether to show Fold lock behavior setting feature in Settings app -->
<bool name="config_fold_lock_behavior">true</bool>
Detalles de implementación
El comportamiento de bloqueo de plegado se controla con un parámetro de configuración y varias clases de backend.
Configuración y IU
El valor del parámetro de configuración FOLD_LOCK_BEHAVIOR
se conserva como una cadena, que corresponde a la selección del usuario en Configuración > Pantalla > Continuar usando apps con el dispositivo plegado:
- Siempre:
stay_awake_on_fold_key
- Desliza el dedo hacia arriba para continuar:
selective_stay_awake_key
- Nunca:
sleep_on_fold_key
El parámetro de configuración se infla desde display_settings.xml
. La IU de la página de configuración se implementa en el fragmento FoldLockBehaviorSettings
, y la preferencia se administra con FoldLockBehaviorPreferenceController
.
Lógica de backend
Cuando el dispositivo está plegado, LogicalDisplayMapper
y PowerManager
controlan el comportamiento del dispositivo de la siguiente manera:
LogicalDisplayMapper
lee el valor de configuración deFOLD_LOCK_BEHAVIOR
conFoldSettingProvider
.- Según el valor del parámetro de configuración:
- Si el valor es
stay_awake_on_fold_key
, el dispositivo permanece activo. - Si el valor es
selective_stay_awake_key
osleep_on_fold_key
,LogicalDisplayMapper
envía un indicador#goToSleep
aPowerManager
.- Para
selective_stay_awake_key
, el indicador#goToSleep
incluye la marcaPowerManager.GO_TO_SLEEP_FLAG_SOFT_SLEEP
. Esto hace que el dispositivo muestre el bloqueo de teclas sin requerir autenticación. - En el caso de
sleep_on_fold_key
, el indicador#goToSleep
se envía sin este indicador, lo que provoca que el dispositivo se bloquee.
- Para
- Si el valor es