কম্পোজে অটোফিল

কিছু অ্যাপ, যেমন পাসওয়ার্ড ম্যানেজার, ব্যবহারকারীর দেওয়া ডেটা দিয়ে অন্যান্য অ্যাপের উপাদানগুলি পূরণ করতে পারে। যে অ্যাপগুলি অন্যান্য অ্যাপের উপাদানগুলি পূরণ করে তাকে স্বতঃপূর্ণ পরিষেবা বলা হয়। অটোফিল ফ্রেমওয়ার্ক একটি অ্যাপ এবং একটি অটোফিল পরিষেবার মধ্যে যোগাযোগ পরিচালনা করে।

শংসাপত্র এবং ফর্মগুলি পূরণ করা একটি সময়সাপেক্ষ এবং ত্রুটি-প্রবণ কাজ। অটোফিল ব্যবহারকারীদের ক্ষেত্রগুলি পূরণ করতে ব্যয় করা সময় বাঁচাতে এবং ব্যবহারকারীর ইনপুট ত্রুটি কমিয়ে দেয়।

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

শংসাপত্র পূরণ করুন

অটোফিল ব্যবহারকারীদের নিম্নলিখিত উপায়ে তাদের শংসাপত্রগুলি পূরণ করতে দেয়:

  • সিস্টেমটি ব্যবহারকারীর জন্য স্বতঃপূর্ণ পরামর্শগুলি প্রদর্শন করে যখন তারা একটি ক্ষেত্রে ট্যাপ করে যেখানে অটোফিল শব্দার্থক সেট করা আছে।
  • সিস্টেম ব্যবহারকারীর জন্য স্বতঃপূর্ণ পরামর্শ প্রদর্শন করে এবং ব্যবহারকারী যা টাইপ করে তার উপর ভিত্তি করে সেগুলি ফিল্টার করে।

শংসাপত্র সংরক্ষণ করুন

ব্যবহারকারীরা নিম্নলিখিত উপায়ে অটোফিলের মাধ্যমে শংসাপত্র সংরক্ষণ করতে পারেন:

  • সিস্টেমটি একটি সংরক্ষণ ডায়ালগ ট্রিগার করে, যা ব্যবহারকারীকে তথ্য সংরক্ষণ করতে অনুরোধ করে যখন তারা একটি স্বতঃপূর্ণ-সক্ষম ক্ষেত্রে নতুন বা আপডেট তথ্য ইনপুট করে। সংরক্ষণ দুটি উপায়ে করা যেতে পারে:
    • স্পষ্টভাবে, তথ্য প্রদানের মাধ্যমে (উদাহরণস্বরূপ, একটি বোতাম ক্লিকের মাধ্যমে)
    • স্পষ্টভাবে, যখন একজন ব্যবহারকারী পৃষ্ঠা থেকে দূরে নেভিগেট করে
  • আপনার শংসাপত্র প্রদানকারীর উপর নির্ভর করে, যখন একটি ক্ষেত্রে ContentType.NewPassword সেট থাকে তখন সিস্টেম ব্যবহারকারীকে একটি শক্তিশালী পাসওয়ার্ড প্রস্তাব করতে পারে৷

ব্যবহারকারীদের জন্য সংরক্ষিত ডেটা পুনরুদ্ধার স্ট্রীমলাইন করতে আপনি আপনার অ্যাপে অটোফিল ব্যবহার করতে পারেন। অটোফিল BasicTextField এবং সেই উপাদানের উপর তৈরি সমস্ত উপাদান পাঠ্য ক্ষেত্রের মাধ্যমে পাঠ্য উপাদানগুলিকে সমর্থন করে।

অটোফিল সেট আপ করুন

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

একটি সেটিংস পৃষ্ঠা যা দেখায় কিভাবে একটি শংসাপত্র প্রদানকারীকে নির্দিষ্ট করতে হয়।
চিত্র 1. একটি সেটিংস পৃষ্ঠা দেখানো হচ্ছে কিভাবে একটি শংসাপত্র প্রদানকারীকে নির্দিষ্ট করতে হয়।

বিষয়বস্তুর ধরন ব্যবহার করে আপনার পাঠ্য ক্ষেত্রে স্বতঃপূরণ যোগ করুন

