diff --git a/src/com/android/settings/ApnPreference.java b/src/com/android/settings/ApnPreference.java index 4e89efc781c..9a6eeaf46da 100755 --- a/src/com/android/settings/ApnPreference.java +++ b/src/com/android/settings/ApnPreference.java @@ -16,6 +16,7 @@ package com.android.settings; +import static android.provider.Telephony.Carriers.CONTENT_URI; import static android.provider.Telephony.Carriers.FILTERED_URI; import android.content.ContentUris; @@ -36,6 +37,7 @@ import android.widget.RelativeLayout; public class ApnPreference extends Preference implements CompoundButton.OnCheckedChangeListener, OnClickListener { final static String TAG = "ApnPreference"; + private boolean mDpcEnforced = false; private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; @@ -119,7 +121,8 @@ public class ApnPreference extends Preference implements Context context = getContext(); if (context != null) { int pos = Integer.parseInt(getKey()); - Uri url = ContentUris.withAppendedId(FILTERED_URI, pos); + Uri url = ContentUris.withAppendedId( + mDpcEnforced ? FILTERED_URI : CONTENT_URI, pos); Intent editIntent = new Intent(Intent.ACTION_EDIT, url); editIntent.putExtra(ApnSettings.SUB_ID, mSubId); context.startActivity(editIntent); @@ -138,4 +141,8 @@ public class ApnPreference extends Preference implements public void setSubId(int subId) { mSubId = subId; } + + public void setDpcEnforced(boolean enforced) { + mDpcEnforced = enforced; + } } diff --git a/src/com/android/settings/ApnSettings.java b/src/com/android/settings/ApnSettings.java index 3628121808e..2c22a790e8d 100755 --- a/src/com/android/settings/ApnSettings.java +++ b/src/com/android/settings/ApnSettings.java @@ -16,6 +16,7 @@ package com.android.settings; +import static android.provider.Telephony.Carriers.CONTENT_URI; import static android.provider.Telephony.Carriers.ENFORCE_MANAGED_URI; import static android.provider.Telephony.Carriers.FILTERED_URI; @@ -291,6 +292,7 @@ public class ApnSettings extends RestrictedSettingsFragment implements mSelectedKey = getSelectedApnKey(); cursor.moveToFirst(); + boolean enforced = isDpcApnEnforced(); while (!cursor.isAfterLast()) { String name = cursor.getString(NAME_INDEX); String apn = cursor.getString(APN_INDEX); @@ -307,6 +309,7 @@ public class ApnSettings extends RestrictedSettingsFragment implements pref.setPersistent(false); pref.setOnPreferenceChangeListener(this); pref.setSubId(subId); + pref.setDpcEnforced(enforced); boolean selectable = ((type == null) || !type.equals("mms")); pref.setSelectable(selectable); @@ -398,7 +401,7 @@ public class ApnSettings extends RestrictedSettingsFragment implements @Override public boolean onPreferenceTreeClick(Preference preference) { int pos = Integer.parseInt(preference.getKey()); - Uri url = ContentUris.withAppendedId(FILTERED_URI, pos); + Uri url = ContentUris.withAppendedId(isDpcApnEnforced() ? FILTERED_URI : CONTENT_URI, pos); startActivity(new Intent(Intent.ACTION_EDIT, url)); return true; }