הגדרת הפעולה של נעילת הקיפול

יצרני ציוד מקורי יכולים להגדיר אפשרות במכשירים מתקפלים שמאפשרת למשתמשים לבחור איך המסך החיצוני יתנהג כשהם מקפלים את המכשיר ממצב לא נעול ופתוח.

ההגדרה נמצאת בהגדרות > תצוגה > המשך השימוש באפליקציות כשהמכשיר מקופל. למשתמש יש שלוש אפשרויות:

  • תמיד: כשהמשתמש מקפל את המכשיר, המסך החיצוני תמיד מופעל ונשאר לא נעול.
  • רק אם מחליקים למעלה: כשהמשתמש מקפל את המכשיר, מוצג במכשיר מסך הנעילה בלי שנדרש אימות, אלא אם אפליקציה מחזיקה בנעילת השהיה, ובמקרה כזה המכשיר נשאר פעיל באפליקציה. זו הגדרת ברירת המחדל.
  • אף פעם: כשהמשתמש מקפל את המכשיר, המכשיר ננעל והמסך החיצוני נכבה.

דף ההגדרה של התנהגות הנעילה במצב מקופל

איור 1. הגדרה של התנהגות הנעילה במצב מקופל.

הגדרת אופן הפעולה של נעילת הקיפול

כדי להציג את הגדרת ההתנהגות של הנעילה במצב מקופל בהגדרות, צריך לאכלס את הערך הבוליאני config_fold_lock_behavior בקובץ השכבות config.xml של המכשיר:

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

פרטי ההטמעה

ההתנהגות של נעילת הקיפול נשלטת על ידי הגדרה ומספר מחלקות בקצה העורפי.

הגדרה וממשק משתמש

הערך של ההגדרה FOLD_LOCK_BEHAVIOR נשמר כמחרוזת, שמתאימה לבחירה של המשתמש בהגדרות > תצוגה > המשך שימוש באפליקציות כשהמכשיר מקופל:

ההגדרה מורחבת מ-display_settings.xml. ממשק המשתמש של דף ההגדרות מיושם בקטע FoldLockBehaviorSettings, וההעדפה מנוהלת על ידי FoldLockBehaviorPreferenceController.

לוגיקת קצה

כשהמכשיר מקופל, ההגדרות LogicalDisplayMapper ו-PowerManager שולטות בהתנהגות המכשיר באופן הבא:

  1. LogicalDisplayMapper קורא את ערך ההגדרה FOLD_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 נשלח ללא הדגל הזה, ולכן המכשיר ננעל.