একটি TextField অটোফিল-সক্ষম তা নির্দেশ করতে, ক্ষেত্রটি গ্রহণ করতে পারে এমন প্রকারগুলির সাথে ContentType শব্দার্থক সেট করুন৷ এটি অটোফিল পরিষেবাগুলিকে নির্দেশ করে যে এই নির্দিষ্ট ক্ষেত্রের সাথে কোন ধরনের ব্যবহারকারীর ডেটা প্রাসঙ্গিক হতে পারে। ব্যবহারকারীরা তাদের ব্যবহারকারীর নাম দিয়ে পূরণ করতে পারে এমন একটি TextField সেট করতে ContentType.Username ব্যবহার করুন।

TextField(
    value = textFieldValue.value,
    onValueChange = {textFieldValue.value = it},
    modifier = Modifier.semantics { contentType = ContentType.Username }
)

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

একাধিক প্রকার সহ অটোফিল ক্ষেত্র যোগ করুন

কিছু ক্ষেত্রে, আপনি আপনার TextField একাধিক ContentType গ্রহণ করতে চাইতে পারেন। উদাহরণস্বরূপ, একটি লগইন ক্ষেত্র হয় একটি ইমেল ঠিকানা বা একটি ব্যবহারকারীর নাম গ্রহণ করতে পারে। আপনি + অপারেটর দিয়ে আপনার TextField একাধিক বিষয়বস্তু প্রকার যোগ করতে পারেন।

TextField(
    value = textFieldValue.value,
    onValueChange = { textFieldValue.value = it },
    modifier = Modifier.semantics {
        contentType = ContentType.Username + ContentType.EmailAddress
    }
)

অটোফিলের সাথে সংরক্ষণ করার জন্য উপলব্ধ সমস্ত ধরণের ডেটার জন্য, ContentType রেফারেন্স দেখুন।

অটোফিল দিয়ে ডেটা পূরণ করুন

আপনি যখন একটি TextField এ একটি ContentType যোগ করেন, তখন ব্যবহারকারীদের শংসাপত্রগুলি পূরণ করতে সক্ষম হওয়ার জন্য আপনাকে আর কিছু করতে হবে না৷

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

টেক্সট টুলবারে চিপগুলি সংরক্ষিত শংসাপত্রগুলি দেখাচ্ছে৷
চিত্র 2. টেক্সট টুলবারে চিপগুলি সংরক্ষিত শংসাপত্রগুলি দেখাচ্ছে৷

নেভিগেশনের মাধ্যমে অটোফিল দিয়ে ডেটা সংরক্ষণ করুন

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

অটোফিল দিয়ে স্পষ্টভাবে ডেটা সংরক্ষণ করুন

অটোফিল সহ টেক্সট ফিল্ডের মাধ্যমে স্পষ্টভাবে নতুন শংসাপত্র সংরক্ষণ করতে, অটোফিল প্রসঙ্গটি অটোফিল ম্যানেজার দ্বারা প্রতিশ্রুতিবদ্ধ (বা বাতিল) হওয়া উচিত। স্থানীয় অটোফিল ম্যানেজার অটোফিল ফ্রেমওয়ার্কের সাথে যখনই প্রয়োজন তখন যোগাযোগ করে। আপনি যদি ব্যবহারকারীর ইনপুট করা শংসাপত্রগুলি মুছে ফেলতে চান, তাহলে এটি সংরক্ষণ না করে যেকোন মুলতুবি থাকা ডেটা মুছে ফেলতে AutofillManager.cancel কল করুন৷

নীচের স্নিপেটগুলি দেখায় কিভাবে একটি বোতাম ব্যবহার করে স্পষ্টভাবে অটোফিল দিয়ে ডেটা সংরক্ষণ করতে হয়:

  1. অটোফিল ম্যানেজার ধরে রাখতে একটি স্থানীয় ভেরিয়েবল তৈরি করুন, যা নিম্নলিখিত উপায়ে পুনরুদ্ধার করা যেতে পারে:

    val autofillManager = LocalAutofillManager.current

  2. আপনার TextField(s) , Modifier.semantics মাধ্যমে আপনার পছন্দসই বিষয়বস্তুর ধরন যোগ করুন :

    val autofillManager = LocalAutofillManager.current
    
    Column {
        TextField(
            value = textFieldValue.value,
            onValueChange = { textFieldValue.value = it },
            modifier = Modifier.semantics { contentType = ContentType.NewUsername }
        )
    
        Spacer(modifier = Modifier.height(16.dp))
    
        TextField(
            value = textFieldValue.value,
            onValueChange = { textFieldValue.value = it },
            modifier = Modifier.semantics { contentType = ContentType.NewPassword }
        )
    }

  3. একটি বোতাম ক্লিকের মাধ্যমে প্রয়োজন অনুযায়ী অটোফিল প্রসঙ্গ কমিট করুন:

    val autofillManager = LocalAutofillManager.current
    
    Column {
        TextField(
            value = textFieldValue.value,
            onValueChange = { textFieldValue.value = it },
            modifier = Modifier.semantics { contentType = ContentType.NewUsername },
        )
    
        Spacer(modifier = Modifier.height(16.dp))
    
        TextField(
            value = textFieldValue.value,
            onValueChange = { textFieldValue.value = it },
            modifier = Modifier.semantics { contentType = ContentType.NewPassword },
        )
    
        // Submit button
        Button(onClick = { autofillManager?.commit() }) { Text("Reset credentials") }
    }

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

ব্যবহারকারী যখন বোতামটি ক্লিক করেন, তখন তারা এই নীচের শীটটি তাদের নির্বাচিত শংসাপত্র প্রদানকারীর কাছে শংসাপত্রগুলি সংরক্ষণ করতে অনুরোধ করবে:

নীচের শীট ব্যবহারকারীদের পাসওয়ার্ড সংরক্ষণ করতে অনুরোধ করে।
চিত্র 3. নীচের শীট ব্যবহারকারীদের পাসওয়ার্ড সংরক্ষণ করতে অনুরোধ করে।

শক্তিশালী পাসওয়ার্ড সাজেস্ট করে অটোফিলের মাধ্যমে ডেটা সেভ করুন

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

কীবোর্ড টুলবারে শক্তিশালী পাসওয়ার্ড চিপ প্রস্তাব করুন।
চিত্র 4. কীবোর্ড টুলবারে শক্তিশালী পাসওয়ার্ড চিপের পরামর্শ।
নীচের শীট ব্যবহারকারীদের শক্তিশালী পাসওয়ার্ড ব্যবহার করতে অনুরোধ করে।
চিত্র 5. নীচের শীট ব্যবহারকারীদের শক্তিশালী পাসওয়ার্ড ব্যবহার করতে অনুরোধ করে।

সমস্যা সমাধান

"সংরক্ষণ" ব্যবহারকারীর যাত্রা শুরু করার সময়, আপনি যদি "এখন নয়" একাধিকবার ক্লিক করেন, তাহলে আপনার শংসাপত্র প্রদানকারী নীচের শীটটি আর প্রদর্শন করতে পারে না। এটিকে পুনরায় সক্ষম করতে এবং এটিকে আরও একবার প্রদর্শিত করতে, আপনাকে "এই পাসওয়ার্ডটি মনে রাখবেন?" ব্লক করা নির্দিষ্ট অ্যাপগুলিকে সরিয়ে দিতে হবে৷

নীচের শীট ব্যবহারকারীদের পাসওয়ার্ড সংরক্ষণ করতে অনুরোধ করে।
চিত্র 6. নীচের শীট ব্যবহারকারীদের পাসওয়ার্ড সংরক্ষণ করতে অনুরোধ করে।

আরও কাস্টমাইজ অটোফিল

একটি সাধারণ অটোফিল ব্যবহারকারীর যাত্রায়, যখন একটি অটোফিল-সক্ষম কম্পোনেন্ট শংসাপত্রের সাথে পপুলেট করা হয়, তখন এটি রঙ পরিবর্তন করে এবং ব্যবহারকারীকে সংকেত দিতে হাইলাইট হয়ে যায় যে অটোফিল সফলভাবে সম্পন্ন হয়েছে।

এই হাইলাইট রঙটি কাস্টমাইজ করতে, CompositionLocal ব্যবহার করুন এবং আপনি যে রঙ চান তা প্রদান করুন।

val customHighlightColor = Color.Red

CompositionLocalProvider(LocalAutofillHighlightColor provides customHighlightColor) {
    TextField(
        value = textFieldValue.value,
        onValueChange = { textFieldValue.value = it },
        modifier = Modifier.semantics { contentType = ContentType.Username }
    )
}

ডিফল্ট অটোফিল হাইলাইট রঙকে Color(0x4dffeb3b) হিসাবে সংজ্ঞায়িত করা হয়েছে।