diff options
author | Quang Luong <qal@google.com> | 2021-06-24 15:12:38 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2021-06-24 15:12:38 +0000 |
commit | 4712a5f77cb25322f5f8fbc45f8929eca347c9cd (patch) | |
tree | ede8adc5308acb9d23e0812808bbdb91a8685fad | |
parent | 4fd56e507dd1c921e75a28580a1ed875e42b4fcd (diff) | |
parent | ada33f8f4420434cf36b82ae5b3f553102997b2a (diff) | |
download | wifi-4712a5f77cb25322f5f8fbc45f8929eca347c9cd.tar.gz |
Merge "Add WifiEntry#isDefaultNetwork()" into sc-dev
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(); + } } |