summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Walliser <mattwalliser@google.com>2023-11-01 20:44:47 +0000
committerMatt Walliser <mattwalliser@google.com>2023-11-10 23:02:48 +0000
commit5b1ff2231919fffdadd13b3580eea62e731be9db (patch)
treee3b9a7ee21444d6577e691a10cb3b74046ed7f94
parenta5afc91030a5028ec4c4e988e087446757a95b33 (diff)
downloadwifi-5b1ff2231919fffdadd13b3580eea62e731be9db.tar.gz
Restore connecting state for hotspot network on service connected.
Bug: 308475152 Test: atest com.android.wifitrackerlib Change-Id: I447225204864897ddd44b7bc5db0b1f38270967a
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/HotspotNetworkEntry.java10
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java5
-rw-r--r--libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/HotspotNetworkEntryTest.java20
-rw-r--r--libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java1
4 files changed, 33 insertions, 3 deletions
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/HotspotNetworkEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/HotspotNetworkEntry.java
index bc5d4cdd8..7eb225b27 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/HotspotNetworkEntry.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/HotspotNetworkEntry.java
@@ -401,7 +401,6 @@ public class HotspotNetworkEntry extends WifiEntry {
* @param status HotspotNetworkConnectionStatus#ConnectionStatus enum.
*/
public void onConnectionStatusChanged(@ConnectionStatus int status) {
- if (mConnectCallback == null) return;
switch (status) {
case HotspotNetworkConnectionStatus.CONNECTION_STATUS_ENABLING_HOTSPOT:
mCalledConnect = true;
@@ -415,8 +414,13 @@ public class HotspotNetworkEntry extends WifiEntry {
case HotspotNetworkConnectionStatus.CONNECTION_STATUS_ENABLING_HOTSPOT_FAILED:
case HotspotNetworkConnectionStatus.CONNECTION_STATUS_ENABLING_HOTSPOT_TIMEOUT:
case HotspotNetworkConnectionStatus.CONNECTION_STATUS_CONNECT_TO_HOTSPOT_FAILED:
- mCallbackHandler.post(() -> mConnectCallback.onConnectResult(
- ConnectCallback.CONNECT_STATUS_FAILURE_UNKNOWN));
+ mCallbackHandler.post(() -> {
+ final ConnectCallback connectCallback = mConnectCallback;
+ if (connectCallback != null) {
+ connectCallback.onConnectResult(
+ ConnectCallback.CONNECT_STATUS_FAILURE_UNKNOWN);
+ }
+ });
mCalledConnect = false;
notifyOnUpdated();
break;
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java
index 6401f094f..c6de060a7 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java
@@ -512,6 +512,11 @@ public class WifiPickerTracker extends BaseWifiTracker {
mHotspotNetworkDataCache.addAll(mSharedConnectivityManager.getHotspotNetworks());
updateKnownNetworkEntryScans(mScanResultUpdater.getScanResults());
updateHotspotNetworkEntries();
+ HotspotNetworkConnectionStatus status =
+ mSharedConnectivityManager.getHotspotNetworkConnectionStatus();
+ if (status != null) {
+ handleHotspotNetworkConnectionStatusChanged(status);
+ }
updateWifiEntries();
}
}
diff --git a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/HotspotNetworkEntryTest.java b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/HotspotNetworkEntryTest.java
index 235a70e88..534646066 100644
--- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/HotspotNetworkEntryTest.java
+++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/HotspotNetworkEntryTest.java
@@ -632,4 +632,24 @@ public class HotspotNetworkEntryTest {
verify(mMockDisconnectCallback)
.onDisconnectResult(WifiEntry.DisconnectCallback.DISCONNECT_STATUS_FAILURE_UNKNOWN);
}
+
+ @Test
+ public void testOnConnectionStatusChanged_withoutConnect_updatesString() {
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager, TEST_HOTSPOT_NETWORK_DATA);
+
+ entry.setListener(mMockListener);
+ entry.onConnectionStatusChanged(
+ HotspotNetworkConnectionStatus.CONNECTION_STATUS_ENABLING_HOTSPOT);
+ mTestLooper.dispatchAll();
+
+ assertThat(entry.getSummary()).isEqualTo("Connecting…");
+
+ entry.onConnectionStatusChanged(
+ HotspotNetworkConnectionStatus.CONNECTION_STATUS_UNKNOWN_ERROR);
+ mTestLooper.dispatchAll();
+
+ assertThat(entry.getSummary()).isNotEqualTo("Connecting…");
+ }
}
diff --git a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
index dcb594fd1..0b70fed7b 100644
--- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
+++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
@@ -2387,6 +2387,7 @@ public class WifiPickerTrackerTest {
verify(mMockSharedConnectivityManager).getKnownNetworks();
verify(mMockSharedConnectivityManager).getHotspotNetworks();
+ verify(mMockSharedConnectivityManager).getHotspotNetworkConnectionStatus();
}
@Test