নিদর্শন এবং উপাদান

অ্যান্ড্রয়েড ৮.০-তে, সেটিংস মেনুতে বেশ কিছু কম্পোনেন্ট এবং উইজেট যুক্ত হয়েছে যা সাধারণ ব্যবহারগুলো পূরণ করে। ডিভাইস নির্মাতা এবং ডেভেলপারদের সেটিংস অ্যাপটি সম্প্রসারণের সময় এই সাধারণ কম্পোনেন্টগুলো ব্যবহার করতে উৎসাহিত করা হচ্ছে, যাতে নতুন ইউজার ইন্টারফেসগুলো বিদ্যমান সেটিংস UI-এর সাথে সামঞ্জস্যপূর্ণ থাকে।

উন্নয়নগুলোর সারসংক্ষেপ নিচে দেওয়া হলো:

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

নতুন উইজেট:

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

উদাহরণ এবং উৎস

  • বিভাজকের আচরণ
    • সেটিংস-এর সমস্ত পৃষ্ঠা নতুন ডিভাইডার বৈশিষ্ট্য ব্যবহার করার জন্য পরিবর্তন করা হয়েছে।
    • ডিভাইডারের আচরণকে একটি ThemeOverlay হিসেবে সংজ্ঞায়িত করা হয়:
      packages/apps/Settings/res/values/styles_preference.xml
  • অ্যাকশনবার থিম পরিবর্তন
    • সেটিংস-এর সমস্ত পৃষ্ঠা নতুন অ্যাকশনবার থিম ব্যবহার করার জন্য পরিবর্তন করা হয়েছে।
    • থিমটি Theme.DeviceDefault.Settings-এ সংজ্ঞায়িত করা আছে।
  • নতুন পছন্দের বিন্যাস
    • সেটিংস-এর অনেক পৃষ্ঠা এখন নতুন প্রেফারেন্স লেআউট ব্যবহার করছে।
    • আপনি কোডটি এখানে খুঁজে পেতে পারেন:
      packages/apps/Settings/res/values/styles_preference.xml
  • অ্যাপ হেডার উইজেট
    • সেটিংস-এর অধিকাংশ অ্যাপ তথ্য পেজেই ইতিমধ্যে নতুন অ্যাপ হেডারটি প্রয়োগ করা হচ্ছে।
    • উদাহরণ এবং কোড এখানে পাওয়া যাবে:
      packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
  • প্রসারিত বোতাম
    • উদাহরণ এবং কোড এখানে পাওয়া যাবে:
      packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java

      দ্রষ্টব্য: এই কম্পোনেন্টটি অবশ্যই DashboardFragment-এর সাথে একত্রে ব্যবহার করতে হবে। ( Updated Information Architecture- এ DashboardFragment সম্পর্কে আরও বিস্তারিত দেখুন।)

  • ডিফল্ট অ্যাপ পিকার
    • আপনি বেস ক্লাসের কোডটি এখানে খুঁজে পাবেন:
      packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
    • DefaultAppPickerFragment-এর বেশ কয়েকটি সাবক্লাস রয়েছে, যার প্রতিটি ভিন্ন ভিন্ন ইন্টেন্টের জন্য একটি করে পিকার ইমপ্লিমেন্ট করে।
  • মাস্টারসুইচ শৈলীর পছন্দ
    • কোডটি এখানে রয়েছে: https://cs.android.com/android/platform/superproject/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
    • এর একটি উদাহরণ হলো ওয়াই-ফাই প্রাইমারি সুইচ। আপনি এখানে একটি উদাহরণ খুঁজে পেতে পারেন: packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java

বাস্তবায়ন

ডিভাইস নির্মাতারা নতুন সমস্ত উপাদান সরাসরি ব্যবহার শুরু করতে পারেন। যদি OEM-রা নতুন "MasterSwitch" ধরনের প্রেফারেন্স বা ডিফল্ট অ্যাপ পিকার প্রয়োগ করার সিদ্ধান্ত নেন, তবে আরও বিস্তারিত তথ্যের জন্য তাদের এই ডকুমেন্টের উদাহরণগুলো এবং প্রতিটি উপাদানের সাথে লেখা রেফারেন্স ফাইলগুলো (Javadoc) অনুসরণ করা উচিত।

সেটিংস মেনু কাস্টমাইজ করুন

  • ডিভাইডারের আচরণ। ডিভাইডার কীভাবে আঁকা হবে তা পরিবর্তন করতে, সেটিংস ডিভাইডারের স্টাইল আপডেট করুন এবং নিম্নলিখিতগুলির মান পরিবর্তন করুন:
    • allowDividerAbove
    • allowDividerBelow
    • allowDividerAfterLastItem
  • অ্যাকশনবারের থিমের রঙ। অ্যাক্টিভিটিগুলোর থিম হিসেবে Theme.DeviceDefault.Settings ব্যবহার করা উচিত, অথবা Theme.DeviceDefault.Settings প্যারেন্ট হিসেবে ব্যবহার করে একটি কাস্টম থিম তৈরি করতে হবে।
  • অ্যাপ হেডার উইজেট। প্রতিটি ফিল্ড কাস্টমাইজ করতে AppHeaderController-এ সেটার ব্যবহার করুন এবং সব ফিল্ড সেট হয়ে গেলে build() কল করুন।
  • সম্প্রসারণ বোতাম:
    • কার্যকারিতাটি সম্পূর্ণরূপে নিষ্ক্রিয় করতে, ProgressiveDisclosureMixin-এর কনস্ট্রাক্টরটি ওভাররাইড করুন এবং keepExpanded-কে true-তে সেট করুন।
    • প্রাথমিকভাবে কতগুলো আইটেম দেখানো হবে তা কাস্টমাইজ করতে, fragment-এর onAttach(Context) মেথডের সময় ProgressiveDisclosureMixin.setTileLimit() মেথডটি কল করুন।