Thread with no recipients getting created
Bug 6453254
Don't allow a thread to be created with no recipients. Return null so
the situation can be dealt with by the caller.
Change-Id: Idd82ac5967524287e894ecd72b2bc01a1d3f639f
diff --git a/src/com/android/providers/telephony/MmsProvider.java b/src/com/android/providers/telephony/MmsProvider.java
index 7f259d7..5e3e1f1 100644
--- a/src/com/android/providers/telephony/MmsProvider.java
+++ b/src/com/android/providers/telephony/MmsProvider.java
@@ -353,7 +353,7 @@
Long threadId = values.getAsLong(Mms.THREAD_ID);
String address = values.getAsString(CanonicalAddressesColumns.ADDRESS);
- if (((threadId == null) || (threadId == 0)) && (address != null)) {
+ if (((threadId == null) || (threadId == 0)) && (!TextUtils.isEmpty(address))) {
finalValues.put(Mms.THREAD_ID, Threads.getOrCreateThreadId(getContext(), address));
}
diff --git a/src/com/android/providers/telephony/MmsSmsProvider.java b/src/com/android/providers/telephony/MmsSmsProvider.java
index b304166..19a612c 100644
--- a/src/com/android/providers/telephony/MmsSmsProvider.java
+++ b/src/com/android/providers/telephony/MmsSmsProvider.java
@@ -462,7 +462,9 @@
throw new IllegalStateException("Unrecognized URI:" + uri);
}
- cursor.setNotificationUri(getContext().getContentResolver(), MmsSms.CONTENT_URI);
+ if (cursor != null) {
+ cursor.setNotificationUri(getContext().getContentResolver(), MmsSms.CONTENT_URI);
+ }
return cursor;
}
@@ -613,8 +615,12 @@
Set<Long> addressIds = getAddressIds(recipients);
String recipientIds = "";
- // optimize for size==1, which should be most of the cases
- if (addressIds.size() == 1) {
+ if (addressIds.size() == 0) {
+ Log.e(LOG_TAG, "getThreadId: NO receipients specified -- NOT creating thread",
+ new Exception());
+ return null;
+ } else if (addressIds.size() == 1) {
+ // optimize for size==1, which should be most of the cases
for (Long addressId : addressIds) {
recipientIds = Long.toString(addressId);
}
diff --git a/src/com/android/providers/telephony/SmsProvider.java b/src/com/android/providers/telephony/SmsProvider.java
index 063b8fa..15e008d 100644
--- a/src/com/android/providers/telephony/SmsProvider.java
+++ b/src/com/android/providers/telephony/SmsProvider.java
@@ -434,7 +434,7 @@
Long threadId = values.getAsLong(Sms.THREAD_ID);
String address = values.getAsString(Sms.ADDRESS);
- if (((threadId == null) || (threadId == 0)) && (address != null)) {
+ if (((threadId == null) || (threadId == 0)) && (!TextUtils.isEmpty(address))) {
values.put(Sms.THREAD_ID, Threads.getOrCreateThreadId(
getContext(), address));
}