merge in mnc-release history after reset to mnc-dev
diff --git a/src/com/android/providers/telephony/TelephonyProvider.java b/src/com/android/providers/telephony/TelephonyProvider.java
index ab20f2c..a019250 100644
--- a/src/com/android/providers/telephony/TelephonyProvider.java
+++ b/src/com/android/providers/telephony/TelephonyProvider.java
@@ -1642,6 +1642,12 @@
     {
         int count = 0;
         int subId = SubscriptionManager.getDefaultSubId();
+        String userOrCarrierEdited = ") and (" +
+                Telephony.Carriers.EDITED + "=" + Telephony.Carriers.USER_EDITED +  " or " +
+                Telephony.Carriers.EDITED + "=" + Telephony.Carriers.CARRIER_EDITED + ")";
+        String notUserOrCarrierEdited = ") and (" +
+                Telephony.Carriers.EDITED + "!=" + Telephony.Carriers.USER_EDITED +  " and " +
+                Telephony.Carriers.EDITED + "!=" + Telephony.Carriers.CARRIER_EDITED + ")";
         ContentValues cv = new ContentValues();
         cv.put(Telephony.Carriers.EDITED, Telephony.Carriers.USER_DELETED);
 
@@ -1667,8 +1673,11 @@
 
             case URL_TELEPHONY:
             {
-                // Mark as user deleted instead of deleting
-                count = db.update(CARRIERS_TABLE, cv, where, whereArgs);
+                // Delete user/carrier edited entries
+                count = db.delete(CARRIERS_TABLE, "(" + where + userOrCarrierEdited, whereArgs);
+                // Otherwise mark as user deleted instead of deleting
+                count += db.update(CARRIERS_TABLE, cv, "(" + where + notUserOrCarrierEdited,
+                        whereArgs);
                 break;
             }
 
@@ -1687,15 +1696,23 @@
 
             case URL_CURRENT:
             {
-                // Mark as user deleted instead of deleting
-                count = db.update(CARRIERS_TABLE, cv, where, whereArgs);
+                // Delete user/carrier edited entries
+                count = db.delete(CARRIERS_TABLE, "(" + where + userOrCarrierEdited, whereArgs);
+                // Otherwise mark as user deleted instead of deleting
+                count += db.update(CARRIERS_TABLE, cv, "(" + where + notUserOrCarrierEdited,
+                        whereArgs);
                 break;
             }
 
             case URL_ID:
             {
-                // Mark as user deleted instead of deleting
-                count = db.update(CARRIERS_TABLE, cv, Telephony.Carriers._ID + "=?",
+                // Delete user/carrier edited entries
+                count = db.delete(CARRIERS_TABLE,
+                        "(" + Telephony.Carriers._ID + "=?" + userOrCarrierEdited,
+                        new String[] { url.getLastPathSegment() });
+                // Otherwise mark as user deleted instead of deleting
+                count += db.update(CARRIERS_TABLE, cv,
+                        "(" + Telephony.Carriers._ID + "=?" + notUserOrCarrierEdited,
                         new String[] { url.getLastPathSegment() });
                 break;
             }