diff options
author | Matt Walliser <mattwalliser@google.com> | 2023-11-01 20:44:47 +0000 |
---|---|---|
committer | Matt Walliser <mattwalliser@google.com> | 2023-11-10 23:02:48 +0000 |
commit | 5b1ff2231919fffdadd13b3580eea62e731be9db (patch) | |
tree | e3b9a7ee21444d6577e691a10cb3b74046ed7f94 | |
parent | a5afc91030a5028ec4c4e988e087446757a95b33 (diff) | |
download | wifi-5b1ff2231919fffdadd13b3580eea62e731be9db.tar.gz |
Restore connecting state for hotspot network on service connected.
Bug: 308475152
Test: atest com.android.wifitrackerlib
Change-Id: I447225204864897ddd44b7bc5db0b1f38270967a
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 |