কথোপকথন বিজ্ঞপ্তি ও উইজেট

Android 11, কথোপকথন সংক্রান্ত বিজ্ঞপ্তির আচরণ ও প্লেসমেন্ট কাস্টমাইজ করার সুবিধা যোগ করে। বিজ্ঞপ্তি শেডে অগ্রাধিকার ও অ্যালার্ম লেভেল অনুযায়ী এই সুবিধা পাওয়া যায়। এর ফলে, কথোপকথনকে গুরুত্বপূর্ণ হিসেবে চিহ্নিত করা যায় এবং কথোপকথন স্পেসে কথোপকথন-নির্দিষ্ট বাবল লঞ্চ করা যায়।

এইসব Android 11 ফিচারের উপর ভিত্তি করে, Android 12 দুটি নতুন কথোপকথন ফিচার অফার করে:

  • সেটিংসের 'সাম্প্রতিক কথোপকথন' ফিচার ব্যবহারকারীদের বিজ্ঞপ্তি আসার জন্য অপেক্ষা না করেই সাম্প্রতিক কথোপকথনের জন্য বিজ্ঞপ্তির আচরণ কাস্টমাইজ করতে দেয়।

  • 'কথোপকথন উইজেট' ফিচারের সাহায্যে ব্যবহারকারীরা হোম স্ক্রিনে সহজেই চ্যাট খুলতে পারেন। এর ফলে সাম্প্রতিক কথোপকথন দ্রুত দেখা যায়।

এই ডকুমেন্ট কথোপকথন সংক্রান্ত বিজ্ঞপ্তি ও উইজেটের প্রয়োগ, কাস্টমাইজেশন ও যাচাইকরণ সংক্রান্ত দিকগুলি বর্ণনা করে।

কথোপকথন বিজ্ঞপ্তি ওভারভিউ

Android 11 একটি নতুন সিস্টেম প্রিমিটিভ, কথোপকথন চালু করে, যা আগে থেকেই থাকা শেয়ারিং শর্টকাট অবজেক্ট (যা Android 9-এর সাথে প্রকাশ করা হয়েছে) দ্বারা উপস্থাপিত হয়।

নিম্নলিখিত উপায়ে কথোপকথন প্রিমিটিভ ব্যবহার করা যেতে পারে:

  • সিস্টেম জুড়ে অ্যাপগুলির মধ্যে Conversations ডেটা শেয়ার করতে, এর মাধ্যমে Sharesheet (আগে থেকেই Android 10-এ আছে)।

  • ড্রাইভিংয়ের জন্য বাবল(Android 11-এ শর্টকাট)। ছবি ১ দেখুন।

  • বিজ্ঞপ্তি শেডের (Android 11-এ প্রয়োগ করা হয়েছে) উপরে নতুন কথোপকথন স্পেসে অংশগ্রহণ করতে। ছবি ২ দেখুন।

  • কথোপকথন উইজেট তৈরি করার জন্য (Android 12-এ প্রয়োগ করা হয়েছে)।

    conv_bubbles

    ছবি ১: বিজ্ঞপ্তি ড্রয়ার থেকে বাবল হিসেবে লঞ্চ করা বিজ্ঞপ্তি

    conv_notification

    ছবি ২: বিজ্ঞপ্তি শেডের উপরে অবস্থিত কথোপকথন স্পেস

কথোপকথন প্রতিনিধিত্বকারী শর্টকাটের সাথে লিঙ্ক করা ছাড়াও, বিজ্ঞপ্তিটি কথোপকথন স্পেসে কথোপকথনের শেষ মেসেজ অন্তর্ভুক্ত করতেMessagingStyle ব্যবহার করে।

GMS পার্টনারদের নিম্নলিখিত বিষয়গুলি প্রয়োগ করতে হবে:

  • বিজ্ঞপ্তি শেডের উপরে আলাদা বিভাগ হিসেবে নতুন কথোপকথন স্পেস।
  • বিজ্ঞপ্তির এমন স্টাইল যা কথোপকথন-নির্দিষ্ট বাবল প্যাটার্নকে অনুমতি দেয় ও কাজ করে।

