Merge "[RESTRICT AUTOMERGE] Hide Wi-Fi Scanning message when Location is disabled (QS Internet Dialog)" into sc-qpr1-dev

This commit is contained in:
Weng Su
2021-10-27 18:42:44 +00:00
committed by Android (Google) Code Review
4 changed files with 49 additions and 8 deletions

View File

@@ -331,7 +331,7 @@ public class InternetDialog extends SystemUIDialog implements
showProgressBar(); showProgressBar();
final boolean isDeviceLocked = mInternetDialogController.isDeviceLocked(); final boolean isDeviceLocked = mInternetDialogController.isDeviceLocked();
final boolean isWifiEnabled = mWifiManager.isWifiEnabled(); final boolean isWifiEnabled = mWifiManager.isWifiEnabled();
final boolean isWifiScanEnabled = mWifiManager.isScanAlwaysAvailable(); final boolean isWifiScanEnabled = mInternetDialogController.isWifiScanEnabled();
updateWifiToggle(isWifiEnabled, isDeviceLocked); updateWifiToggle(isWifiEnabled, isDeviceLocked);
updateConnectedWifi(isWifiEnabled, isDeviceLocked); updateConnectedWifi(isWifiEnabled, isDeviceLocked);
updateWifiScanNotify(isWifiEnabled, isWifiScanEnabled, isDeviceLocked); updateWifiScanNotify(isWifiEnabled, isWifiScanEnabled, isDeviceLocked);

View File

@@ -76,6 +76,7 @@ import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.statusbar.policy.LocationController;
import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.statusbar.policy.NetworkController;
import com.android.systemui.statusbar.policy.NetworkController.AccessPointController; import com.android.systemui.statusbar.policy.NetworkController.AccessPointController;
import com.android.systemui.toast.SystemUIToast; import com.android.systemui.toast.SystemUIToast;
@@ -150,6 +151,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
private WindowManager mWindowManager; private WindowManager mWindowManager;
private ToastFactory mToastFactory; private ToastFactory mToastFactory;
private SignalDrawable mSignalDrawable; private SignalDrawable mSignalDrawable;
private LocationController mLocationController;
@VisibleForTesting @VisibleForTesting
static final float TOAST_PARAMS_HORIZONTAL_WEIGHT = 1.0f; static final float TOAST_PARAMS_HORIZONTAL_WEIGHT = 1.0f;
@@ -199,7 +201,8 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
GlobalSettings globalSettings, KeyguardStateController keyguardStateController, GlobalSettings globalSettings, KeyguardStateController keyguardStateController,
WindowManager windowManager, ToastFactory toastFactory, WindowManager windowManager, ToastFactory toastFactory,
@Background Handler workerHandler, @Background Handler workerHandler,
CarrierConfigTracker carrierConfigTracker) { CarrierConfigTracker carrierConfigTracker,
LocationController locationController) {
if (DEBUG) { if (DEBUG) {
Log.d(TAG, "Init InternetDialogController"); Log.d(TAG, "Init InternetDialogController");
} }
@@ -227,6 +230,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
mWindowManager = windowManager; mWindowManager = windowManager;
mToastFactory = toastFactory; mToastFactory = toastFactory;
mSignalDrawable = new SignalDrawable(mContext); mSignalDrawable = new SignalDrawable(mContext);
mLocationController = locationController;
} }
void onStart(@NonNull InternetDialogCallback callback, boolean canConfigWifi) { void onStart(@NonNull InternetDialogCallback callback, boolean canConfigWifi) {
@@ -788,6 +792,14 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
return false; return false;
} }
@WorkerThread
boolean isWifiScanEnabled() {
if (!mLocationController.isLocationEnabled()) {
return false;
}
return mWifiManager.isScanAlwaysAvailable();
}
static class WifiEntryConnectCallback implements WifiEntry.ConnectCallback { static class WifiEntryConnectCallback implements WifiEntry.ConnectCallback {
final ActivityStarter mActivityStarter; final ActivityStarter mActivityStarter;
final WifiEntry mWifiEntry; final WifiEntry mWifiEntry;

View File

@@ -49,6 +49,7 @@ import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.statusbar.policy.LocationController;
import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.statusbar.policy.NetworkController;
import com.android.systemui.statusbar.policy.NetworkController.AccessPointController; import com.android.systemui.statusbar.policy.NetworkController.AccessPointController;
import com.android.systemui.toast.SystemUIToast; import com.android.systemui.toast.SystemUIToast;
@@ -135,6 +136,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
private Animator mAnimator; private Animator mAnimator;
@Mock @Mock
private CarrierConfigTracker mCarrierConfigTracker; private CarrierConfigTracker mCarrierConfigTracker;
@Mock
private LocationController mLocationController;
private TestableResources mTestableResources; private TestableResources mTestableResources;
private MockInternetDialogController mInternetDialogController; private MockInternetDialogController mInternetDialogController;
@@ -170,7 +173,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
mSubscriptionManager, mTelephonyManager, mWifiManager, mSubscriptionManager, mTelephonyManager, mWifiManager,
mock(ConnectivityManager.class), mHandler, mExecutor, mBroadcastDispatcher, mock(ConnectivityManager.class), mHandler, mExecutor, mBroadcastDispatcher,
mock(KeyguardUpdateMonitor.class), mGlobalSettings, mKeyguardStateController, mock(KeyguardUpdateMonitor.class), mGlobalSettings, mKeyguardStateController,
mWindowManager, mToastFactory, mWorkerHandler, mCarrierConfigTracker); mWindowManager, mToastFactory, mWorkerHandler, mCarrierConfigTracker,
mLocationController);
mSubscriptionManager.addOnSubscriptionsChangedListener(mExecutor, mSubscriptionManager.addOnSubscriptionsChangedListener(mExecutor,
mInternetDialogController.mOnSubscriptionsChangedListener); mInternetDialogController.mOnSubscriptionsChangedListener);
mInternetDialogController.onStart(mInternetDialogCallback, true); mInternetDialogController.onStart(mInternetDialogCallback, true);
@@ -602,6 +606,30 @@ public class InternetDialogControllerTest extends SysuiTestCase {
verify(mMergedCarrierEntry).setEnabled(false); verify(mMergedCarrierEntry).setEnabled(false);
} }
@Test
public void isWifiScanEnabled_locationOff_returnFalse() {
when(mLocationController.isLocationEnabled()).thenReturn(false);
when(mWifiManager.isScanAlwaysAvailable()).thenReturn(false);
assertThat(mInternetDialogController.isWifiScanEnabled()).isFalse();
when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true);
assertThat(mInternetDialogController.isWifiScanEnabled()).isFalse();
}
@Test
public void isWifiScanEnabled_locationOn_returnIsScanAlwaysAvailable() {
when(mLocationController.isLocationEnabled()).thenReturn(true);
when(mWifiManager.isScanAlwaysAvailable()).thenReturn(false);
assertThat(mInternetDialogController.isWifiScanEnabled()).isFalse();
when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true);
assertThat(mInternetDialogController.isWifiScanEnabled()).isTrue();
}
private String getResourcesString(String name) { private String getResourcesString(String name) {
return mContext.getResources().getString(getResourcesId(name)); return mContext.getResources().getString(getResourcesId(name));
} }
@@ -625,12 +653,13 @@ public class InternetDialogControllerTest extends SysuiTestCase {
KeyguardUpdateMonitor keyguardUpdateMonitor, GlobalSettings globalSettings, KeyguardUpdateMonitor keyguardUpdateMonitor, GlobalSettings globalSettings,
KeyguardStateController keyguardStateController, WindowManager windowManager, KeyguardStateController keyguardStateController, WindowManager windowManager,
ToastFactory toastFactory, Handler workerHandler, ToastFactory toastFactory, Handler workerHandler,
CarrierConfigTracker carrierConfigTracker) { CarrierConfigTracker carrierConfigTracker,
LocationController locationController) {
super(context, uiEventLogger, starter, accessPointController, subscriptionManager, super(context, uiEventLogger, starter, accessPointController, subscriptionManager,
telephonyManager, wifiManager, connectivityManager, handler, mainExecutor, telephonyManager, wifiManager, connectivityManager, handler, mainExecutor,
broadcastDispatcher, keyguardUpdateMonitor, globalSettings, broadcastDispatcher, keyguardUpdateMonitor, globalSettings,
keyguardStateController, windowManager, toastFactory, workerHandler, keyguardStateController, windowManager, toastFactory, workerHandler,
carrierConfigTracker); carrierConfigTracker, locationController);
mGlobalSettings = globalSettings; mGlobalSettings = globalSettings;
} }

