From 4249d7589b98befaf0314ab66e3e61fa5b7a6103 Mon Sep 17 00:00:00 2001 From: Sudheer Shanka Date: Thu, 24 Mar 2016 15:39:24 -0700 Subject: [PATCH] Fix crash in ApnSettings. ApnSettings runs with uid android.uid.phone and since it doesn't has the MANAGE_DEVICE_ADMINS and MANAGE_PROFILE_AND_DEVICE_OWNERS permission, show the generic support instead of the admin specific message. Bug: 27826969 Change-Id: I556a8b74aa1f692ebac1f4e30aeab3ed78ec5078 --- src/com/android/settings/ApnSettings.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/com/android/settings/ApnSettings.java b/src/com/android/settings/ApnSettings.java index 439a7d9be0b..a6cd9b2e97b 100644 --- a/src/com/android/settings/ApnSettings.java +++ b/src/com/android/settings/ApnSettings.java @@ -34,6 +34,7 @@ import android.os.HandlerThread; import android.os.Looper; import android.os.Message; import android.os.PersistableBundle; +import android.os.UserHandle; import android.os.UserManager; import android.provider.Telephony; import android.support.v7.preference.Preference; @@ -57,6 +58,7 @@ import com.android.internal.telephony.TelephonyIntents; import com.android.internal.telephony.dataconnection.ApnSetting; import com.android.internal.telephony.uicc.IccRecords; import com.android.internal.telephony.uicc.UiccController; +import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import java.util.ArrayList; @@ -95,6 +97,7 @@ public class ApnSettings extends RestrictedSettingsFragment implements private static boolean mRestoreDefaultApnMode; + private UserManager mUserManager; private RestoreApnUiHandler mRestoreApnUiHandler; private RestoreApnProcessHandler mRestoreApnProcessHandler; private HandlerThread mRestoreDefaultApnThread; @@ -169,6 +172,7 @@ public class ApnSettings extends RestrictedSettingsFragment implements PersistableBundle b = configManager.getConfig(); mHideImsApn = b.getBoolean(CarrierConfigManager.KEY_HIDE_IMS_APN_BOOL); mAllowAddingApns = b.getBoolean(CarrierConfigManager.KEY_ALLOW_ADDING_APNS_BOOL); + mUserManager = UserManager.get(activity); } @Override @@ -222,6 +226,17 @@ public class ApnSettings extends RestrictedSettingsFragment implements } } + @Override + public EnforcedAdmin getRestrictionEnforcedAdmin() { + final UserHandle user = UserHandle.of(mUserManager.getUserHandle()); + if (mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS, user) + && !mUserManager.hasBaseUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS, + user)) { + return EnforcedAdmin.MULTIPLE_ENFORCED_ADMIN; + } + return null; + } + private void fillList() { final TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); final String mccmnc = mSubscriptionInfo == null ? ""