যেসব পার্টনার কথোপকথন প্রয়োগ করেন তাদের গুরুত্বপূর্ণ কথোপকথনও প্রয়োগ করতে হয়। তবে, একই ধরনের OEM কনসেপ্টের সাথে কথোপকথন প্রয়োগ করা যেতে পারে। মোটকথা, পার্টনাররা তাদের নির্দিষ্ট সিস্টেম UI-এর সাথে কথোপকথন বিভাগকে নিজেদের মতো করে সাজাতে পারবেন। পার্টনারকে HAL/ড্রাইভার/কার্নেল কোড/এক্সটেনশন পরিবর্তন বা প্রয়োগ করতে হবে না।

AOSP-এর SystemUI ও PeopleService বিভাগে নিম্নলিখিত রেফারেন্স ইমপ্লিমেন্টেশন দেখুন:

frameworks/base/packages/SystemUI/src/com/android/systemui/people/
frameworks/base/core/java/android/app/people/
frameworks/base/services/people/java/com/android/server/people/

যাচাইকরণ

আপনার ভার্সনের ফিচারটি সঠিকভাবে কাজ করছে কিনা তা নিশ্চিত করতে, নিম্নলিখিত বিষয়গুলি যাচাই করুন:

  1. যেসব অ্যাপ Conversation API-কে সম্পূর্ণভাবে সাপোর্ট করে, সেগুলি নতুন বিভাগে তাদের বিজ্ঞপ্তি দেখতে পায় এবং সাধারণ NotificationChannel-এর পরিবর্তে কথোপকথন অনুযায়ী সেইসব বিজ্ঞপ্তি কাস্টমাইজ করতে পারে।

  2. কথোপকথন নির্দিষ্ট বাবল কাজ করছে।

প্রয়োগ করা হয়েছে কিনা তা যাচাই করতে, বিজ্ঞপ্তি প্যাকেজে নিম্নলিখিত পরীক্ষাগুলি ব্যবহার করুন:

  • CTS টেস্ট।

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • CTS Verifier পরীক্ষা।

    cts/apps/CtsVerifier/src/com/android/cts/verifier/notifications/
    
    

কথোপকথন উইজেটের ওভারভিউ

Android 12-এ, কথোপকথন উইজেট ফিচার, Android 11-এ তৈরি করা কথোপথনের উপস্থাপনার উপর ভিত্তি করে তৈরি করা হয় (আগের বিভাগে যেমন বর্ণনা করা হয়েছে) কথোপকথন উইজেটে দেখানো কথোপথনের স্ট্যাটাস অ্যাপকে প্রদান করার অনুমতি দিয়ে এটি করা হয়।

conv_widgets

ছবি ৩: কথোপকথন উইজেটে দেখানো কথোপকথন

Android 12-এ কথোপকথন উইজেট ফিচার ব্যবহারকারীদের হোম স্ক্রিনে সহজেই চ্যাট খোলার অনুমতি দিয়ে কানেকশনকে প্রোমোট করে। উইজেট হল উন্নত শর্টকাট যা ব্যবহারকারীদের কথোপকথনের স্ট্যাটাসের স্নিপেট দেখানোর পাশাপাশি তাদের কথোপকথনে দক্ষতার সাথে ফিরে যেতে দেয়।

পার্টনারকে অবশ্যই নিম্নলিখিত কাজগুলি করতে হবে:

  1. SystemUI-এর দেওয়া উইজেট।
  2. উইজেট বাছাই করার স্ক্রিন থেকে এইসব উইজেট যোগ করার ফ্লো।
  3. উইজেটের সাইজ পরিবর্তন করার সুবিধা এগুলি সহ:
    • ব্যবহারকারী লেআউটের সাইজ পরিবর্তন করলে বা ল্যান্ডস্কেপ মোডে রোটেট করলে, লেআউটকে আরও ভালো সাইজের লেআউটে পরিবর্তন করতে onAppWidgetOptionsChanged() ব্যবহার করুন।
    • আপনার উইজেটের সাইজ পরিবর্তন সঠিকভাবে বাউন্ড করতে maxResizeHeight, maxResizeWidth, minWidth, minHeight, minResizeWidth, minResizeHeight ব্যবহার করুন।

