From e7cc2791f6fba4a65c503a1fabbb699735b6e12b Mon Sep 17 00:00:00 2001 From: tomhsu Date: Wed, 7 Aug 2024 07:18:08 +0000 Subject: [PATCH] DISALLOW_CONFIG_MOBILE_NETWORKS for Mobile Network - Avoid intent start MobileNetworkSettings page - Avoid Mobile network preference show on screen Flag: EXEMPT bug fix Fix: 289232540 Test: Manual test. see b/289232540#28 Test: atest passed Change-Id: I25b75673fbc0758dc06ca15f890e5dee0ea1367f --- .../network/SubscriptionsPreferenceController.java | 2 ++ .../settings/network/telephony/MobileNetworkSettings.java | 5 +++++ .../android/settings/widget/MutableGearPreference.java | 8 +++++--- 3 files changed, 12 insertions(+), 3 deletions(-) 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