From 5e1c4d15a9e79ec319b6d7e53d82d90205918c20 Mon Sep 17 00:00:00 2001 From: Bonian Chen Date: Thu, 9 Feb 2023 11:31:30 +0000 Subject: [PATCH] [Settings] User with restriction should avoid from having entries through Settings search 1. Avoid from generating search report when user been restricted. 2. Guest user should have this restriction but not available, add additional rule as a conpensation from UI's perspective. Bug: 260860114 Test: local Change-Id: I63ba7f3b10fc812dd1498f17826a15e822879613 --- .../datausage/BillingCycleSettings.java | 4 +++- .../network/telephony/MobileNetworkUtils.java | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/datausage/BillingCycleSettings.java b/src/com/android/settings/datausage/BillingCycleSettings.java index 1e38ad16048..395d1c724dd 100644 --- a/src/com/android/settings/datausage/BillingCycleSettings.java +++ b/src/com/android/settings/datausage/BillingCycleSettings.java @@ -46,6 +46,7 @@ import androidx.preference.SwitchPreference; import com.android.settings.R; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.network.SubscriptionUtil; +import com.android.settings.network.telephony.MobileNetworkUtils; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settingslib.NetworkPolicyEditor; import com.android.settingslib.net.DataUsageController; @@ -517,7 +518,8 @@ public class BillingCycleSettings extends DataUsageBaseFragment implements @Override protected boolean isPageSearchEnabled(Context context) { - return SubscriptionUtil.isSimHardwareVisible(context) + return (!MobileNetworkUtils.isMobileNetworkUserRestricted(context)) + && SubscriptionUtil.isSimHardwareVisible(context) && DataUsageUtils.hasMobileData(context); } }; diff --git a/src/com/android/settings/network/telephony/MobileNetworkUtils.java b/src/com/android/settings/network/telephony/MobileNetworkUtils.java index 599fa6b1077..ef5543b8738 100644 --- a/src/com/android/settings/network/telephony/MobileNetworkUtils.java +++ b/src/com/android/settings/network/telephony/MobileNetworkUtils.java @@ -49,6 +49,7 @@ import android.os.Bundle; import android.os.PersistableBundle; import android.os.SystemClock; import android.os.SystemProperties; +import android.os.UserManager; import android.provider.Settings; import android.telecom.PhoneAccountHandle; import android.telecom.TelecomManager; @@ -114,6 +115,23 @@ public class MobileNetworkUtils { public static final int NO_CELL_DATA_TYPE_ICON = 0; public static final Drawable EMPTY_DRAWABLE = new ColorDrawable(Color.TRANSPARENT); + /** + * Return true if current user limited by UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS. + * + * Note: Guest user should have this restriction through + * GuestTelephonyPreferenceController.java. + * However, it's not help with those devices upgraded their software. + */ + public static boolean isMobileNetworkUserRestricted(Context context) { + UserManager um = context.getSystemService(UserManager.class); + boolean disallow = false; + if (um != null) { + disallow = um.isGuestUser() || um.hasUserRestriction( + UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS); + } + return disallow; + } + /** * Returns if DPC APNs are enforced. */