تنظیم رفتار قفل تا کنید

تولیدکنندگان اصلی تجهیزات (OEM) می‌توانند گزینه‌ای را در دستگاه‌های تاشو پیکربندی کنند که به کاربران اجازه می‌دهد نحوه رفتار صفحه نمایش بیرونی را هنگام تا کردن دستگاه از حالت قفل نشده و باز شده انتخاب کنند.

این تنظیم در مسیر تنظیمات > نمایشگر > ادامه استفاده از برنامه‌ها در حالت تاشدگی قرار دارد. کاربر سه گزینه زیر را در اختیار دارد:

  • همیشه: وقتی کاربر دستگاه را تا می‌کند، صفحه نمایش جلویی همیشه روشن می‌شود و قفل آن باز می‌ماند.
  • برای ادامه، انگشت خود را به بالا بکشید: وقتی کاربر دستگاه را تا می‌کند، دستگاه بدون نیاز به احراز هویت، محافظ صفحه کلید را نشان می‌دهد، مگر اینکه برنامه‌ای قفل بیدارباش داشته باشد که در این صورت دستگاه در برنامه بیدار می‌ماند. این تنظیم پیش‌فرض است.
  • هرگز: وقتی کاربر دستگاه را تا می‌کند، دستگاه قفل می‌شود و نمایشگر جلویی خاموش می‌شود.

صفحه تنظیم رفتار قفل تاشو

شکل ۱. تنظیمات قفل تاشو.

پیکربندی تنظیمات رفتار قفل تاشو

برای نمایش تنظیمات مربوط به قفل تاشو در تنظیمات ، مقدار بولی 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>

جزئیات پیاده‌سازی

رفتار قفل تاشو توسط یک تنظیم و چندین کلاس backend کنترل می‌شود.

تنظیمات و رابط کاربری

مقدار تنظیم FOLD_LOCK_BEHAVIOR به صورت یک رشته ذخیره می‌شود، که مربوط به انتخاب کاربر در تنظیمات > نمایش > ادامه استفاده از برنامه‌ها در fold است :

این تنظیمات از 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 بدون این پرچم ارسال می‌شود و باعث قفل شدن دستگاه می‌گردد.