[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
diff --git a/src/com/android/settings/datausage/BillingCycleSettings.java b/src/com/android/settings/datausage/BillingCycleSettings.java
index baf8e7e..27a5c01 100644
--- a/src/com/android/settings/datausage/BillingCycleSettings.java
+++ b/src/com/android/settings/datausage/BillingCycleSettings.java
@@ -43,6 +43,7 @@
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 @@
@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 65e880b..50c3f39 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.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 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.
*/
public static boolean isDpcApnEnforced(Context context) {