From 55f1970181791fd8d5cdaa5347a9cbe4c0e8ff51 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 Bug: 235822222 Test: local Change-Id: I63ba7f3b10fc812dd1498f17826a15e822879613 (cherry picked from commit 5e1c4d15a9e79ec319b6d7e53d82d90205918c20) Merged-In: 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 baf8e7ef499..27a5c016c7c 100644 --- a/src/com/android/settings/datausage/BillingCycleSettings.java +++ b/src/com/android/settings/datausage/BillingCycleSettings.java @@ -43,6 +43,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; @@ -503,7 +504,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 65e880b05ee..50c3f392540 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; @@ -113,6 +114,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. */