summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com>2023-09-22 03:40:41 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-09-22 03:40:41 +0000
commit962d1f1374804dcbfea194a6372dacd0ddacd2b5 (patch)
tree74f43418f91d4e4523e2667887436f7ab9254ba6
parent4b110d51fc3a9fb314e1558a393b20993e376b53 (diff)
parent552b2d4897c9225f360a25ca3828f4dfa7f7c1db (diff)
downloadwifi-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.java13
-rw-r--r--libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java48
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)