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

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

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

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

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

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

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

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