يمكن لمصنّعي المعدات الأصلية ضبط خيار على الأجهزة القابلة للطي يتيح للمستخدمين اختيار سلوك الشاشة الخارجية عند طيّ الجهاز من حالة غير مقفلة وغير مطوية.
يقع الإعداد في الإعدادات > الشاشة > مواصلة استخدام التطبيقات أثناء طيّ الهاتف. يتوفّر للمستخدم الخيارات الثلاثة التالية:
- دائمًا: عند طيّ الجهاز، يتم دائمًا تشغيل الشاشة الأمامية وتبقى غير مقفلة.
- التمرير سريعًا للأعلى للمتابعة: عند طيّ الجهاز، يعرض الجهاز شاشة القفل بدون طلب المصادقة، ما لم يكن أحد التطبيقات يمنع الجهاز من الانتقال إلى وضع السكون، وفي هذه الحالة يبقى الجهاز قيد التشغيل في التطبيق. هذا هو الإعداد التلقائي.
- لم نلتقِ مطلقًا: عند طيّ الجهاز، يتم قفله وإيقاف تشغيل الشاشة الأمامية.
الشكل 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 كسلسلة نصية،
والتي تتطابق مع اختيار المستخدم في الإعدادات > الشاشة > مواصلة
استخدام التطبيقات أثناء طيّ الهاتف:
- دائمًا:
stay_awake_on_fold_key - التمرير سريعًا للأعلى للمتابعة:
selective_stay_awake_key - لم نلتقِ مطلقًا:
sleep_on_fold_key
يتم توسيع الإعداد من display_settings.xml. تمت إضافة واجهة مستخدِم صفحة الإعدادات
في جزء FoldLockBehaviorSettings، وتتم إدارة
الإعداد المفضّل من خلال FoldLockBehaviorPreferenceController.
منطق الخلفية
عند طيّ الجهاز، يتحكّم كل من LogicalDisplayMapper و
PowerManager في سلوك الجهاز على النحو التالي:
LogicalDisplayMapperيقرأ قيمة الإعدادFOLD_LOCK_BEHAVIORباستخدامFoldSettingProvider.- استنادًا إلى قيمة الإعداد:
- إذا كانت القيمة
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بدون هذه العلامة، ما يؤدي إلى قفل الجهاز.
- بالنسبة إلى
- إذا كانت القيمة