summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuang Luong <qal@google.com>2021-06-24 15:12:38 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2021-06-24 15:12:38 +0000
commit4712a5f77cb25322f5f8fbc45f8929eca347c9cd (patch)
treeede8adc5308acb9d23e0812808bbdb91a8685fad
parent4fd56e507dd1c921e75a28580a1ed875e42b4fcd (diff)
parentada33f8f4420434cf36b82ae5b3f553102997b2a (diff)
downloadwifi-4712a5f77cb25322f5f8fbc45f8929eca347c9cd.tar.gz
Merge "Add WifiEntry#isDefaultNetwork()" into sc-dev
-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 e312928a6..d76a80a0a 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java
@@ -319,6 +319,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 54804b621..858075e1c 100644
--- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
+++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
@@ -1210,4 +1210,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();
+ }
}