diff options
author | Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> | 2023-09-22 03:40:41 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-09-22 03:40:41 +0000 |
commit | 962d1f1374804dcbfea194a6372dacd0ddacd2b5 (patch) | |
tree | 74f43418f91d4e4523e2667887436f7ab9254ba6 | |
parent | 4b110d51fc3a9fb314e1558a393b20993e376b53 (diff) | |
parent | 552b2d4897c9225f360a25ca3828f4dfa7f7c1db (diff) | |
download | wifi-962d1f1374804dcbfea194a6372dacd0ddacd2b5.tar.gz |
Merge "Remove known network and hotspot network entries from handleServiceDisconnected." into udc-qpr-dev am: 552b2d4897
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/opt/net/wifi/+/24830555
Change-Id: I434459945fd204e8032dd070582bec18e5622ba4
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java | 13 | ||||
-rw-r--r-- | libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java | 48 |
2 files changed, 61 insertions, 0 deletions
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java index bb52cf659..4abffbaf8 100644 --- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java +++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java @@ -520,6 +520,19 @@ public class WifiPickerTracker extends BaseWifiTracker { } } + @TargetApi(VERSION_CODES.UPSIDE_DOWN_CAKE) + @WorkerThread + @Override + protected void handleServiceDisconnected() { + if (mInjector.isSharedConnectivityFeatureEnabled()) { + mKnownNetworkDataCache.clear(); + mHotspotNetworkDataCache.clear(); + mKnownNetworkEntryCache.clear(); + mHotspotNetworkEntryCache.clear(); + updateWifiEntries(); + } + } + /** * Update the list returned by getWifiEntries() with the current states of the entry caches. */ diff --git a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java index 737e46500..ee6c4199c 100644 --- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java +++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java @@ -2246,6 +2246,54 @@ public class WifiPickerTrackerTest { } @Test + public void testSharedConnectivityManager_onServiceDisconnected_networksCleared() { + final KnownNetwork testKnownNetwork = new KnownNetwork.Builder() + .setNetworkSource(KnownNetwork.NETWORK_SOURCE_NEARBY_SELF) + .setSsid("ssid") + .addSecurityType(SECURITY_TYPE_PSK) + .addSecurityType(SECURITY_TYPE_SAE) + .setNetworkProviderInfo(new NetworkProviderInfo + .Builder("My Phone", "Pixel 7") + .setDeviceType(NetworkProviderInfo.DEVICE_TYPE_PHONE) + .setBatteryPercentage(100) + .setConnectionStrength(3) + .build()) + .build(); + when(mMockSharedConnectivityManager.getKnownNetworks()).thenReturn( + Collections.singletonList(testKnownNetwork)); + when(mMockWifiManager.getScanResults()).thenReturn( + Collections.singletonList(buildScanResult("ssid", "bssid", START_MILLIS, + "[PSK/SAE]"))); + final HotspotNetwork testHotspotNetwork = new HotspotNetwork.Builder() + .setDeviceId(1) + .setNetworkProviderInfo(new NetworkProviderInfo + .Builder("My Phone", "Pixel 7") + .setDeviceType(NetworkProviderInfo.DEVICE_TYPE_PHONE) + .setBatteryPercentage(100) + .setConnectionStrength(3) + .build()) + .setHostNetworkType(HotspotNetwork.NETWORK_TYPE_CELLULAR) + .setNetworkName("Google Fi") + .build(); + when(mMockSharedConnectivityManager.getHotspotNetworks()).thenReturn( + Collections.singletonList(testHotspotNetwork)); + final WifiPickerTracker wifiPickerTracker = createTestWifiPickerTracker(); + wifiPickerTracker.onStart(); + mTestLooper.dispatchAll(); + verify(mMockSharedConnectivityManager).registerCallback(any(), + mSharedConnectivityCallbackCaptor.capture()); + mSharedConnectivityCallbackCaptor.getValue().onServiceConnected(); + mTestLooper.dispatchAll(); + + mSharedConnectivityCallbackCaptor.getValue().onServiceDisconnected(); + + assertThat(wifiPickerTracker.getWifiEntries().stream().filter( + entry -> entry instanceof KnownNetworkEntry).toList()).isEmpty(); + assertThat(wifiPickerTracker.getWifiEntries().stream().filter( + entry -> entry instanceof HotspotNetworkEntry).toList()).isEmpty(); + } + + @Test public void testKnownNetworks_noMatchingScanResult_entryNotIncluded() { final KnownNetwork testKnownNetwork = new KnownNetwork.Builder() .setNetworkSource(KnownNetwork.NETWORK_SOURCE_NEARBY_SELF) |