إعداد سلوك قفل الطي

يمكن لمصنّعي المعدات الأصلية ضبط خيار على الأجهزة القابلة للطي يتيح للمستخدمين اختيار سلوك الشاشة الخارجية عند طيّ الجهاز من حالة غير مقفلة وغير مطوية.

يقع الإعداد في الإعدادات > الشاشة > مواصلة استخدام التطبيقات أثناء طيّ الهاتف. يتوفّر للمستخدم الخيارات الثلاثة التالية:

  • دائمًا: عند طيّ الجهاز، يتم دائمًا تشغيل الشاشة الأمامية وتبقى غير مقفلة.
  • التمرير سريعًا للأعلى للمتابعة: عند طيّ الجهاز، يعرض الجهاز شاشة القفل بدون طلب المصادقة، ما لم يكن أحد التطبيقات يمنع الجهاز من الانتقال إلى وضع السكون، وفي هذه الحالة يبقى الجهاز قيد التشغيل في التطبيق. هذا هو الإعداد التلقائي.
  • لم نلتقِ مطلقًا: عند طيّ الجهاز، يتم قفله وإيقاف تشغيل الشاشة الأمامية.

صفحة إعدادات سلوك قفل الطي

الشكل 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 بدون هذه العلامة، ما يؤدي إلى قفل الجهاز.