Loading res/xml/network_and_internet.xml +0 −1 Original line number Diff line number Diff line Loading @@ -37,7 +37,6 @@ android:title="@string/network_settings_title" android:summary="@string/summary_placeholder" android:icon="@drawable/ic_network_cell" android:dependency="toggle_airplane" android:order="-15" settings:keywords="@string/keywords_more_mobile_networks" settings:userRestriction="no_config_mobile_networks" Loading src/com/android/settings/network/MobileNetworkPreferenceController.java +33 −0 Original line number Diff line number Diff line Loading @@ -18,8 +18,12 @@ package com.android.settings.network; import static android.os.UserHandle.myUserId; import static android.os.UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.UserManager; import android.provider.Settings; import android.support.annotation.VisibleForTesting; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; Loading @@ -29,6 +33,7 @@ import android.telephony.TelephonyManager; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.wrapper.RestrictedLockUtilsWrapper; import com.android.settingslib.RestrictedPreference; import com.android.settingslib.Utils; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.lifecycle.LifecycleObserver; Loading @@ -47,11 +52,20 @@ public class MobileNetworkPreferenceController extends AbstractPreferenceControl @VisibleForTesting PhoneStateListener mPhoneStateListener; private BroadcastReceiver mAirplanModeChangedReceiver; public MobileNetworkPreferenceController(Context context) { super(context); mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE); mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); mIsSecondaryUser = !mUserManager.isAdminUser(); mAirplanModeChangedReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { updateState(mPreference); } }; } @Override Loading Loading @@ -92,6 +106,10 @@ public class MobileNetworkPreferenceController extends AbstractPreferenceControl } mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_SERVICE_STATE); } if (mAirplanModeChangedReceiver != null) { mContext.registerReceiver(mAirplanModeChangedReceiver, new IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED)); } } @Override Loading @@ -99,6 +117,21 @@ public class MobileNetworkPreferenceController extends AbstractPreferenceControl if (mPhoneStateListener != null) { mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE); } if (mAirplanModeChangedReceiver != null) { mContext.unregisterReceiver(mAirplanModeChangedReceiver); } } @Override public void updateState(Preference preference) { super.updateState(preference); if (preference instanceof RestrictedPreference && ((RestrictedPreference) preference).isDisabledByAdmin()) { return; } preference.setEnabled(Settings.Global.getInt( mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0) == 0); } @Override Loading tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java +36 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,8 @@ import android.arch.lifecycle.LifecycleOwner; import android.content.Context; import android.net.ConnectivityManager; import android.os.UserManager; import android.provider.Settings; import android.provider.Settings.Global; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; import android.telephony.PhoneStateListener; Loading @@ -38,6 +40,8 @@ import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.ShadowConnectivityManager; import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsWrapper; import com.android.settings.testutils.shadow.ShadowUserManager; import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import com.android.settingslib.RestrictedPreference; import com.android.settingslib.core.lifecycle.Lifecycle; import org.junit.Before; Loading Loading @@ -138,4 +142,36 @@ public class MobileNetworkPreferenceControllerTest { // Carrier name should be set. verify(mPreference).setSummary(testCarrierName); } @Test public void airplaneModeTurnedOn_shouldDisablePreference() { Settings.Global.putInt(mContext.getContentResolver(), Global.AIRPLANE_MODE_ON, 1); mController = spy(new MobileNetworkPreferenceController(mContext)); final RestrictedPreference mPreference = new RestrictedPreference(mContext); mController.updateState(mPreference); assertThat(mPreference.isEnabled()).isFalse(); } @Test public void airplaneModeTurnedOffAndNoUserRestriction_shouldEnablePreference() { Settings.Global.putInt(mContext.getContentResolver(), Global.AIRPLANE_MODE_ON, 0); mController = spy(new MobileNetworkPreferenceController(mContext)); final RestrictedPreference mPreference = new RestrictedPreference(mContext); mPreference.setDisabledByAdmin(null); mController.updateState(mPreference); assertThat(mPreference.isEnabled()).isTrue(); } @Test public void airplaneModeTurnedOffAndHasUserRestriction_shouldDisablePreference() { Settings.Global.putInt(mContext.getContentResolver(), Global.AIRPLANE_MODE_ON, 0); mController = spy(new MobileNetworkPreferenceController(mContext)); final RestrictedPreference mPreference = new RestrictedPreference(mContext); mPreference.setDisabledByAdmin(EnforcedAdmin.MULTIPLE_ENFORCED_ADMIN); mController.updateState(mPreference); assertThat(mPreference.isEnabled()).isFalse(); } } Loading
res/xml/network_and_internet.xml +0 −1 Original line number Diff line number Diff line Loading @@ -37,7 +37,6 @@ android:title="@string/network_settings_title" android:summary="@string/summary_placeholder" android:icon="@drawable/ic_network_cell" android:dependency="toggle_airplane" android:order="-15" settings:keywords="@string/keywords_more_mobile_networks" settings:userRestriction="no_config_mobile_networks" Loading
src/com/android/settings/network/MobileNetworkPreferenceController.java +33 −0 Original line number Diff line number Diff line Loading @@ -18,8 +18,12 @@ package com.android.settings.network; import static android.os.UserHandle.myUserId; import static android.os.UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.UserManager; import android.provider.Settings; import android.support.annotation.VisibleForTesting; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; Loading @@ -29,6 +33,7 @@ import android.telephony.TelephonyManager; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.wrapper.RestrictedLockUtilsWrapper; import com.android.settingslib.RestrictedPreference; import com.android.settingslib.Utils; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.lifecycle.LifecycleObserver; Loading @@ -47,11 +52,20 @@ public class MobileNetworkPreferenceController extends AbstractPreferenceControl @VisibleForTesting PhoneStateListener mPhoneStateListener; private BroadcastReceiver mAirplanModeChangedReceiver; public MobileNetworkPreferenceController(Context context) { super(context); mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE); mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); mIsSecondaryUser = !mUserManager.isAdminUser(); mAirplanModeChangedReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { updateState(mPreference); } }; } @Override Loading Loading @@ -92,6 +106,10 @@ public class MobileNetworkPreferenceController extends AbstractPreferenceControl } mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_SERVICE_STATE); } if (mAirplanModeChangedReceiver != null) { mContext.registerReceiver(mAirplanModeChangedReceiver, new IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED)); } } @Override Loading @@ -99,6 +117,21 @@ public class MobileNetworkPreferenceController extends AbstractPreferenceControl if (mPhoneStateListener != null) { mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE); } if (mAirplanModeChangedReceiver != null) { mContext.unregisterReceiver(mAirplanModeChangedReceiver); } } @Override public void updateState(Preference preference) { super.updateState(preference); if (preference instanceof RestrictedPreference && ((RestrictedPreference) preference).isDisabledByAdmin()) { return; } preference.setEnabled(Settings.Global.getInt( mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0) == 0); } @Override Loading
tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java +36 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,8 @@ import android.arch.lifecycle.LifecycleOwner; import android.content.Context; import android.net.ConnectivityManager; import android.os.UserManager; import android.provider.Settings; import android.provider.Settings.Global; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; import android.telephony.PhoneStateListener; Loading @@ -38,6 +40,8 @@ import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.ShadowConnectivityManager; import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsWrapper; import com.android.settings.testutils.shadow.ShadowUserManager; import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import com.android.settingslib.RestrictedPreference; import com.android.settingslib.core.lifecycle.Lifecycle; import org.junit.Before; Loading Loading @@ -138,4 +142,36 @@ public class MobileNetworkPreferenceControllerTest { // Carrier name should be set. verify(mPreference).setSummary(testCarrierName); } @Test public void airplaneModeTurnedOn_shouldDisablePreference() { Settings.Global.putInt(mContext.getContentResolver(), Global.AIRPLANE_MODE_ON, 1); mController = spy(new MobileNetworkPreferenceController(mContext)); final RestrictedPreference mPreference = new RestrictedPreference(mContext); mController.updateState(mPreference); assertThat(mPreference.isEnabled()).isFalse(); } @Test public void airplaneModeTurnedOffAndNoUserRestriction_shouldEnablePreference() { Settings.Global.putInt(mContext.getContentResolver(), Global.AIRPLANE_MODE_ON, 0); mController = spy(new MobileNetworkPreferenceController(mContext)); final RestrictedPreference mPreference = new RestrictedPreference(mContext); mPreference.setDisabledByAdmin(null); mController.updateState(mPreference); assertThat(mPreference.isEnabled()).isTrue(); } @Test public void airplaneModeTurnedOffAndHasUserRestriction_shouldDisablePreference() { Settings.Global.putInt(mContext.getContentResolver(), Global.AIRPLANE_MODE_ON, 0); mController = spy(new MobileNetworkPreferenceController(mContext)); final RestrictedPreference mPreference = new RestrictedPreference(mContext); mPreference.setDisabledByAdmin(EnforcedAdmin.MULTIPLE_ENFORCED_ADMIN); mController.updateState(mPreference); assertThat(mPreference.isEnabled()).isFalse(); } }