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:
LogicalDisplayMapperlee el valor de configuración deFOLD_LOCK_BEHAVIORconFoldSettingProvider.- 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_keyosleep_on_fold_key,LogicalDisplayMapperenvía un indicador#goToSleepaPowerManager.- Para
selective_stay_awake_key, el indicador#goToSleepincluye 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#goToSleepse envía sin este indicador, lo que provoca que el dispositivo se bloquee.
- Para
- Si el valor es