Paramètre de comportement du verrouillage du pli

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.

Page des paramètres de comportement du verrouillage du pli

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é :

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 :

  1. LogicalDisplayMapper lit la valeur du paramètre FOLD_LOCK_BEHAVIOR à l'aide de FoldSettingProvider.
  2. 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 ou sleep_on_fold_key, LogicalDisplayMapper envoie un signal #goToSleep à PowerManager.
      • Pour selective_stay_awake_key, le signal #goToSleep inclut l'indicateur PowerManager.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.