Merge "[Settings] User with restriction should avoid from having entries through Settings search" into tm-qpr-dev
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) {