summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--AndroidManifest.xml4
-rw-r--r--src/com/android/providers/telephony/MmsSmsDatabaseHelper.java4
-rw-r--r--src/com/android/providers/telephony/SmsProvider.java62
-rw-r--r--src/com/android/providers/telephony/TelephonyProvider.java21
4 files changed, 36 insertions, 55 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index c1af548..dfbf918 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -29,9 +29,7 @@
android:writePermission="android.permission.WRITE_SMS" />
<provider android:name="MmsProvider" android:authorities="mms" android:multiprocess="true"
android:readPermission="android.permission.READ_SMS"
- android:writePermission="android.permission.WRITE_SMS">
- <grant-uri-permission android:pathPrefix="/part/" />
- </provider>
+ android:writePermission="android.permission.WRITE_SMS" />
<provider android:name="MmsSmsProvider" android:authorities="mms-sms" android:multiprocess="true"
android:readPermission="android.permission.READ_SMS"
android:writePermission="android.permission.WRITE_SMS" />
diff --git a/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java b/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java
index 31d7cb7..1644186 100644
--- a/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java
+++ b/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java
@@ -230,10 +230,6 @@ public class MmsSmsDatabaseHelper extends SQLiteOpenHelper {
}
c.close();
}
- // remove orphaned threads
- db.delete("threads",
- "_id NOT IN (SELECT DISTINCT thread_id FROM sms " +
- "UNION SELECT DISTINCT thread_id FROM pdu)", null);
}
public static int deleteOneSms(SQLiteDatabase db, int message_id) {
diff --git a/src/com/android/providers/telephony/SmsProvider.java b/src/com/android/providers/telephony/SmsProvider.java
index ee60142..56b39de 100644
--- a/src/com/android/providers/telephony/SmsProvider.java
+++ b/src/com/android/providers/telephony/SmsProvider.java
@@ -46,9 +46,7 @@ public class SmsProvider extends ContentProvider {
private static final Uri NOTIFICATION_URI = Uri.parse("content://sms");
private static final Uri SIM_URI = Uri.parse("content://sms/sim");
static final String TABLE_SMS = "sms";
- private static final String TABLE_RAW = "raw";
- private static final String TABLE_SR_PENDING = "sr_pending";
-
+
private static final Integer ONE = Integer.valueOf(1);
/**
@@ -246,12 +244,7 @@ public class SmsProvider extends ContentProvider {
ArrayList<SmsMessage> messages = smsManager.getAllMessagesFromSim();
ArrayList<ArrayList> singleRow = new ArrayList<ArrayList>();
- SmsMessage message = messages.get(messageIndex);
- if (message == null) {
- throw new IllegalArgumentException(
- "Message not retrieved. ID: " + messageIndexString);
- }
- singleRow.add(convertSimToSms(message));
+ singleRow.add(convertSimToSms(messages.get(messageIndex)));
return withSimNotificationUri(
new ArrayListCursor(SIM_COLUMNS, singleRow));
} catch (NumberFormatException exception) {
@@ -269,10 +262,7 @@ public class SmsProvider extends ContentProvider {
ArrayList<ArrayList> rows = new ArrayList<ArrayList>();
for (int count = messages.size(), i = 0; i < count; i++) {
- SmsMessage message = messages.get(i);
- if (message != null) {
- rows.add(convertSimToSms(message));
- }
+ rows.add(convertSimToSms(messages.get(i)));
}
return withSimNotificationUri(new ArrayListCursor(SIM_COLUMNS, rows));
}
@@ -562,17 +552,14 @@ public class SmsProvider extends ContentProvider {
public int update(
Uri url, ContentValues values, String where, String[] whereArgs) {
int count = 0;
- String table = TABLE_SMS;
- String extraWhere = null;
SQLiteDatabase db = mOpenHelper.getWritableDatabase();
-
switch (sURLMatcher.match(url)) {
case SMS_RAW_MESSAGE:
- table = TABLE_RAW;
+ count = db.update("raw", values, where, whereArgs);
break;
case SMS_STATUS_PENDING:
- table = TABLE_SR_PENDING;
+ count = db.update("sr_pending", values, where, whereArgs);
break;
case SMS_ALL:
@@ -583,10 +570,17 @@ public class SmsProvider extends ContentProvider {
case SMS_DRAFT:
case SMS_OUTBOX:
case SMS_CONVERSATIONS:
+ count = db.update(
+ TABLE_SMS, values, where, whereArgs);
break;
case SMS_ALL_ID:
- extraWhere = "_id=" + url.getPathSegments().get(0);
+ if (where != null) {
+ throw new UnsupportedOperationException(
+ "WHERE not supported");
+ }
+ count = db.update(TABLE_SMS, values, "_id="
+ + url.getPathSegments().get(0), null);
break;
case SMS_INBOX_ID:
@@ -594,25 +588,40 @@ public class SmsProvider extends ContentProvider {
case SMS_SENT_ID:
case SMS_DRAFT_ID:
case SMS_OUTBOX_ID:
- extraWhere = "_id=" + url.getPathSegments().get(1);
+ if (where != null) {
+ throw new UnsupportedOperationException(
+ "WHERE not supported for this URI");
+ }
+ count = db.update(TABLE_SMS, values, "_id="
+ + url.getPathSegments().get(1), null);
break;
case SMS_CONVERSATIONS_ID: {
- String threadId = url.getPathSegments().get(1);
+ int threadId;
try {
- Integer.parseInt(threadId);
+ threadId = Integer.parseInt(url.getPathSegments().get(1));
} catch (Exception ex) {
- Log.e(TAG, "Bad conversation thread id: " + threadId);
+ Log.e(TAG, "Bad conversation thread id: "
+ + url.getPathSegments().get(1));
+ count = 0;
break;
}
- extraWhere = "thread_id=" + threadId;
+ if (where != null) {
+ throw new UnsupportedOperationException(
+ "WHERE not supported for this URI");
+ }
+ count = db.update(
+ TABLE_SMS, values, "thread_id = " + threadId,
+ null);
break;
}
case SMS_STATUS_ID:
- extraWhere = "_id=" + url.getPathSegments().get(1);
+ String idString = url.getPathSegments().get(1);
+
+ count = db.update(TABLE_SMS, values, "_id=" + idString, null);
break;
default:
@@ -620,9 +629,6 @@ public class SmsProvider extends ContentProvider {
"URI " + url + " not supported");
}
- where = DatabaseUtils.concatenateWhere(where, extraWhere);
- count = db.update(table, values, where, whereArgs);
-
if (count > 0) {
notifyChange(url);
}
diff --git a/src/com/android/providers/telephony/TelephonyProvider.java b/src/com/android/providers/telephony/TelephonyProvider.java
index 324d007..95018be 100644
--- a/src/com/android/providers/telephony/TelephonyProvider.java
+++ b/src/com/android/providers/telephony/TelephonyProvider.java
@@ -48,7 +48,6 @@ public class TelephonyProvider extends ContentProvider
private static final int URL_TELEPHONY = 1;
private static final int URL_CURRENT = 2;
private static final int URL_ID = 3;
- private static final int URL_RESTOREAPN = 4;
private static final String TAG = "TelephonyProvider";
private static final String CARRIERS_TABLE = "carriers";
@@ -63,7 +62,6 @@ public class TelephonyProvider extends ContentProvider
s_urlMatcher.addURI("telephony", "carriers", URL_TELEPHONY);
s_urlMatcher.addURI("telephony", "carriers/current", URL_CURRENT);
s_urlMatcher.addURI("telephony", "carriers/#", URL_ID);
- s_urlMatcher.addURI("telephony", "carriers/restore", URL_RESTOREAPN);
s_currentNullMap = new ContentValues(1);
s_currentNullMap.put("current", (Long) null);
@@ -124,10 +122,6 @@ public class TelephonyProvider extends ContentProvider
"type TEXT," +
"current INTEGER);");
- initDatabase(db);
- }
-
- private void initDatabase(SQLiteDatabase db) {
// Read internal APNS data
Resources r = mContext.getResources();
XmlResourceParser parser = r.getXml(com.android.internal.R.xml.apns);
@@ -435,12 +429,6 @@ public class TelephonyProvider extends ContentProvider
break;
}
- case URL_RESTOREAPN: {
- count = 1;
- restoreDefaultAPN();
- break;
- }
-
default: {
throw new UnsupportedOperationException("Cannot delete that URL: " + url);
}
@@ -486,7 +474,7 @@ public class TelephonyProvider extends ContentProvider
new String[] { url.getLastPathSegment() });
break;
}
-
+
default: {
throw new UnsupportedOperationException("Cannot update that URL: " + url);
}
@@ -506,11 +494,4 @@ public class TelephonyProvider extends ContentProvider
}
private SQLiteOpenHelper mOpenHelper;
-
- private void restoreDefaultAPN() {
- SQLiteDatabase db = mOpenHelper.getWritableDatabase();
-
- db.delete(CARRIERS_TABLE, null, null);
- ((DatabaseHelper) mOpenHelper).initDatabase(db);
- }
}