Add location check for Wifi Scanning notify message
Bug: 203471614 Test: make RunSettingsRoboTests ROBOTEST_FILTER=NetworkProviderSettingsTest Change-Id: I0fccd1a8dfd8e6ca499a6f87a59772f70961bc1d
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
@@ -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,19 +547,41 @@ 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);
|
||||||
|
|
||||||
assertThat(mNetworkProviderSettings.mWifiStatusMessagePreference.isVisible()).isTrue();
|
assertThat(mNetworkProviderSettings.mWifiStatusMessagePreference.isVisible()).isTrue();
|
||||||
assertThat(mNetworkProviderSettings.mWifiStatusMessagePreference.getTitle().length())
|
assertThat(mNetworkProviderSettings.mWifiStatusMessagePreference.getTitle().length())
|
||||||
.isNotEqualTo(0);
|
.isNotEqualTo(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@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);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user