폴드 잠금 동작 설정

OEM은 사용자가 잠금 해제되고 펼쳐진 상태에서 기기를 접을 때 외부 화면이 작동하는 방식을 선택할 수 있는 옵션을 폴더블 기기에서 구성할 수 있습니다.

이 설정은 설정 > 디스플레이 > 접은 상태에서 앱 계속 사용 에 있습니다. 사용자는 다음 세 가지 옵션을 사용할 수 있습니다.

  • 항상: 사용자가 기기를 접으면 전면 디스플레이가 항상 켜지고 잠금 해제된 상태로 유지됩니다.
  • 위로 스와이프하여 계속하기: 사용자가 기기를 접으면 앱이 웨이크 잠금을 보유하지 않는 한 기기에서 인증을 요구하지 않고 키가드를 표시합니다. 앱이 웨이크 잠금을 보유하는 경우 기기가 앱에서 절전 모드를 유지합니다. 이는 기본 설정입니다.
  • 사용 안함: 사용자가 기기를 접으면 기기가 잠기고 전면 디스플레이가 꺼집니다.

폴드 잠금 동작 설정 페이지

그림 1. 접기 잠금 동작 설정

접기 잠금 동작 설정 구성

설정에 접기 잠금 동작 설정을 표시하려면 기기의 오버레이 config.xml 파일에서 config_fold_lock_behavior 불리언을 채우세요.

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

구현 세부정보

접기 잠금 동작은 설정과 여러 백엔드 클래스에 의해 제어됩니다.

설정 및 UI

FOLD_LOCK_BEHAVIOR 설정의 값은 사용자가 설정 > 디스플레이 > 접은 상태에서 앱 계속 사용에서 선택한 항목에 해당하는 문자열로 유지됩니다.

이 설정은 display_settings.xml에서 확장됩니다. 설정 페이지 UI 는 FoldLockBehaviorSettings 프래그먼트에서 구현되며 환경설정은 FoldLockBehaviorPreferenceController에서 관리합니다.

백엔드 로직

기기가 접히면 LogicalDisplayMapperPowerManager가 다음과 같이 기기 동작을 제어합니다.

  1. LogicalDisplayMapperFOLD_LOCK_BEHAVIOR 설정 값을 FoldSettingProvider를 사용하여 읽습니다.
  2. 설정 값에 따라 다음이 실행됩니다.
    • 값이 stay_awake_on_fold_key이면 기기가 절전 모드를 유지합니다.
    • 값이 selective_stay_awake_key 또는 sleep_on_fold_key이면 LogicalDisplayMapper#goToSleep 신호를 PowerManager에 보냅니다.
      • selective_stay_awake_key의 경우 #goToSleep 신호에 PowerManager.GO_TO_SLEEP_FLAG_SOFT_SLEEP 플래그가 포함됩니다. 이렇게 하면 기기에서 인증을 요구하지 않고 키가드를 표시합니다.
      • sleep_on_fold_key의 경우 이 플래그 없이 #goToSleep 신호가 전송되어 기기가 잠깁니다.