View File

@@ -282,7 +282,7 @@ public class InternetDialogTest extends SysuiTestCase {
@Test @Test
public void updateDialog_wifiOffAndWifiScanOff_hideWifiScanNotify() { public void updateDialog_wifiOffAndWifiScanOff_hideWifiScanNotify() {
when(mWifiManager.isWifiEnabled()).thenReturn(false); when(mWifiManager.isWifiEnabled()).thenReturn(false);
when(mWifiManager.isScanAlwaysAvailable()).thenReturn(false); when(mInternetDialogController.isWifiScanEnabled()).thenReturn(false);
mInternetDialog.updateDialog(false); mInternetDialog.updateDialog(false);
@@ -292,7 +292,7 @@ public class InternetDialogTest extends SysuiTestCase {
@Test @Test
public void updateDialog_wifiOffAndWifiScanOnAndDeviceLocked_hideWifiScanNotify() { public void updateDialog_wifiOffAndWifiScanOnAndDeviceLocked_hideWifiScanNotify() {
when(mWifiManager.isWifiEnabled()).thenReturn(false); when(mWifiManager.isWifiEnabled()).thenReturn(false);
when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true); when(mInternetDialogController.isWifiScanEnabled()).thenReturn(true);
when(mInternetDialogController.isDeviceLocked()).thenReturn(true); when(mInternetDialogController.isDeviceLocked()).thenReturn(true);
mInternetDialog.updateDialog(false); mInternetDialog.updateDialog(false);
@@ -303,7 +303,7 @@ public class InternetDialogTest extends SysuiTestCase {
@Test @Test
public void updateDialog_wifiOffAndWifiScanOnAndDeviceUnlocked_showWifiScanNotify() { public void updateDialog_wifiOffAndWifiScanOnAndDeviceUnlocked_showWifiScanNotify() {
when(mWifiManager.isWifiEnabled()).thenReturn(false); when(mWifiManager.isWifiEnabled()).thenReturn(false);
when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true); when(mInternetDialogController.isWifiScanEnabled()).thenReturn(true);
when(mInternetDialogController.isDeviceLocked()).thenReturn(false); when(mInternetDialogController.isDeviceLocked()).thenReturn(false);
mInternetDialog.updateDialog(false); mInternetDialog.updateDialog(false);