Les OEM peuvent configurer une option sur les appareils pliables qui permet aux utilisateurs de choisir le comportement de l'écran extérieur lorsqu'ils plient l'appareil alors qu'il est déverrouillé et déplié.
Ce paramètre se trouve dans Paramètres > Écran > Continuer à utiliser les applis quand l'appareil est plié. L'utilisateur dispose des trois options suivantes :
- Toujours : lorsque l'utilisateur plie l'appareil, l'écran frontal s'allume toujours et reste déverrouillé.
- Balayer vers le haut pour continuer : lorsque l'utilisateur plie l'appareil, l'écran de verrouillage s'affiche sans authentification, sauf si une application maintient un wakelock, auquel cas l'appareil reste allumé sur l'application. Il s'agit du paramètre par défaut.
- Jamais : lorsque l'utilisateur plie l'appareil, celui-ci se verrouille et l'écran frontal s'éteint.
Figure 1 : Paramètre de comportement du verrouillage du pli.
Configurer le paramètre de comportement du verrouillage du pli
Pour afficher le paramètre de comportement de verrouillage du pli dans Paramètres, renseignez le booléen config_fold_lock_behavior
dans le fichier config.xml
de superposition de votre appareil :
<!-- Whether to show Fold lock behavior setting feature in Settings app -->
<bool name="config_fold_lock_behavior">true</bool>
Détails de l'implémentation
Le comportement du verrouillage du pli est contrôlé par un paramètre et plusieurs classes de backend.
Paramètres et UI
La valeur du paramètre FOLD_LOCK_BEHAVIOR
est conservée sous forme de chaîne, ce qui correspond à la sélection de l'utilisateur dans Paramètres > Écran > Continuer à utiliser les applis quand l'appareil est plié :
- Toujours :
stay_awake_on_fold_key
- Balayer vers le haut pour continuer :
selective_stay_awake_key
- Jamais :
sleep_on_fold_key
Le paramètre est gonflé à partir de display_settings.xml
. L'UI de la page des paramètres est implémentée dans le fragment FoldLockBehaviorSettings
, et la préférence est gérée par FoldLockBehaviorPreferenceController
.
Fonctionnement du programme
Lorsque l'appareil est plié, LogicalDisplayMapper
et PowerManager
contrôlent le comportement de l'appareil comme suit :
LogicalDisplayMapper
lit la valeur du paramètreFOLD_LOCK_BEHAVIOR
à l'aide deFoldSettingProvider
.- En fonction de la valeur du paramètre :
- Si la valeur est
stay_awake_on_fold_key
, l'appareil reste en veille. - Si la valeur est
selective_stay_awake_key
ousleep_on_fold_key
,LogicalDisplayMapper
envoie un signal#goToSleep
àPowerManager
.- Pour
selective_stay_awake_key
, le signal#goToSleep
inclut l'indicateurPowerManager.GO_TO_SLEEP_FLAG_SOFT_SLEEP
. Cela entraîne l'affichage du keyguard sur l'appareil sans authentification requise. - Pour
sleep_on_fold_key
, le signal#goToSleep
est envoyé sans cet indicateur, ce qui entraîne le verrouillage de l'appareil.
- Pour
- Si la valeur est