Impostazione del comportamento di blocco della piega

Gli OEM possono configurare un'opzione sui dispositivi pieghevoli che consente agli utenti di scegliere il comportamento dello schermo esterno quando chiudono il dispositivo da uno stato sbloccato e aperto.

L'impostazione si trova in Impostazioni > Display > Continua a usare le app quando chiuso. L'utente ha le seguenti tre opzioni:

  • Sempre: quando l'utente chiude il dispositivo, il display frontale si accende sempre e rimane sbloccato.
  • Scorri verso l'alto per continuare: quando l'utente chiude il dispositivo, quest'ultimo mostra la schermata di blocco senza richiedere l'autenticazione, a meno che un'app non stia mantenendo attivo il dispositivo, nel qual caso il dispositivo rimane attivo sull'app. Questa è l'impostazione predefinita.
  • Mai: quando l'utente chiude il dispositivo, quest'ultimo si blocca e il display frontale si spegne.

Pagina delle impostazioni del comportamento di chiusura

Figura 1. Impostazione del comportamento di blocco quando chiuso.

Configurare l'impostazione del comportamento di blocco quando chiuso

Per visualizzare l'impostazione del comportamento di blocco quando chiuso in Impostazioni, inserisci il valore booleano config_fold_lock_behavior nel file config.xml di overlay del dispositivo:

  <!-- Whether to show Fold lock behavior setting feature in Settings app -->
  <bool name="config_fold_lock_behavior">true</bool>

Dettagli di implementazione

Il comportamento di blocco quando chiuso è controllato da un'impostazione e da diverse classi di backend.

Impostazione e UI

Il valore dell'impostazione FOLD_LOCK_BEHAVIOR viene mantenuto come stringa, che corrisponde alla selezione dell'utente in Impostazioni > Display > Continua a usare le app quando chiuso:

L'impostazione viene espansa da display_settings.xml. L'UI della pagina delle impostazioni è implementata nel frammento FoldLockBehaviorSettings e la preferenza è gestita da FoldLockBehaviorPreferenceController.

Logica back-end

Quando il dispositivo è chiuso, LogicalDisplayMapper e PowerManager controllano il comportamento del dispositivo come segue:

  1. LogicalDisplayMapper legge il valore dell'impostazione FOLD_LOCK_BEHAVIOR utilizzando FoldSettingProvider.
  2. In base al valore dell'impostazione:
    • Se il valore è stay_awake_on_fold_key, il dispositivo rimane attivo.
    • Se il valore è selective_stay_awake_key o sleep_on_fold_key, LogicalDisplayMapper invia un segnale #goToSleep a PowerManager.
      • Per selective_stay_awake_key, il segnale #goToSleep include il flag PowerManager.GO_TO_SLEEP_FLAG_SOFT_SLEEP. In questo modo, il dispositivo mostra la schermata di blocco senza richiedere l'autenticazione.
      • Per sleep_on_fold_key, il segnale #goToSleep viene inviato senza questo flag, causando il blocco del dispositivo.