Merge "[Provider Model] Simplify filtering WiFi list function" into sc-v2-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
535795b36d
@@ -86,6 +86,7 @@ import com.android.systemui.util.settings.GlobalSettings;
|
||||
import com.android.wifitrackerlib.MergedCarrierEntry;
|
||||
import com.android.wifitrackerlib.WifiEntry;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -98,8 +99,10 @@ import java.util.stream.Stream;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
public class InternetDialogController implements WifiEntry.DisconnectCallback,
|
||||
AccessPointController.AccessPointCallback {
|
||||
/**
|
||||
* Controller for Internet Dialog.
|
||||
*/
|
||||
public class InternetDialogController implements AccessPointController.AccessPointCallback {
|
||||
|
||||
private static final String TAG = "InternetDialogController";
|
||||
private static final String ACTION_NETWORK_PROVIDER_SETTINGS =
|
||||
@@ -881,20 +884,6 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
|
||||
return;
|
||||
}
|
||||
|
||||
boolean hasConnectedWifi = false;
|
||||
final int accessPointSize = accessPoints.size();
|
||||
for (int i = 0; i < accessPointSize; i++) {
|
||||
WifiEntry wifiEntry = accessPoints.get(i);
|
||||
if (wifiEntry.isDefaultNetwork() && wifiEntry.hasInternetAccess()) {
|
||||
mConnectedEntry = wifiEntry;
|
||||
hasConnectedWifi = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!hasConnectedWifi) {
|
||||
mConnectedEntry = null;
|
||||
}
|
||||
|
||||
int count = MAX_WIFI_ENTRY_COUNT;
|
||||
if (mHasEthernet) {
|
||||
count -= 1;
|
||||
@@ -902,15 +891,22 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
|
||||
if (hasActiveSubId()) {
|
||||
count -= 1;
|
||||
}
|
||||
if (hasConnectedWifi) {
|
||||
count -= 1;
|
||||
if (count > accessPoints.size()) {
|
||||
count = accessPoints.size();
|
||||
}
|
||||
final List<WifiEntry> wifiEntries = accessPoints.stream()
|
||||
.filter(wifiEntry -> (!wifiEntry.isDefaultNetwork()
|
||||
|| !wifiEntry.hasInternetAccess()))
|
||||
.limit(count)
|
||||
.collect(Collectors.toList());
|
||||
mWifiEntriesCount = wifiEntries == null ? 0 : wifiEntries.size();
|
||||
|
||||
WifiEntry connectedEntry = null;
|
||||
final List<WifiEntry> wifiEntries = new ArrayList<>();
|
||||
for (int i = 0; i < count; i++) {
|
||||
WifiEntry entry = accessPoints.get(i);
|
||||
if (connectedEntry == null && entry.isDefaultNetwork() && entry.hasInternetAccess()) {
|
||||
connectedEntry = entry;
|
||||
} else {
|
||||
wifiEntries.add(entry);
|
||||
}
|
||||
}
|
||||
mConnectedEntry = connectedEntry;
|
||||
mWifiEntriesCount = wifiEntries.size();
|
||||
|
||||
if (mCallback != null) {
|
||||
mCallback.onAccessPointsChanged(wifiEntries, mConnectedEntry);
|
||||
@@ -921,10 +917,6 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
|
||||
public void onSettingsActivityTriggered(Intent settingsIntent) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisconnectResult(int status) {
|
||||
}
|
||||
|
||||
private class InternetTelephonyCallback extends TelephonyCallback implements
|
||||
TelephonyCallback.DataConnectionStateListener,
|
||||
TelephonyCallback.DisplayInfoListener,
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.android.systemui.qs.tiles.dialog;
|
||||
|
||||
import static android.provider.Settings.Global.AIRPLANE_MODE_ON;
|
||||
|
||||
import static com.android.systemui.qs.tiles.dialog.InternetDialogController.TOAST_PARAMS_HORIZONTAL_WEIGHT;
|
||||
import static com.android.systemui.qs.tiles.dialog.InternetDialogController.TOAST_PARAMS_VERTICAL_WEIGHT;
|
||||
|
||||
@@ -19,7 +21,6 @@ import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.animation.Animator;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.PixelFormat;
|
||||
import android.graphics.drawable.Drawable;
|
||||
@@ -37,7 +38,6 @@ import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.test.filters.SmallTest;
|
||||
|
||||
import com.android.internal.logging.UiEventLogger;
|
||||
@@ -47,7 +47,6 @@ import com.android.systemui.R;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.animation.DialogLaunchAnimator;
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.plugins.ActivityStarter;
|
||||
import com.android.systemui.statusbar.connectivity.AccessPointController;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
@@ -70,7 +69,6 @@ import org.mockito.MockitoAnnotations;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
@SmallTest
|
||||
@RunWith(AndroidTestingRunner.class)
|
||||
@@ -78,8 +76,6 @@ import java.util.concurrent.Executor;
|
||||
public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
|
||||
private static final int SUB_ID = 1;
|
||||
private static final String CONNECTED_TITLE = "Connected Wi-Fi Title";
|
||||
private static final String CONNECTED_SUMMARY = "Connected Wi-Fi Summary";
|
||||
|
||||
//SystemUIToast
|
||||
private static final int GRAVITY_FLAGS = Gravity.FILL_HORIZONTAL | Gravity.FILL_VERTICAL;
|
||||
@@ -142,7 +138,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
private DialogLaunchAnimator mDialogLaunchAnimator;
|
||||
|
||||
private TestableResources mTestableResources;
|
||||
private MockInternetDialogController mInternetDialogController;
|
||||
private InternetDialogController mInternetDialogController;
|
||||
private FakeExecutor mExecutor = new FakeExecutor(new FakeSystemClock());
|
||||
private List<WifiEntry> mAccessPoints = new ArrayList<>();
|
||||
private List<WifiEntry> mWifiEntries = new ArrayList<>();
|
||||
@@ -170,7 +166,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
when(mSystemUIToast.getGravity()).thenReturn(GRAVITY_FLAGS);
|
||||
when(mSystemUIToast.getInAnimation()).thenReturn(mAnimator);
|
||||
|
||||
mInternetDialogController = new MockInternetDialogController(mContext,
|
||||
mInternetDialogController = new InternetDialogController(mContext,
|
||||
mock(UiEventLogger.class), mock(ActivityStarter.class), mAccessPointController,
|
||||
mSubscriptionManager, mTelephonyManager, mWifiManager,
|
||||
mock(ConnectivityManager.class), mHandler, mExecutor, mBroadcastDispatcher,
|
||||
@@ -225,7 +221,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
|
||||
@Test
|
||||
public void getDialogTitleText_withAirplaneModeOn_returnAirplaneMode() {
|
||||
mInternetDialogController.setAirplaneModeEnabled(true);
|
||||
fakeAirplaneModeEnabled(true);
|
||||
|
||||
assertTrue(TextUtils.equals(mInternetDialogController.getDialogTitleText(),
|
||||
getResourcesString("airplane_mode")));
|
||||
@@ -233,7 +229,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
|
||||
@Test
|
||||
public void getDialogTitleText_withAirplaneModeOff_returnInternet() {
|
||||
mInternetDialogController.setAirplaneModeEnabled(false);
|
||||
fakeAirplaneModeEnabled(false);
|
||||
|
||||
assertTrue(TextUtils.equals(mInternetDialogController.getDialogTitleText(),
|
||||
getResourcesString("quick_settings_internet_label")));
|
||||
@@ -241,14 +237,14 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
|
||||
@Test
|
||||
public void getSubtitleText_withAirplaneModeOn_returnNull() {
|
||||
mInternetDialogController.setAirplaneModeEnabled(true);
|
||||
fakeAirplaneModeEnabled(true);
|
||||
|
||||
assertThat(mInternetDialogController.getSubtitleText(false)).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSubtitleText_withWifiOff_returnWifiIsOff() {
|
||||
mInternetDialogController.setAirplaneModeEnabled(false);
|
||||
fakeAirplaneModeEnabled(false);
|
||||
when(mWifiManager.isWifiEnabled()).thenReturn(false);
|
||||
|
||||
assertThat(mInternetDialogController.getSubtitleText(false))
|
||||
@@ -263,7 +259,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
|
||||
@Test
|
||||
public void getSubtitleText_withNoWifiEntry_returnSearchWifi() {
|
||||
mInternetDialogController.setAirplaneModeEnabled(false);
|
||||
fakeAirplaneModeEnabled(false);
|
||||
when(mWifiManager.isWifiEnabled()).thenReturn(true);
|
||||
mInternetDialogController.onAccessPointsChanged(null /* accessPoints */);
|
||||
|
||||
@@ -280,7 +276,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
@Test
|
||||
public void getSubtitleText_withWifiEntry_returnTapToConnect() {
|
||||
// The preconditions WiFi Entries is already in setUp()
|
||||
mInternetDialogController.setAirplaneModeEnabled(false);
|
||||
fakeAirplaneModeEnabled(false);
|
||||
when(mWifiManager.isWifiEnabled()).thenReturn(true);
|
||||
|
||||
assertThat(mInternetDialogController.getSubtitleText(false))
|
||||
@@ -295,7 +291,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
|
||||
@Test
|
||||
public void getSubtitleText_deviceLockedWithWifiOn_returnUnlockToViewNetworks() {
|
||||
mInternetDialogController.setAirplaneModeEnabled(false);
|
||||
fakeAirplaneModeEnabled(false);
|
||||
when(mWifiManager.isWifiEnabled()).thenReturn(true);
|
||||
when(mKeyguardStateController.isUnlocked()).thenReturn(false);
|
||||
|
||||
@@ -305,7 +301,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
|
||||
@Test
|
||||
public void getSubtitleText_withNoService_returnNoNetworksAvailable() {
|
||||
mInternetDialogController.setAirplaneModeEnabled(false);
|
||||
fakeAirplaneModeEnabled(false);
|
||||
when(mWifiManager.isWifiEnabled()).thenReturn(true);
|
||||
mInternetDialogController.onAccessPointsChanged(null /* accessPoints */);
|
||||
|
||||
@@ -319,7 +315,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
|
||||
@Test
|
||||
public void getSubtitleText_withMobileDataDisabled_returnNoOtherAvailable() {
|
||||
mInternetDialogController.setAirplaneModeEnabled(false);
|
||||
fakeAirplaneModeEnabled(false);
|
||||
when(mWifiManager.isWifiEnabled()).thenReturn(true);
|
||||
mInternetDialogController.onAccessPointsChanged(null /* accessPoints */);
|
||||
|
||||
@@ -420,7 +416,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
@Test
|
||||
public void onAccessPointsChanged_oneConnectedEntry_callbackConnectedEntryOnly() {
|
||||
reset(mInternetDialogCallback);
|
||||
mInternetDialogController.setAirplaneModeEnabled(true);
|
||||
fakeAirplaneModeEnabled(true);
|
||||
mAccessPoints.clear();
|
||||
mAccessPoints.add(mConnectedEntry);
|
||||
|
||||
@@ -433,7 +429,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
@Test
|
||||
public void onAccessPointsChanged_noConnectedEntryAndOneOther_callbackWifiEntriesOnly() {
|
||||
reset(mInternetDialogCallback);
|
||||
mInternetDialogController.setAirplaneModeEnabled(true);
|
||||
fakeAirplaneModeEnabled(true);
|
||||
mAccessPoints.clear();
|
||||
mAccessPoints.add(mWifiEntry1);
|
||||
|
||||
@@ -448,7 +444,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
@Test
|
||||
public void onAccessPointsChanged_oneConnectedEntryAndOneOther_callbackCorrectly() {
|
||||
reset(mInternetDialogCallback);
|
||||
mInternetDialogController.setAirplaneModeEnabled(true);
|
||||
fakeAirplaneModeEnabled(true);
|
||||
mAccessPoints.clear();
|
||||
mAccessPoints.add(mConnectedEntry);
|
||||
mAccessPoints.add(mWifiEntry1);
|
||||
@@ -463,7 +459,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
@Test
|
||||
public void onAccessPointsChanged_oneConnectedEntryAndTwoOthers_callbackCorrectly() {
|
||||
reset(mInternetDialogCallback);
|
||||
mInternetDialogController.setAirplaneModeEnabled(true);
|
||||
fakeAirplaneModeEnabled(true);
|
||||
mAccessPoints.clear();
|
||||
mAccessPoints.add(mConnectedEntry);
|
||||
mAccessPoints.add(mWifiEntry1);
|
||||
@@ -480,7 +476,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
@Test
|
||||
public void onAccessPointsChanged_oneConnectedEntryAndThreeOthers_callbackCutMore() {
|
||||
reset(mInternetDialogCallback);
|
||||
mInternetDialogController.setAirplaneModeEnabled(true);
|
||||
fakeAirplaneModeEnabled(true);
|
||||
mAccessPoints.clear();
|
||||
mAccessPoints.add(mConnectedEntry);
|
||||
mAccessPoints.add(mWifiEntry1);
|
||||
@@ -497,7 +493,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
|
||||
// Turn off airplane mode to has carrier network, then Wi-Fi entries will cut last one.
|
||||
reset(mInternetDialogCallback);
|
||||
mInternetDialogController.setAirplaneModeEnabled(false);
|
||||
fakeAirplaneModeEnabled(false);
|
||||
|
||||
mInternetDialogController.onAccessPointsChanged(mAccessPoints);
|
||||
|
||||
@@ -508,7 +504,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
@Test
|
||||
public void onAccessPointsChanged_oneConnectedEntryAndFourOthers_callbackCutMore() {
|
||||
reset(mInternetDialogCallback);
|
||||
mInternetDialogController.setAirplaneModeEnabled(true);
|
||||
fakeAirplaneModeEnabled(true);
|
||||
mAccessPoints.clear();
|
||||
mAccessPoints.add(mConnectedEntry);
|
||||
mAccessPoints.add(mWifiEntry1);
|
||||
@@ -526,7 +522,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
|
||||
// Turn off airplane mode to has carrier network, then Wi-Fi entries will cut last one.
|
||||
reset(mInternetDialogCallback);
|
||||
mInternetDialogController.setAirplaneModeEnabled(false);
|
||||
fakeAirplaneModeEnabled(false);
|
||||
|
||||
mInternetDialogController.onAccessPointsChanged(mAccessPoints);
|
||||
|
||||
@@ -537,7 +533,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
@Test
|
||||
public void onAccessPointsChanged_fourWifiEntries_callbackCutMore() {
|
||||
reset(mInternetDialogCallback);
|
||||
mInternetDialogController.setAirplaneModeEnabled(true);
|
||||
fakeAirplaneModeEnabled(true);
|
||||
mAccessPoints.clear();
|
||||
mAccessPoints.add(mWifiEntry1);
|
||||
mAccessPoints.add(mWifiEntry2);
|
||||
@@ -566,7 +562,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
|
||||
// Turn off airplane mode to has carrier network, then Wi-Fi entries will cut last one.
|
||||
reset(mInternetDialogCallback);
|
||||
mInternetDialogController.setAirplaneModeEnabled(false);
|
||||
fakeAirplaneModeEnabled(false);
|
||||
|
||||
mInternetDialogController.onAccessPointsChanged(mAccessPoints);
|
||||
|
||||
@@ -575,6 +571,23 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
.onAccessPointsChanged(mWifiEntries, null /* connectedEntry */);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onAccessPointsChanged_wifiIsDefaultButNoInternetAccess_putIntoWifiEntries() {
|
||||
reset(mInternetDialogCallback);
|
||||
mAccessPoints.clear();
|
||||
when(mWifiEntry1.getConnectedState()).thenReturn(WifiEntry.CONNECTED_STATE_CONNECTED);
|
||||
when(mWifiEntry1.isDefaultNetwork()).thenReturn(true);
|
||||
when(mWifiEntry1.hasInternetAccess()).thenReturn(false);
|
||||
mAccessPoints.add(mWifiEntry1);
|
||||
|
||||
mInternetDialogController.onAccessPointsChanged(mAccessPoints);
|
||||
|
||||
mWifiEntries.clear();
|
||||
mWifiEntries.add(mWifiEntry1);
|
||||
verify(mInternetDialogCallback)
|
||||
.onAccessPointsChanged(mWifiEntries, null /* connectedEntry */);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setMergedCarrierWifiEnabledIfNeed_carrierProvisionsEnabled_doNothing() {
|
||||
when(mCarrierConfigTracker.getCarrierProvisionsWifiMergedNetworksBool(SUB_ID))
|
||||
@@ -641,38 +654,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
mContext.getPackageName());
|
||||
}
|
||||
|
||||
private class MockInternetDialogController extends InternetDialogController {
|
||||
|
||||
private GlobalSettings mGlobalSettings;
|
||||
private boolean mIsAirplaneModeOn;
|
||||
|
||||
MockInternetDialogController(Context context, UiEventLogger uiEventLogger,
|
||||
ActivityStarter starter, AccessPointController accessPointController,
|
||||
SubscriptionManager subscriptionManager, TelephonyManager telephonyManager,
|
||||
@Nullable WifiManager wifiManager, ConnectivityManager connectivityManager,
|
||||
@Main Handler handler, @Main Executor mainExecutor,
|
||||
BroadcastDispatcher broadcastDispatcher,
|
||||
KeyguardUpdateMonitor keyguardUpdateMonitor, GlobalSettings globalSettings,
|
||||
KeyguardStateController keyguardStateController, WindowManager windowManager,
|
||||
ToastFactory toastFactory, Handler workerHandler,
|
||||
CarrierConfigTracker carrierConfigTracker,
|
||||
LocationController locationController,
|
||||
DialogLaunchAnimator dialogLaunchAnimator) {
|
||||
super(context, uiEventLogger, starter, accessPointController, subscriptionManager,
|
||||
telephonyManager, wifiManager, connectivityManager, handler, mainExecutor,
|
||||
broadcastDispatcher, keyguardUpdateMonitor, globalSettings,
|
||||
keyguardStateController, windowManager, toastFactory, workerHandler,
|
||||
carrierConfigTracker, locationController, dialogLaunchAnimator);
|
||||
mGlobalSettings = globalSettings;
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean isAirplaneModeEnabled() {
|
||||
return mIsAirplaneModeOn;
|
||||
}
|
||||
|
||||
public void setAirplaneModeEnabled(boolean enabled) {
|
||||
mIsAirplaneModeOn = enabled;
|
||||
}
|
||||
private void fakeAirplaneModeEnabled(boolean enabled) {
|
||||
when(mGlobalSettings.getInt(eq(AIRPLANE_MODE_ON), anyInt())).thenReturn(enabled ? 1 : 0);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user