Fix automatically directing the user to the captive portal in Wi-Fi Slice
The feature failed after the CL "Force the adapter to rebind cards with
a toggle".
Because toggle slices have been forced to rebind after starting another
activity and when any slice is updating. This unpins Wi-Fi slice and
stops WifiScanWorker and then clears the saved clicked network.
Solution:
1. Change ConnectToWifiHandler from activity to receiver and send
broadcasts to it with FLAG_RECEIVER_FOREGROUND, so Wi-Fi slice won't
be forced to rebind.
2. Seperate Wi-Fi scan worker and contextual Wi-Fi scan worker. Keep the
original logic for the generic one, and then add the logic below to
the contextual one.
3. Do not clear the saved clicked network when slice is unppined because
it happens frequently in contextual homepage.
4. Introduce a static long in ContextualWifiScanWorker that updates once
in every visible UI session. A session is when the screen is visible
to user.
5. Use session token to determine whether auto-starting captive portal
is needed.
Fixes: 128056349
Test: robotest, visual in homepage and network panel
Change-Id: I9e03c379806e124fa7253b2a635574b2433f6afc
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 8e62c45..3b53d32 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -2705,10 +2705,8 @@
</intent-filter>
</activity>
- <activity
+ <receiver
android:name=".wifi.slice.ConnectToWifiHandler"
- android:theme="@android:style/Theme.NoDisplay"
- android:excludeFromRecents="true"
android:exported="false" />
<activity