diff --git a/src/com/android/settings/network/SubscriptionsPreferenceController.java b/src/com/android/settings/network/SubscriptionsPreferenceController.java index d9a64646aef..b4ecc62c315 100644 --- a/src/com/android/settings/network/SubscriptionsPreferenceController.java +++ b/src/com/android/settings/network/SubscriptionsPreferenceController.java @@ -241,6 +241,8 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl if (mSubsGearPref == null) { mPreferenceGroup.removeAll(); mSubsGearPref = new MutableGearPreference(mContext, null); + mSubsGearPref + .checkRestrictionAndSetDisabled(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS); mSubsGearPref.setOnPreferenceClickListener(preference -> { connectCarrierNetwork(); return true; diff --git a/src/com/android/settings/network/telephony/MobileNetworkSettings.java b/src/com/android/settings/network/telephony/MobileNetworkSettings.java index d70ef25dd3a..699f09ee0a5 100644 --- a/src/com/android/settings/network/telephony/MobileNetworkSettings.java +++ b/src/com/android/settings/network/telephony/MobileNetworkSettings.java @@ -202,6 +202,11 @@ public class MobileNetworkSettings extends AbstractMobileNetworkSettings impleme @Override public void onAttach(Context context) { super.onAttach(context); + if (isUiRestricted()) { + Log.d(LOG_TAG, "Mobile network page is disallowed."); + finish(); + return; + } if (mSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) { Log.d(LOG_TAG, "Invalid subId, get the default subscription to show."); diff --git a/src/com/android/settings/widget/MutableGearPreference.java b/src/com/android/settings/widget/MutableGearPreference.java index b0804ebc2db..73491f02236 100644 --- a/src/com/android/settings/widget/MutableGearPreference.java +++ b/src/com/android/settings/widget/MutableGearPreference.java @@ -41,11 +41,13 @@ public class MutableGearPreference extends GearPreference { @Override public void setGearEnabled(boolean enabled) { + boolean state = false; if (mGear != null) { - mGear.setEnabled(enabled); - mGear.setImageAlpha(enabled ? VALUE_ENABLED_ALPHA : mDisabledAlphaValue); + state = enabled && !(isDisabledByAdmin() || isDisabledByEcm()); + mGear.setEnabled(state); + mGear.setImageAlpha(state ? VALUE_ENABLED_ALPHA : mDisabledAlphaValue); } - mGearState = enabled; + mGearState = state; } @Override