summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuang Luong <qal@google.com>2021-06-23 16:06:04 -0700
committerQuang Luong <qal@google.com>2021-06-23 16:06:04 -0700
commitada33f8f4420434cf36b82ae5b3f553102997b2a (patch)
tree247704514e307bc57f5ff063cc6a8413f2e48a43
parent63d7fcc932a930e9633650527a5675f000746ef2 (diff)
downloadwifi-ada33f8f4420434cf36b82ae5b3f553102997b2a.tar.gz
Add WifiEntry#isDefaultNetwork()
Add a method WifiEntry#isDefaultNetwork() to return whether or not the WifiEntry is being used as the default route or not. Bug: 191090765 Test: atest WifiPickerTrackerTest Change-Id: I76c985c32917dd658d0cd544a1aa4b8c4b554c66
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java8
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java3
-rw-r--r--libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java34
3 files changed, 45 insertions, 0 deletions
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java
index e194adcb3..6ec5d8ba3 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java
@@ -342,6 +342,14 @@ public class WifiEntry implements Comparable<WifiEntry> {
return mIsValidated;
}
+ /**
+ * Returns whether this network is the default network or not (i.e. this network is the one
+ * currently being used to provide internet connection).
+ */
+ public boolean isDefaultNetwork() {
+ return mIsDefaultNetwork;
+ }
+
/** Returns the speed value of the network defined by the SPEED constants */
@Speed
public int getSpeed() {
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java
index aa65ca4ad..a479b0292 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java
@@ -316,6 +316,9 @@ public class WifiPickerTracker extends BaseWifiTracker {
mConnectedWifiEntry.setIsLowQuality(mIsWifiValidated && mIsCellDefaultRoute);
}
if (mMergedCarrierEntry != null) {
+ if (mMergedCarrierEntry.getConnectedState() == CONNECTED_STATE_CONNECTED) {
+ mMergedCarrierEntry.setIsDefaultNetwork(mIsWifiDefaultRoute);
+ }
mMergedCarrierEntry.updateIsCellDefaultRoute(mIsCellDefaultRoute);
}
}
diff --git a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
index 76408a8f4..2819fcfa3 100644
--- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
+++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
@@ -1180,4 +1180,38 @@ public class WifiPickerTrackerTest {
// 1 open config + 2 split configs with same network ID should be treated as 2 networks.
assertThat(wifiPickerTracker.getNumSavedNetworks()).isEqualTo(2);
}
+
+ /**
+ * Tests that the MergedCarrierEntry is the default network when it is connected and Wifi is
+ * the default network.
+ */
+ @Test
+ public void testGetMergedCarrierEntry_wifiIsDefault_entryIsDefaultNetwork() {
+ final int subId = 1;
+ when(mMockWifiInfo.isCarrierMerged()).thenReturn(true);
+ when(mMockWifiInfo.getSubscriptionId()).thenReturn(subId);
+ when(mMockNetworkInfo.getDetailedState()).thenReturn(NetworkInfo.DetailedState.CONNECTED);
+ final WifiPickerTracker wifiPickerTracker = createTestWifiPickerTracker();
+ wifiPickerTracker.onStart();
+ mTestLooper.dispatchAll();
+ verify(mMockContext).registerReceiver(mBroadcastReceiverCaptor.capture(),
+ any(), any(), any());
+ final Intent intent = new Intent(TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED);
+ intent.putExtra("subscription", subId);
+ mBroadcastReceiverCaptor.getValue().onReceive(mMockContext, intent);
+ verify(mMockConnectivityManager)
+ .registerDefaultNetworkCallback(mDefaultNetworkCallbackCaptor.capture(), any());
+ MergedCarrierEntry mergedCarrierEntry = wifiPickerTracker.getMergedCarrierEntry();
+ assertThat(mergedCarrierEntry.getConnectedState())
+ .isEqualTo(WifiEntry.CONNECTED_STATE_CONNECTED);
+ // Wifi isn't default yet, so isDefaultNetwork returns false
+ assertThat(mergedCarrierEntry.isDefaultNetwork()).isFalse();
+
+ mDefaultNetworkCallbackCaptor.getValue().onCapabilitiesChanged(mMockNetwork,
+ new NetworkCapabilities.Builder()
+ .addTransportType(NetworkCapabilities.TRANSPORT_WIFI).build());
+
+ // Now Wifi is default, so isDefaultNetwork returns true
+ assertThat(mergedCarrierEntry.isDefaultNetwork()).isTrue();
+ }
}