IME ও অটোফিল পরিষেবার সাথে অটোফিল ইন্টিগ্রেট করা

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

ওয়ার্কফ্লো

এই ফ্লোতে, IME বলতে বর্তমান কীবোর্ড বা অন্যান্য ইনপুট এডিটরকে বোঝায় এবং সাজেশন প্রদানকারী বলতে অটোফিল সাজেশনের উপযুক্ত প্রদানকারীকে বোঝায়। ইনপুট ফিল্ড এবং ব্যবহারকারীর সেটিংসের উপর নির্ভর করে, সাজেশন প্রদানকারী প্ল্যাটফর্ম বা অটোফিল পরিষেবা হতে পারে।

  1. ব্যবহারকারী এমন একটি ইনপুট ফিল্ডে ফোকাস করেন যা অটোফিল ট্রিগার করে, যেমন পাসওয়ার্ড বা ক্রেডিট-কার্ড ইনপুট ফিল্ড।

  2. ইনলাইন অটোফিল কাজ করে কিনা তা দেখতে, প্ল্যাটফর্মটি বর্তমান IME এবং উপযুক্ত সাজেশন প্রদানকারীকে কোয়েরি করে। IME বা সাজেশন প্রদানকারী, কোনওটিই ইনলাইন অটোফিল ফিচারকে সাপোর্ট না করলে, Android 10 এবং তার আগের ভার্সনের মতো, সাজেশনটি একটি মেনুতে দেখানো হয়।

  3. প্ল্যাটফর্মটি IME-কে একটি সাজেশন অনুরোধ প্রদান করতে বলে। এই সাজেশন অনুরোধে সর্বাধিক কতগুলি সাজেশন দেখানো হবে তা নির্দিষ্ট করা থাকে এবং প্রতিটি সাজেশনের জন্য প্রেজেন্টেশন স্পেসিফিকেশন প্রদান করা হয়। প্রেজেন্টেশন স্পেসিফিকেশন সর্বাধিক সাইজ, টেক্সট সাইজ, রঙ এবং ফন্ট ডেটার মতো জিনিস নির্দিষ্ট করে, যা সাজেশন প্রদানকারীকে IME-এর লুক ও ফিল ম্যাচ করতে দেয়।

  4. প্ল্যাটফর্মটি সাজেশন প্রদানকারীকে অনুরোধ করা সাজেশনের সংখ্যা পর্যন্ত প্রদান করতে বলে। প্রতিটি সাজেশনে একটি কলব্যাক অন্তর্ভুক্ত থাকে যা সাজেশনের UI সহ View-কে ইনফ্লেট করে।

  5. প্ল্যাটফর্মটি IME-কে জানায় যে সাজেশন প্রস্তুত। IME প্রতিটি সাজেশনের View-কে ইনফ্লেট করার জন্য কলব্যাক মেথড কল করে সাজেশন দেখায়। ব্যবহারকারীর ব্যক্তিগত তথ্য সুরক্ষিত রাখতে, এই পর্যায়ে সাজেশন কী তা IME দেখে না।

  6. ব্যবহারকারী সাজেশনগুলির মধ্যে থেকে একটি বেছে নিলে, IME-কে সেইভাবেই জানানো হয় যেন ব্যবহারকারী সিস্টেম মেনু থেকে একটি সাজেশন বেছে নিয়েছেন।

ইনলাইন অটোফিল পরিষেবা কাজ করার জন্য কীভাবে আপনার IME বা অটোফিল পরিষেবা কনফিগার করবেন তা নিম্নলিখিত বিভাগে বর্ণনা করা হয়েছে।

ইনলাইন অটোফিল কাজ করার জন্য IME কনফিগার করুন

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

আপনার IME-কে অবশ্যই supportsInlinedSuggestions অ্যাট্রিবিউট true হিসেবে সেট করতে হবে:

<input-method
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:supportsInlineSuggestions="true"/>

প্ল্যাটফর্মের অটোফিল সাজেশন প্রয়োজন হলে, এটি আপনার IME-এর InputMethodService.onCreateInlineSuggestionsRequest() পদ্ধতি কল করে। আপনাকে অবশ্যই এই পদ্ধতি প্রয়োগ করতে হবে। নিম্নলিখিত তথ্য উল্লেখ করে একটি InlineSuggestionsRequest ফেরত পাঠান:

  • আপনার IME-এর জন্য প্রয়োজনীয় সাজেশনের সংখ্যা।
  • **প্রতিটি সাজেশনের জন্য একটি InlinePresentationSpec, যা নির্ধারণ করে যে কীভাবে সাজেশনটি উপস্থাপন করতে হবে।

প্ল্যাটফর্মের কাছে সাজেশন থাকলে, এটি আপনার IME-এর onInlineSuggestionsResponse() পদ্ধতিকে কল করে, সাজেশন সহ InlineSuggestionsResponse পাস করে। আপনাকে এই পদ্ধতি প্রয়োগ করতে হবে। আপনার ইমপ্লিমেন্টেশনে, সাজেশনের তালিকা পেতে InlineSuggestionsResponse.getInlineSuggestions() কল করুন, তারপর প্রতিটি সাজেশনকে InlineSuggestion.inflate() মেথড কল করে ইনফ্লেট করুন।

ইনলাইন অটোফিল কাজ করার জন্য অটোফিল পরিষেবা কনফিগার করুন

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

আপনার অটোফিল পরিষেবাকে অবশ্যই supportsInlinedSuggestions অ্যাট্রিবিউটকে true-এ সেট করতে হবে:

<autofill-service
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:supportsInlineSuggestions="true"/>

IME-এর অটোফিল সাজেশন প্রয়োজন হলে, প্ল্যাটফর্মটি আপনার অটোফিল পরিষেবার onFillRequest() পদ্ধতিকে কল করে, ঠিক যেমনটি Android 11-এর আগের ভার্সনে করে। তবে, আপনার পরিষেবাকে অবশ্যই পাস করা FillRequest অবজেক্টের getInlineSuggestionsRequest() পদ্ধতি কল করতে হবে। এটি IME-এর মাধ্যমে তৈরি করা InlineSuggestionsRequest ফিরিয়ে আনে। InlineSuggestionsRequest কতগুলি ইনলাইন সাজেশন প্রয়োজন এবং প্রতিটি কীভাবে দেখাতে হবে তা নির্দিষ্ট করে। IME ইনলাইন সাজেশন সাপোর্ট না করলে, মেথড null রিটার্ন করে।

আপনার অটোফিল পরিষেবা InlinePresentation অবজেক্ট তৈরি করে, InlineSuggestionsRequest-এ অনুরোধ করা সর্বাধিক সংখ্যা পর্যন্ত। আপনার প্রেজেন্টেশন অবশ্যই InlineSuggestionsRequest দ্বারা নির্দিষ্ট করা সাইজের সীমাবদ্ধতা মেনে চলতে হবে। IME-তে আপনার সাজেশন ফিরিয়ে আনতে, প্রতিটি সাজেশনের জন্য একবার Dataset.Builder.setValue() কল করুন। Android 11-এ ইনলাইন সাজেশন দেখানোর জন্য Dataset.Builder.setValue()-এর ভার্সন প্রদান করা হয়।