ऐडवांस विंडोइंग में, होम सीन में किसी खास होम ऐक्टिविटी के बजाय, एक साथ दिखने वाले और इंटरैक्टिव ऐप्लिकेशन पैनल शामिल होते हैं. ऐडवांस विंडोइंग, मल्टी-विंडो टास्क के लिए, होम ऐक्टिविटी के खाली वर्शन का इस्तेमाल विज़िबिलिटी बैरियर के तौर पर करती है.
हालांकि, सेटअप विज़र्ड (एसयूडब्ल्यू) को अक्सर होम टास्क के तौर पर माना जाता है. हमारा सुझाव है कि आप एसयूडब्ल्यू को किसी पैनल के हिस्से के तौर पर कॉन्फ़िगर करें, ताकि होम के बेहतर और भरोसेमंद अनुभव दिए जा सकें.
होम विज़िबिलिटी बैरियर कॉन्फ़िगर करना
पुष्टि करें कि होम विज़िबिलिटी बैरियर ऐक्टिविटी, डायरेक्ट बूट अवेयर होम ऐक्टिविटी है. साथ ही, एसयूडब्ल्यू ऐक्टिविटी की तुलना में, होम इंटेंट फ़िल्टर के लिए इसकी प्राथमिकता ज़्यादा है.
ज़्यादा जानने के लिए, StubCarLauncher पैकेज में रेफ़रंस प्लैटफ़ॉर्म देखें.
हमारा सुझाव है कि आप इस पैकेज को अपने बिल्ड में शामिल करें और इसे सभी उपयोगकर्ताओं के लिए इंस्टॉल करें.
एसयूडब्ल्यू पैनल कॉन्फ़िगर करना
हमारा सुझाव है कि एसयूडब्ल्यू को किसी खास पैनल में रखा जाए, ताकि खास स्थितियों को मैनेज किया जा सके. साथ ही, डिफ़ॉल्ट रूट टास्क के बाहर, एसयूडब्ल्यू को किसी खास जगह पर रखा जा सके. इस पैनल की सीमाओं और लेयरिंग को कॉन्फ़िगर किया जा सकता है.
हमारा सुझाव है कि एसयूडब्ल्यू को किसी ऐसी लेयर में रखा जाए जो अपेक्षाकृत ऊंची हो, ताकि एसयूडब्ल्यू को देखा जा सके. इस पैनल में, _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>
अगर सेटअप की प्रोसेस के दौरान, एसयूडब्ल्यू पैनल नहीं दिखता है, तो कंट्रोलर, एसयूडब्ल्यू ऐक्टिविटी को साफ़ तौर पर होम सिग्नल भेजता है. इससे यह जानकारी मिलती है कि एसयूडब्ल्यू छिपा हुआ है. ऐसा, आम तौर पर एसयूडब्ल्यू ऐप्लिकेशन के साथ होता है.
इससे उन स्थितियों को हल किया जाता है जिनमें एसयूडब्ल्यू को पता होता है कि उपयोगकर्ता, होम इंटेंट का इस्तेमाल करके एसयूडब्ल्यू को छिपाने की कोशिश कर रहा है. हालांकि, उसके पास सिस्टम से होम सिग्नल का ऐक्सेस नहीं होता.
अगर आपको एसयूडब्ल्यू के डिज़ाइन के लिए कोई अलग उम्मीद है, तो SetupPanelController को किसी कस्टम कंट्रोलर से बदलकर, अपनी पसंद के मुताबिक व्यवहार लागू किया जा सकता है.