Merge "Change to actually remove user/carrier edited entries on delete()." into 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;
}