Loading src/com/android/settings/wifi/WifiEnabler.java +9 −20 Original line number Diff line number Diff line Loading @@ -160,7 +160,7 @@ public class WifiEnabler implements SwitchWidgetController.OnSwitchChangeListene setSwitchBarChecked(false); mSwitchWidget.setEnabled(true); } if (mayDisableTethering(!mSwitchWidget.isChecked())) { if (RestrictedLockUtils.hasBaseUserRestriction(mContext, UserManager.DISALLOW_CONFIG_TETHERING, UserHandle.myUserId())) { mSwitchWidget.setEnabled(false); Loading @@ -170,7 +170,6 @@ public class WifiEnabler implements SwitchWidgetController.OnSwitchChangeListene mSwitchWidget.setDisabledByAdmin(admin); } } } private void setSwitchBarChecked(boolean checked) { mStateMachineEvent = true; Loading Loading @@ -203,15 +202,11 @@ public class WifiEnabler implements SwitchWidgetController.OnSwitchChangeListene // Show toast message if Wi-Fi is not allowed in airplane mode if (isChecked && !WirelessUtils.isRadioAllowed(mContext, Settings.Global.RADIO_WIFI)) { Toast.makeText(mContext, R.string.wifi_in_airplane_mode, Toast.LENGTH_SHORT).show(); // Reset switch to off. No infinite check/listenenr loop. // Reset switch to off. No infinite check/listener loop. mSwitchWidget.setChecked(false); return false; } // Disable tethering if enabling Wifi if (mayDisableTethering(isChecked)) { mConnectivityManager.stopTethering(ConnectivityManager.TETHERING_WIFI); } if (isChecked) { mMetricsFeatureProvider.action(mContext, MetricsEvent.ACTION_WIFI_ON); } else { Loading @@ -226,10 +221,4 @@ public class WifiEnabler implements SwitchWidgetController.OnSwitchChangeListene } return true; } private boolean mayDisableTethering(boolean isChecked) { final int wifiApState = mWifiManager.getWifiApState(); return isChecked && ((wifiApState == WifiManager.WIFI_AP_STATE_ENABLING) || (wifiApState == WifiManager.WIFI_AP_STATE_ENABLED)); } } tests/robotests/src/com/android/settings/testutils/shadow/ShadowRestrictedLockUtils.java +29 −17 Original line number Diff line number Diff line Loading @@ -28,26 +28,26 @@ import org.robolectric.annotation.Resetter; @Implements(RestrictedLockUtils.class) public class ShadowRestrictedLockUtils { private static boolean isRestricted; private static String[] restrictedPkgs; private static boolean adminSupportDetailsIntentLaunched; private static int keyguardDisabledFeatures; private static boolean sIsRestricted; private static String[] sRestrictedPkgs; private static boolean sAdminSupportDetailsIntentLaunched; private static int sKeyguardDisabledFeatures; @Resetter public static void reset() { isRestricted = false; restrictedPkgs = null; adminSupportDetailsIntentLaunched = false; keyguardDisabledFeatures = 0; sIsRestricted = false; sRestrictedPkgs = null; sAdminSupportDetailsIntentLaunched = false; sKeyguardDisabledFeatures = 0; } @Implementation public static EnforcedAdmin checkIfMeteredDataRestricted(Context context, String packageName, int userId) { if (isRestricted) { if (sIsRestricted) { return new EnforcedAdmin(); } if (ArrayUtils.contains(restrictedPkgs, packageName)) { if (ArrayUtils.contains(sRestrictedPkgs, packageName)) { return new EnforcedAdmin(); } return null; Loading @@ -55,32 +55,44 @@ public class ShadowRestrictedLockUtils { @Implementation public static void sendShowAdminSupportDetailsIntent(Context context, EnforcedAdmin admin) { adminSupportDetailsIntentLaunched = true; sAdminSupportDetailsIntentLaunched = true; } @Implementation public static EnforcedAdmin checkIfKeyguardFeaturesDisabled(Context context, int features, final @UserIdInt int userId) { return (keyguardDisabledFeatures & features) == 0 ? null : new EnforcedAdmin(); return (sKeyguardDisabledFeatures & features) == 0 ? null : new EnforcedAdmin(); } @Implementation public static boolean hasBaseUserRestriction(Context context, String userRestriction, int userId) { return sIsRestricted; } @Implementation public static EnforcedAdmin checkIfRestrictionEnforced(Context context, String userRestriction, int userId) { return sIsRestricted ? new EnforcedAdmin() : null; } public static boolean hasAdminSupportDetailsIntentLaunched() { return adminSupportDetailsIntentLaunched; return sAdminSupportDetailsIntentLaunched; } public static void clearAdminSupportDetailsIntentLaunch() { adminSupportDetailsIntentLaunched = false; sAdminSupportDetailsIntentLaunched = false; } public static void setRestricted(boolean restricted) { isRestricted = restricted; sIsRestricted = restricted; } public static void setRestrictedPkgs(String... pkgs) { restrictedPkgs = pkgs; sRestrictedPkgs = pkgs; } public static void setKeyguardDisabledFeatures(int features) { keyguardDisabledFeatures = features; sKeyguardDisabledFeatures = features; } } tests/robotests/src/com/android/settings/wifi/WifiEnablerTest.java +6 −3 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.settings.wifi; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading @@ -25,6 +27,7 @@ import android.net.ConnectivityManager; import android.net.wifi.WifiManager; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.ShadowRestrictedLockUtils; import com.android.settings.widget.SwitchWidgetController; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; Loading @@ -33,8 +36,10 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.annotation.Config; @RunWith(SettingsRobolectricTestRunner.class) @Config(shadows = ShadowRestrictedLockUtils.class) public class WifiEnablerTest { @Mock Loading @@ -59,8 +64,6 @@ public class WifiEnablerTest { when(mWifiManager.setWifiEnabled(true)).thenReturn(true); when(mWifiManager.getWifiApState()).thenReturn(WifiManager.WIFI_AP_STATE_ENABLED); mEnabler.onSwitchToggled(true); verify(mConnectivityManager).stopTethering(ConnectivityManager.TETHERING_WIFI); assertThat(mEnabler.onSwitchToggled(true)).isTrue(); } } tests/robotests/src/com/android/settings/wifi/WifiMasterSwitchPreferenceControllerTest.java +2 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import android.support.v7.preference.PreferenceScreen; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.ShadowRestrictedLockUtils; import com.android.settings.widget.MasterSwitchPreference; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; Loading @@ -48,6 +49,7 @@ import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; @RunWith(SettingsRobolectricTestRunner.class) @Config(shadows = ShadowRestrictedLockUtils.class) public class WifiMasterSwitchPreferenceControllerTest { @Mock Loading Loading
src/com/android/settings/wifi/WifiEnabler.java +9 −20 Original line number Diff line number Diff line Loading @@ -160,7 +160,7 @@ public class WifiEnabler implements SwitchWidgetController.OnSwitchChangeListene setSwitchBarChecked(false); mSwitchWidget.setEnabled(true); } if (mayDisableTethering(!mSwitchWidget.isChecked())) { if (RestrictedLockUtils.hasBaseUserRestriction(mContext, UserManager.DISALLOW_CONFIG_TETHERING, UserHandle.myUserId())) { mSwitchWidget.setEnabled(false); Loading @@ -170,7 +170,6 @@ public class WifiEnabler implements SwitchWidgetController.OnSwitchChangeListene mSwitchWidget.setDisabledByAdmin(admin); } } } private void setSwitchBarChecked(boolean checked) { mStateMachineEvent = true; Loading Loading @@ -203,15 +202,11 @@ public class WifiEnabler implements SwitchWidgetController.OnSwitchChangeListene // Show toast message if Wi-Fi is not allowed in airplane mode if (isChecked && !WirelessUtils.isRadioAllowed(mContext, Settings.Global.RADIO_WIFI)) { Toast.makeText(mContext, R.string.wifi_in_airplane_mode, Toast.LENGTH_SHORT).show(); // Reset switch to off. No infinite check/listenenr loop. // Reset switch to off. No infinite check/listener loop. mSwitchWidget.setChecked(false); return false; } // Disable tethering if enabling Wifi if (mayDisableTethering(isChecked)) { mConnectivityManager.stopTethering(ConnectivityManager.TETHERING_WIFI); } if (isChecked) { mMetricsFeatureProvider.action(mContext, MetricsEvent.ACTION_WIFI_ON); } else { Loading @@ -226,10 +221,4 @@ public class WifiEnabler implements SwitchWidgetController.OnSwitchChangeListene } return true; } private boolean mayDisableTethering(boolean isChecked) { final int wifiApState = mWifiManager.getWifiApState(); return isChecked && ((wifiApState == WifiManager.WIFI_AP_STATE_ENABLING) || (wifiApState == WifiManager.WIFI_AP_STATE_ENABLED)); } }
tests/robotests/src/com/android/settings/testutils/shadow/ShadowRestrictedLockUtils.java +29 −17 Original line number Diff line number Diff line Loading @@ -28,26 +28,26 @@ import org.robolectric.annotation.Resetter; @Implements(RestrictedLockUtils.class) public class ShadowRestrictedLockUtils { private static boolean isRestricted; private static String[] restrictedPkgs; private static boolean adminSupportDetailsIntentLaunched; private static int keyguardDisabledFeatures; private static boolean sIsRestricted; private static String[] sRestrictedPkgs; private static boolean sAdminSupportDetailsIntentLaunched; private static int sKeyguardDisabledFeatures; @Resetter public static void reset() { isRestricted = false; restrictedPkgs = null; adminSupportDetailsIntentLaunched = false; keyguardDisabledFeatures = 0; sIsRestricted = false; sRestrictedPkgs = null; sAdminSupportDetailsIntentLaunched = false; sKeyguardDisabledFeatures = 0; } @Implementation public static EnforcedAdmin checkIfMeteredDataRestricted(Context context, String packageName, int userId) { if (isRestricted) { if (sIsRestricted) { return new EnforcedAdmin(); } if (ArrayUtils.contains(restrictedPkgs, packageName)) { if (ArrayUtils.contains(sRestrictedPkgs, packageName)) { return new EnforcedAdmin(); } return null; Loading @@ -55,32 +55,44 @@ public class ShadowRestrictedLockUtils { @Implementation public static void sendShowAdminSupportDetailsIntent(Context context, EnforcedAdmin admin) { adminSupportDetailsIntentLaunched = true; sAdminSupportDetailsIntentLaunched = true; } @Implementation public static EnforcedAdmin checkIfKeyguardFeaturesDisabled(Context context, int features, final @UserIdInt int userId) { return (keyguardDisabledFeatures & features) == 0 ? null : new EnforcedAdmin(); return (sKeyguardDisabledFeatures & features) == 0 ? null : new EnforcedAdmin(); } @Implementation public static boolean hasBaseUserRestriction(Context context, String userRestriction, int userId) { return sIsRestricted; } @Implementation public static EnforcedAdmin checkIfRestrictionEnforced(Context context, String userRestriction, int userId) { return sIsRestricted ? new EnforcedAdmin() : null; } public static boolean hasAdminSupportDetailsIntentLaunched() { return adminSupportDetailsIntentLaunched; return sAdminSupportDetailsIntentLaunched; } public static void clearAdminSupportDetailsIntentLaunch() { adminSupportDetailsIntentLaunched = false; sAdminSupportDetailsIntentLaunched = false; } public static void setRestricted(boolean restricted) { isRestricted = restricted; sIsRestricted = restricted; } public static void setRestrictedPkgs(String... pkgs) { restrictedPkgs = pkgs; sRestrictedPkgs = pkgs; } public static void setKeyguardDisabledFeatures(int features) { keyguardDisabledFeatures = features; sKeyguardDisabledFeatures = features; } }
tests/robotests/src/com/android/settings/wifi/WifiEnablerTest.java +6 −3 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.settings.wifi; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading @@ -25,6 +27,7 @@ import android.net.ConnectivityManager; import android.net.wifi.WifiManager; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.ShadowRestrictedLockUtils; import com.android.settings.widget.SwitchWidgetController; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; Loading @@ -33,8 +36,10 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.annotation.Config; @RunWith(SettingsRobolectricTestRunner.class) @Config(shadows = ShadowRestrictedLockUtils.class) public class WifiEnablerTest { @Mock Loading @@ -59,8 +64,6 @@ public class WifiEnablerTest { when(mWifiManager.setWifiEnabled(true)).thenReturn(true); when(mWifiManager.getWifiApState()).thenReturn(WifiManager.WIFI_AP_STATE_ENABLED); mEnabler.onSwitchToggled(true); verify(mConnectivityManager).stopTethering(ConnectivityManager.TETHERING_WIFI); assertThat(mEnabler.onSwitchToggled(true)).isTrue(); } }
tests/robotests/src/com/android/settings/wifi/WifiMasterSwitchPreferenceControllerTest.java +2 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import android.support.v7.preference.PreferenceScreen; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.ShadowRestrictedLockUtils; import com.android.settings.widget.MasterSwitchPreference; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; Loading @@ -48,6 +49,7 @@ import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; @RunWith(SettingsRobolectricTestRunner.class) @Config(shadows = ShadowRestrictedLockUtils.class) public class WifiMasterSwitchPreferenceControllerTest { @Mock Loading