কনভার্সেশন উইজেট প্রয়োগ করার সময় নিম্নলিখিত নির্ভরতা সম্পর্কে সচেতন থাকুন:

  • পার্টনারকে HAL/ড্রাইভার/কার্নেল কোড পরিবর্তন বা প্রয়োগ করতে হবে না।
  • স্ট্যাটাস API, যা কোনও কথোপকথন এবং সংশ্লিষ্ট উইজেটে স্ট্যাটাস বা উপলভ্যতা সংক্রান্ত তথ্য যোগ করতে অ্যাপকে অনুমতি দেয়, তা প্রয়োগের জন্য ব্যবহৃত হয়।
  • নতুন ডিভাইস ইমপ্লিমেন্টেশন এবং আপগ্রেড ইমপ্লিমেন্টেশন, দুটির ক্ষেত্রেই প্রসেস একই।
  • Android 12-এ লঞ্চ হওয়া নতুন ফিচারের উপর কথোপকথন উইজেট ফিচার নির্ভর করে, যা সম্প্রতি দেখা কথোপকথন ক্যাশে করে (যেমন, বিজ্ঞপ্তি থেকে)। এই পরের ফিচারটি ব্যবহারকারী তার হোম স্ক্রিনে সম্ভাব্য যোগ করতে পারেন এমন কথোপকথনের তালিকা বড় করতে দেয়।

SystemUI এবং Launcher3 ফাইলে নিম্নলিখিত রেফারেন্স প্রয়োগ দেখুন:

frameworks/base/packages/SystemUI/src/com/android/systemui/people/
frameworks/base/core/java/android/app/people/
frameworks/base/services/people/java/com/android/server/people/

কাস্টমাইজেশন

'কথোপকথন উইজেট' ফিচার চালু বা বন্ধ করা যায় না। তবে, GMS সংক্রান্ত প্রয়োজনীয়তা পূরণ হলে, পার্টনার উইজেট টেমপ্লেটের লেআউট পরিবর্তন করতে পারেন।

যাচাইকরণ

আপনার ভার্সনের ফিচারটি যাতে প্রত্যাশা অনুযায়ী কাজ করে তা নিশ্চিত করতে, নিম্নলিখিত বিষয়গুলি যাচাই করুন:

  1. লঞ্চারের উপরে বেশিক্ষণ প্রেস করে ধরে রাখলে, উইজেট পিকারের মাধ্যমে কথোপকথনের জন্য নতুন কথোপকথন উইজেট যোগ করা যাবে। উইজেট পিকার UI-এর জন্য ছবি ৪ দেখুন:

    widget_picker

    ছবি ৪: নতুন কথোপকথন উইজেট যোগ করার জন্য উইজেট পিকার UI

  2. বেছে নেওয়া কথোপকথন থেকে ডিভাইসে বিজ্ঞপ্তি পাঠানোর পরে, সেইসব বিজ্ঞপ্তি দেখানোর জন্য উইজেট আপডেট করা হয়।

  3. ConversationStatus API ব্যবহার করে সেই কথোপকথনে স্ট্যাটাস প্রয়োগ করলে, উইজেটে সেইসব স্ট্যাটাস দেখা যায়।

  4. ব্যবহারকারীরা উইজেটের সাইজ পরিবর্তন করতে পারেন এবং উইজেটগুলি তাদের বর্তমান লঞ্চারের উপর ভিত্তি করে তাদের সাইজ পরিবর্তন করতে পারে। বিভিন্ন ডিভাইসে এবং উইজেটের সাইজ পরিবর্তন করার সময়, আপনার উইজেট লেআউটকে অবশ্যই বিভিন্ন লঞ্চার সাইজের সাথে ভালোভাবে কাজ করতে হবে।

ইমপ্লিমেন্টেশন যাচাই করতে, বিজ্ঞপ্তি প্যাকেজে নিম্নলিখিত পরীক্ষাগুলি ব্যবহার করুন:

  • API সারফেসের জন্য CTS পরীক্ষা (PeopleManagerTest)।

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • GMS সংক্রান্ত প্রয়োজনীয়তা পূরণের জন্য ম্যানুয়াল পরীক্ষা - কথোপকথন।