অ্যান্ড্রয়েড ১১ থেকে শুরু করে, কিবোর্ড এবং অন্যান্য ইনপুট-মেথড এডিটর ( IME ) সিস্টেমে মেনুতে সাজেশন দেখানোর পরিবর্তে অটোফিল সাজেশনগুলো ইনলাইনে, একটি সাজেশন স্ট্রিপে বা অনুরূপ কোনো উপায়ে প্রদর্শন করতে পারে। যেহেতু এই অটোফিল সাজেশনগুলোতে পাসওয়ার্ড বা ক্রেডিট-কার্ডের তথ্যের মতো ব্যক্তিগত ডেটা থাকতে পারে, তাই ব্যবহারকারী কোনো একটি নির্বাচন না করা পর্যন্ত সাজেশনগুলো IME থেকে লুকানো থাকে। এই ফিচারটি ব্যবহার করার জন্য IME এবং পাসওয়ার্ড ম্যানেজারের মতো অটোফিল সার্ভিসগুলো আপডেট করুন। যদি কোনো IME বা অটোফিল সার্ভিস ইনলাইন অটোফিল সমর্থন না করে, তাহলে অ্যান্ড্রয়েড ১১-এর আগের সংস্করণগুলোর মতোই সাজেশনগুলো একটি মেনুতে দেখানো হবে।
কর্মপ্রবাহ
এই ফ্লোতে, IME বলতে বর্তমান কীবোর্ড বা অন্য কোনো ইনপুট এডিটরকে বোঝায়, এবং সাজেশন প্রোভাইডার বলতে অটোফিল সাজেশনের উপযুক্ত প্রোভাইডারকে বোঝায়। ইনপুট ফিল্ড এবং ব্যবহারকারীর সেটিংসের ওপর নির্ভর করে, সাজেশন প্রোভাইডারটি প্ল্যাটফর্ম বা কোনো অটোফিল সার্ভিস হতে পারে।
ব্যবহারকারী এমন একটি ইনপুট ফিল্ডে ফোকাস করেন যা অটোফিল চালু করে, যেমন পাসওয়ার্ড বা ক্রেডিট-কার্ড ইনপুট ফিল্ড।
প্ল্যাটফর্মটি বর্তমান IME এবং উপযুক্ত সাজেশন প্রোভাইডারকে জিজ্ঞাসা করে দেখে যে তারা ইনলাইন অটোফিল সমর্থন করে কিনা। যদি IME বা সাজেশন প্রোভাইডার কোনোটিই ইনলাইন অটোফিল সমর্থন না করে, তাহলে সাজেশনটি একটি মেনুতে দেখানো হয়, যেমনটি অ্যান্ড্রয়েড ১০ এবং তার নিচের সংস্করণগুলোতে হয়ে থাকে।
প্ল্যাটফর্মটি আইএমই-কে একটি সাজেশন রিকোয়েস্ট প্রদান করতে বলে। এই সাজেশন রিকোয়েস্টে প্রদর্শিতব্য সাজেশনের সর্বোচ্চ সংখ্যা এবং প্রতিটি সাজেশনের জন্য প্রেজেন্টেশন স্পেকস উল্লেখ করা থাকে। প্রেজেন্টেশন স্পেকসগুলোতে সর্বোচ্চ আকার, টেক্সট সাইজ, রং এবং ফন্ট ডেটার মতো বিষয়গুলো নির্দিষ্ট করা থাকে, যা সাজেশন প্রদানকারীকে আইএমই-এর লুক অ্যান্ড ফিল-এর সাথে সামঞ্জস্য রাখতে সাহায্য করে।
প্ল্যাটফর্মটি পরামর্শ প্রদানকারীকে অনুরোধকৃত সংখ্যক পর্যন্ত পরামর্শ প্রদান করতে বলে। প্রতিটি পরামর্শে একটি কলব্যাক অন্তর্ভুক্ত থাকে, যা পরামর্শটির ইউজার ইন্টারফেস (UI) ধারণকারী একটি
Viewচালু করে।প্ল্যাটফর্মটি IME-কে জানায় যে সাজেশনগুলো প্রস্তুত। IME প্রতিটি সাজেশনের '
Viewইনফ্লেট করার জন্য কলব্যাক মেথডটি কল করে সাজেশনগুলো প্রদর্শন করে। ব্যবহারকারীর ব্যক্তিগত তথ্য সুরক্ষিত রাখার জন্য, এই পর্যায়ে IME সাজেশনগুলো কী তা দেখতে পায় না ।যদি ব্যবহারকারী পরামর্শগুলোর মধ্যে থেকে কোনো একটি নির্বাচন করেন, তাহলে 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, যা নির্ধারণ করে সাজেশনটি কীভাবে উপস্থাপন করতে হবে।
যখন প্ল্যাটফর্মে সাজেশন থাকে, তখন এটি সাজেশনগুলো সম্বলিত একটি InlineSuggestionsResponse পাস করে আপনার IME-এর onInlineSuggestionsResponse() মেথডকে কল করে। আপনাকে অবশ্যই এই মেথডটি ইমপ্লিমেন্ট করতে হবে। আপনার ইমপ্লিমেন্টেশনে, সাজেশনের তালিকা পেতে 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 রিটার্ন করে।
আপনার অটোফিল সার্ভিসটি InlineSuggestionsRequest এ অনুরোধ করা সর্বোচ্চ সংখ্যা পর্যন্ত InlinePresentation অবজেক্ট তৈরি করে। আপনার প্রেজেন্টেশনগুলোকে অবশ্যই InlineSuggestionsRequest দ্বারা নির্দিষ্ট করা আকারের সীমাবদ্ধতা মেনে চলতে হবে। আপনার সাজেশনগুলো IME-তে ফেরত পাঠাতে, প্রতিটি সাজেশনের জন্য একবার করে Dataset.Builder.setValue() কল করুন। Android 11 ইনলাইন সাজেশন সমর্থন করার জন্য Dataset.Builder.setValue() -এর বিভিন্ন সংস্করণ প্রদান করে।