ভাঁজ লক আচরণ সেটিং

প্রস্তুতকারক সংস্থাগুলো ফোল্ডেবল ডিভাইসগুলোতে এমন একটি অপশন কনফিগার করতে পারে, যা ব্যবহারকারীদের বেছে নেওয়ার সুযোগ দেয় যে ডিভাইসটি আনলক করা এবং খোলা অবস্থা থেকে ভাঁজ করার সময় বাইরের স্ক্রিনটি কীভাবে আচরণ করবে।

এই সেটিংটি Settings > Display > Continue using apps on fold-এ অবস্থিত। ব্যবহারকারীর জন্য নিম্নলিখিত তিনটি বিকল্প রয়েছে:

  • সর্বদা: ব্যবহারকারী যখন ডিভাইসটি ভাঁজ করেন, তখন সামনের ডিসপ্লেটি সর্বদা চালু হয় এবং আনলক করা থাকে।
  • চালিয়ে যেতে উপরে সোয়াইপ করুন: যখন ব্যবহারকারী ডিভাইসটি ভাঁজ করেন, তখন কোনো প্রমাণীকরণের প্রয়োজন ছাড়াই ডিভাইসটি কীগার্ড দেখায়, যদি না কোনো অ্যাপ ওয়েক-লক ধরে রাখে, সেক্ষেত্রে ডিভাইসটি অ্যাপটিতে সজাগ থাকে। এটিই ডিফল্ট সেটিং।
  • কখনোই না: যখন ব্যবহারকারী ডিভাইসটি ভাঁজ করেন, তখন ডিভাইসটি লক হয়ে যায় এবং সামনের ডিসপ্লে বন্ধ হয়ে যায়।

ফোল্ড লক আচরণ সেটিং পৃষ্ঠা

চিত্র ১. ফোল্ড লক আচরণের সেটিং।

ফোল্ড লক আচরণের সেটিং কনফিগার করুন

সেটিংসে ফোল্ড লক বিহেভিয়ার সেটিংটি প্রদর্শন করতে, আপনার ডিভাইসের ওভারলে config.xml ফাইলে config_fold_lock_behavior বুলিয়ানটি পূরণ করুন:

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

বাস্তবায়নের বিবরণ

ফোল্ড লক-এর আচরণ একটি সেটিং এবং কয়েকটি ব্যাকএন্ড ক্লাস দ্বারা নিয়ন্ত্রিত হয়।

সেটিং এবং UI

FOLD_LOCK_BEHAVIOR সেটিংটির মান একটি স্ট্রিং হিসেবে সংরক্ষিত হয়, যা Settings > Display > Continue using apps on fold-এ ব্যবহারকারীর নির্বাচনের সাথে সঙ্গতিপূর্ণ।

এই সেটিংটি display_settings.xml থেকে নেওয়া হয়। সেটিং পেজের UI-টি FoldLockBehaviorSettings ফ্র্যাগমেন্টে প্রয়োগ করা হয়েছে এবং প্রেফারেন্সটি FoldLockBehaviorPreferenceController দ্বারা পরিচালিত হয়।

ব্যাকএন্ড লজিক

যখন ডিভাইসটি ভাঁজ করা থাকে, তখন LogicalDisplayMapper এবং PowerManager নিম্নলিখিতভাবে ডিভাইসের আচরণ নিয়ন্ত্রণ করে:

  1. LogicalDisplayMapper FoldSettingProvider ব্যবহার করে FOLD_LOCK_BEHAVIOR সেটিং-এর মান পড়ে।
  2. সেটিং মানের উপর ভিত্তি করে:
    • যদি মানটি stay_awake_on_fold_key হয়, তাহলে ডিভাইসটি সজাগ থাকে।
    • যদি মানটি selective_stay_awake_key বা sleep_on_fold_key হয়, তাহলে LogicalDisplayMapper PowerManager কে একটি #goToSleep সিগন্যাল পাঠায়।
      • selective_stay_awake_key এর ক্ষেত্রে, #goToSleep সিগন্যালে PowerManager.GO_TO_SLEEP_FLAG_SOFT_SLEEP ফ্ল্যাগটি অন্তর্ভুক্ত থাকে। এর ফলে ডিভাইসটি কোনো অথেনটিকেশন ছাড়াই কীগার্ড প্রদর্শন করে।
      • sleep_on_fold_key এর ক্ষেত্রে, #goToSleep সিগন্যালটি এই ফ্ল্যাগটি ছাড়া পাঠানো হয়, যার ফলে ডিভাইসটি লক হয়ে যায়।