OSDN Git Service

Fix the crash when editing or deleting APN.
[android-x86/packages-apps-Settings.git] / src / com / android / settings / ApnSettings.java
index 3628121..2c22a79 100755 (executable)
@@ -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;
     }