Merge "Add location check for Wifi Scanning notify message" into sc-qpr1-dev am: 649135c11c am: c26248da5b am: babbff7b82

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/16093937

Change-Id: I5186454ec25051276f1b0583b7d203314143f59d
This commit is contained in:
TreeHugger Robot
2021-10-27 19:52:38 +00:00
committed by Automerger Merge Worker
2 changed files with 34 additions and 4 deletions

View File

@@ -27,6 +27,7 @@ import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.location.LocationManager;
import android.net.NetworkTemplate; import android.net.NetworkTemplate;
import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager; import android.net.wifi.WifiManager;
@@ -756,7 +757,10 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
if (context == null) { if (context == null) {
return; return;
} }
if (isWifiEnabled || !mWifiManager.isScanAlwaysAvailable()) {
final LocationManager locationManager = context.getSystemService(LocationManager.class);
if (isWifiEnabled || !locationManager.isLocationEnabled()
|| !mWifiManager.isScanAlwaysAvailable()) {
mWifiStatusMessagePreference.setVisible(false); mWifiStatusMessagePreference.setVisible(false);
return; return;
} }

View File

@@ -38,6 +38,7 @@ import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.res.Resources; import android.content.res.Resources;
import android.location.LocationManager;
import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager; import android.net.wifi.WifiManager;
import android.os.Bundle; import android.os.Bundle;
@@ -98,6 +99,8 @@ public class NetworkProviderSettingsTest {
@Mock @Mock
private UserManager mUserManager; private UserManager mUserManager;
@Mock @Mock
private LocationManager mLocationManager;
@Mock
private AirplaneModeEnabler mAirplaneModeEnabler; private AirplaneModeEnabler mAirplaneModeEnabler;
@Mock @Mock
private DataUsagePreference mDataUsagePreference; private DataUsagePreference mDataUsagePreference;
@@ -133,6 +136,7 @@ public class NetworkProviderSettingsTest {
doReturn(mPowerManager).when(mContext).getSystemService(PowerManager.class); doReturn(mPowerManager).when(mContext).getSystemService(PowerManager.class);
doReturn(mWifiManager).when(mContext).getSystemService(WifiManager.class); doReturn(mWifiManager).when(mContext).getSystemService(WifiManager.class);
doReturn(mUserManager).when(mContext).getSystemService(Context.USER_SERVICE); doReturn(mUserManager).when(mContext).getSystemService(Context.USER_SERVICE);
doReturn(mLocationManager).when(mContext).getSystemService(LocationManager.class);
when(mUserManager.hasBaseUserRestriction(any(), any())).thenReturn(true); when(mUserManager.hasBaseUserRestriction(any(), any())).thenReturn(true);
doReturn(mContext).when(mPreferenceManager).getContext(); doReturn(mContext).when(mPreferenceManager).getContext();
mNetworkProviderSettings.mAddWifiNetworkPreference = new AddWifiNetworkPreference(mContext); mNetworkProviderSettings.mAddWifiNetworkPreference = new AddWifiNetworkPreference(mContext);
@@ -543,8 +547,9 @@ public class NetworkProviderSettingsTest {
} }
@Test @Test
public void setWifiScanMessage_wifiOffScanOn_footerIsVisible() { public void setWifiScanMessage_wifiOffLocationOnScanOn_footerIsVisible() {
when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true); when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true);
when(mLocationManager.isLocationEnabled()).thenReturn(true);
mNetworkProviderSettings.setWifiScanMessage(/* isWifiEnabled */ false); mNetworkProviderSettings.setWifiScanMessage(/* isWifiEnabled */ false);
@@ -554,8 +559,29 @@ public class NetworkProviderSettingsTest {
} }
@Test @Test
public void setWifiScanMessage_wifiOffScanOff_footerIsInvisible() { public void setWifiScanMessage_wifiOffLocationOnScanOff_footerIsInvisible() {
when(mWifiManager.isScanAlwaysAvailable()).thenReturn(false); when(mWifiManager.isScanAlwaysAvailable()).thenReturn(false);
when(mLocationManager.isLocationEnabled()).thenReturn(true);
mNetworkProviderSettings.setWifiScanMessage(/* isWifiEnabled */ false);
assertThat(mNetworkProviderSettings.mWifiStatusMessagePreference.isVisible()).isFalse();
}
@Test
public void setWifiScanMessage_wifiOffLocationOffScanOn_footerIsInvisible() {
when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true);
when(mLocationManager.isLocationEnabled()).thenReturn(false);
mNetworkProviderSettings.setWifiScanMessage(/* isWifiEnabled */ false);
assertThat(mNetworkProviderSettings.mWifiStatusMessagePreference.isVisible()).isFalse();
}
@Test
public void setWifiScanMessage_wifiOffLocationOffScanOff_footerIsInvisible() {
when(mWifiManager.isScanAlwaysAvailable()).thenReturn(false);
when(mLocationManager.isLocationEnabled()).thenReturn(false);
mNetworkProviderSettings.setWifiScanMessage(/* isWifiEnabled */ false); mNetworkProviderSettings.setWifiScanMessage(/* isWifiEnabled */ false);