অ্যাডভান্সড উইন্ডোয়িং-এ, হোম সিনটি একটি নির্দিষ্ট হোম অ্যাক্টিভিটির পরিবর্তে একাধিক, একই সাথে দৃশ্যমান এবং ইন্টারেক্টিভ অ্যাপ প্যানেল দ্বারা গঠিত হয়। মাল্টি-উইন্ডো টাস্কের জন্য দৃশ্যমানতার প্রতিবন্ধক হিসেবে অ্যাডভান্সড উইন্ডোয়িং হোম অ্যাক্টিভিটির একটি ফাঁকা সংস্করণ ব্যবহার করে।
যদিও সেটআপ উইজার্ড (SUW)-কে প্রায়শই একটি হোম টাস্ক হিসেবে গণ্য করা হয়, আমরা আরও সামঞ্জস্যপূর্ণ এবং নির্ভরযোগ্য হোম অভিজ্ঞতা তৈরির জন্য SUW-কে একটি প্যানেলের অংশ হিসেবে কনফিগার করার পরামর্শ দিই।
বাড়ির দৃশ্যমানতার প্রতিবন্ধকতা কনফিগার করুন
নিশ্চিত করুন যে হোম ভিজিবিলিটি ব্যারিয়ার অ্যাক্টিভিটিটি একটি সরাসরি বুট-অ্যাওয়্যার হোম অ্যাক্টিভিটি, যার হোম ইনটেন্ট ফিল্টারের জন্য SUW অ্যাক্টিভিটির চেয়ে উচ্চতর অগ্রাধিকার রয়েছে।
আরও জানতে, StubCarLauncher প্যাকেজে থাকা রেফারেন্স প্ল্যাটফর্মটি দেখুন। আমরা আপনাকে আপনার বিল্ডগুলিতে এই প্যাকেজটি অন্তর্ভুক্ত করতে এবং সকল ব্যবহারকারীর জন্য এটি ইনস্টল করার পরামর্শ দিই।
SUW প্যানেল কনফিগার করুন
বিশেষ পরিস্থিতি সামাল দিতে এবং ডিফল্ট রুট টাস্কের বাইরে নির্দিষ্ট স্থানে স্থাপনের সুযোগ দিতে আমরা SUW-কে একটি ডেডিকেটেড প্যানেলে রাখার পরামর্শ দিই। আপনি এই প্যানেলের সীমানা এবং স্তরবিন্যাস কনফিগার করতে পারেন।
যাতে SUW দেখতে বাধাগ্রস্ত না হয়, সেজন্য আমরা এটিকে একটি অপেক্ষাকৃত উঁচু লেয়ারে রাখার পরামর্শ দিই। এই প্যানেলটিকে অবশ্যই যথাক্রমে _System_EnterSuwEvent এবং _System_ExitSuwEvent সিস্টেম ইভেন্টগুলো প্রদর্শন ও গোপন করতে হবে। এই নমুনা কনফিগারেশনটি বিবেচনা করুন:
<TaskPanel id="suw_panel" defaultVariant="@id/closed" displayId="0" controller="@xml/suw_panel_controller">
<TaskBehavior newTaskLaunchPolicy="REPARENT_TO_SOURCE"/>
<Variant id="@+id/base">
<Layer layer="@integer/suw_panel_layer"/>
<Bounds left="0" top="0" width="100%" height="100%" />
<Background color="@color/suw_panel_background_color" />
</Variant>
<Variant id="@+id/opened" parent="@id/base">
<Visibility isVisible="true"/>
</Variant>
<Variant id="@+id/closed" parent="@id/base">
<Visibility isVisible="false"/>
</Variant>
<Transitions>
<Transition onEvent="_System_TaskOpenEvent" onEventTokens="panelId=suw_panel" toVariant="@id/opened"/>
<Transition onEvent="_System_TaskPanelEmptyEvent" onEventTokens="panelId=suw_panel" toVariant="@id/closed"/>
<Transition onEvent="_System_EnterSuwEvent" toVariant="@id/opened"/>
<Transition onEvent="_System_ExitSuwEvent" toVariant="@id/closed"/>
</Transitions>
</TaskPanel>
...
<Controller id="suw_panel_controller">
<ControllerName>
com.android.systemui.car.wm.scalableui.panel.controller.SetupPanelController
</ControllerName>
<PersistentPackage>com.android.car.mysetuppackage</PersistentPackage>
</Controller>
সাধারণ SUW অ্যাপের সাথে সামঞ্জস্য রাখতে, সেটআপ চলাকালীন যদি SUW প্যানেলটি অদৃশ্য হয়ে যায়, তাহলে কন্ট্রোলারটি SUW অ্যাক্টিভিটিতে একটি সুস্পষ্ট হোম সিগন্যাল পাঠিয়ে জানিয়ে দেয় যে SUW লুকানো হয়েছে।
এটি এমন পরিস্থিতিগুলোর সমাধান করে, যেখানে SUW জানত যে ব্যবহারকারী হোম ইন্টেন্টটি গ্রহণ করে SUW-কে লুকানোর চেষ্টা করছে, কিন্তু সিস্টেম থেকে হোম সিগন্যালে তার কোনো অ্যাক্সেস ছিল না।
আপনার SUW ডিজাইন নিয়ে যদি ভিন্ন প্রত্যাশা থাকে, তবে SetupPanelController একটি কাস্টম কন্ট্রোলার দিয়ে প্রতিস্থাপন করে আপনি পছন্দসই আচরণটি বাস্তবায়ন করতে পারেন।