কাস্টম DeepLinkMatcher ক্লাস তৈরি করা

প্রদান করা ম্যাচিং টুল আপনার ব্যবহারের ক্ষেত্রে যথেষ্ট না হলে, DeepLinkMatcher ক্লাস এক্সটেন্ড করে আপনি নিজের টুল তৈরি করতে পারবেন।

DeepLinkMatcher<T, R> এক্সটেন্ড করার সময়, আপনাকে অবশ্যই দুটি টাইপ আর্গুমেন্ট উল্লেখ করতে হবে: গন্তব্য নেভিগেশন কী টাইপ (T : Any) এবং ম্যাচ ফলাফল টাইপ (R : DeepLinkMatcher.MatchResult<T>)। আপনার ম্যাচারের কাস্টম ফলাফল র‍্যাঙ্কিং বা অতিরিক্ত মেটাডেটার প্রয়োজন না হলে, দ্বিতীয় টাইপ আর্গুমেন্ট হিসেবে DeepLinkMatcher.MatchResult<T> ব্যবহার করুন।

যেমন, এখানে TelDeepLinkMatcher-এর একটি প্রাথমিক প্রয়োগ দেখানো হয়েছে যা tel URI (যেমন tel:5550100)-এর সাথে কাজ করে। যেহেতু tel URI অস্বচ্ছ, UriDeepLinkMatcher সেগুলির সাথে কাজ করে না:

কাস্টম MatchResultটি ক্লাস র‍্যাঙ্ক করুন

আপনার কাস্টম ম্যাচারের থেকে পাওয়া ম্যাচের ফলাফল তুলনা করার কোনও অর্থপূর্ণ উপায় থাকলে, আপনাকে DeepLinkMatcher.MatchResult এক্সটেন্ড করতে হবে এবং ফলাফল র‍্যাঙ্ক করার জন্য compareTo পদ্ধতি ওভাররাইড করতে হবে।

আপনি কাস্টম MatchResult সাবক্লাস তৈরি করলে, আপনার ম্যাচারের ক্লাস ডিক্লারেশন আপডেট করুন যাতে সাবক্লাসকে দ্বিতীয় টাইপ প্যারামিটার R (যেমন class TelDeepLinkMatcher : DeepLinkMatcher<DialerKey, TelMatchResult>()) হিসেবে নির্দিষ্ট করা যায়। এর ফলে, আনচেকড ডাউনকাস্টিং ছাড়াই কলাররা আপনার কাস্টম ফলাফল প্রপার্টি অ্যাক্সেস করতে পারবেন।

যেমন, TelDeepLinkMatcher-এ ওয়াইল্ডকার্ড প্যাটার্ন ম্যাচিংয়ের জন্য, আপনি TelMatchResult প্রয়োগ করতে পারেন যাতে ওয়াইল্ডকার্ড ম্যাচের চেয়ে সম্পূর্ণ ম্যাচ বেশি র‍্যাঙ্ক করে। ম্যাচার withBackStack-এ র‍্যাপ করা থাকলে, তুলনা করার আগে WrappedMatchResult আনর‍্যাপ করুন যাতে অন্তর্নিহিত ম্যাচ ফলাফলের সাথে অগ্রাধিকার মূল্যায়ন করা যায়: