Merge "Make sure we check for a uri before parsing it."
diff --git a/src/com/android/mail/providers/Account.java b/src/com/android/mail/providers/Account.java
index a33a3c7..4f9085e 100644
--- a/src/com/android/mail/providers/Account.java
+++ b/src/com/android/mail/providers/Account.java
@@ -189,20 +189,32 @@
providerVersion = Integer.valueOf(accountMembers[2]);
uri = Uri.parse(accountMembers[3]);
capabilities = Integer.valueOf(accountMembers[4]);
- folderListUri = Uri.parse(accountMembers[5]);
- searchUri = Uri.parse(accountMembers[6]);
- accountFromAddressesUri = Uri.parse(accountMembers[7]);
- saveDraftUri = Uri.parse(accountMembers[8]);
- sendMessageUri = Uri.parse(accountMembers[9]);
- expungeMessageUri = Uri.parse(accountMembers[10]);
- undoUri = Uri.parse(accountMembers[11]);
- settingsIntentUri = Uri.parse(accountMembers[12]);
- settingsQueryUri = Uri.parse(accountMembers[13]);
- helpIntentUri = Uri.parse(accountMembers[14]);
+ folderListUri = !TextUtils.isEmpty(accountMembers[5]) ?
+ Uri.parse(accountMembers[5]) : null;
+ searchUri =!TextUtils.isEmpty(accountMembers[6]) ?
+ Uri.parse(accountMembers[6]) : null;
+ accountFromAddressesUri = !TextUtils.isEmpty(accountMembers[7]) ?
+ Uri.parse(accountMembers[7]) : null;
+ saveDraftUri = !TextUtils.isEmpty(accountMembers[8]) ?
+ Uri.parse(accountMembers[8]) : null;
+ sendMessageUri = !TextUtils.isEmpty(accountMembers[9]) ?
+ Uri.parse(accountMembers[9]) : null;
+ expungeMessageUri = !TextUtils.isEmpty(accountMembers[10]) ?
+ Uri.parse(accountMembers[10]) : null;
+ undoUri = !TextUtils.isEmpty(accountMembers[11]) ?
+ Uri.parse(accountMembers[11]) : null;
+ settingsIntentUri = !TextUtils.isEmpty(accountMembers[12]) ?
+ Uri.parse(accountMembers[12]) : null;
+ settingsQueryUri = !TextUtils.isEmpty(accountMembers[13]) ?
+ Uri.parse(accountMembers[13]) : null;
+ helpIntentUri = !TextUtils.isEmpty(accountMembers[14]) ?
+ Uri.parse(accountMembers[14]) : null;
syncStatus = Integer.valueOf(accountMembers[15]);
- composeIntentUri = Uri.parse(accountMembers[16]);
+ composeIntentUri = !TextUtils.isEmpty(accountMembers[16]) ?
+ Uri.parse(accountMembers[16]) : null;
mimeType = accountMembers[17];
- recentFolderListUri = Uri.parse(accountMembers[18]);
+ recentFolderListUri = !TextUtils.isEmpty(accountMembers[18]) ?
+ Uri.parse(accountMembers[18]) : null;
}
public Account(Parcel in) {
@@ -238,8 +250,10 @@
folderListUri = Uri.parse(cursor.getString(UIProvider.ACCOUNT_FOLDER_LIST_URI_COLUMN));
final String search = cursor.getString(UIProvider.ACCOUNT_SEARCH_URI_COLUMN);
searchUri = !TextUtils.isEmpty(search) ? Uri.parse(search) : null;
- saveDraftUri = Uri.parse(cursor.getString(UIProvider.ACCOUNT_SAVE_DRAFT_URI_COLUMN));
- sendMessageUri = Uri.parse(cursor.getString(UIProvider.ACCOUNT_SEND_MESSAGE_URI_COLUMN));
+ final String saveDraft = cursor.getString(UIProvider.ACCOUNT_SAVE_DRAFT_URI_COLUMN);
+ saveDraftUri = !TextUtils.isEmpty(saveDraft) ? Uri.parse(saveDraft) : null;
+ final String send = cursor.getString(UIProvider.ACCOUNT_SEND_MESSAGE_URI_COLUMN);
+ sendMessageUri = !TextUtils.isEmpty(send) ? Uri.parse(send) : null;
final String expunge = cursor.getString(UIProvider.ACCOUNT_EXPUNGE_MESSAGE_URI_COLUMN);
expungeMessageUri = !TextUtils.isEmpty(expunge) ? Uri.parse(expunge) : null;
final String undo = cursor.getString(UIProvider.ACCOUNT_UNDO_URI_COLUMN);
diff --git a/src/com/android/mail/providers/Conversation.java b/src/com/android/mail/providers/Conversation.java
index 0138a9d..cfada1f 100644
--- a/src/com/android/mail/providers/Conversation.java
+++ b/src/com/android/mail/providers/Conversation.java
@@ -23,6 +23,7 @@
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
+import android.text.TextUtils;
import com.android.mail.browse.ConversationCursor.ConversationOperation;
import com.android.mail.browse.ConversationCursor.ConversationProvider;
@@ -130,8 +131,9 @@
}
snippet = cursor.getString(UIProvider.CONVERSATION_SNIPPET_COLUMN);
hasAttachments = cursor.getInt(UIProvider.CONVERSATION_HAS_ATTACHMENTS_COLUMN) == 1;
- messageListUri = Uri.parse(cursor
- .getString(UIProvider.CONVERSATION_MESSAGE_LIST_URI_COLUMN));
+ String messageList = cursor
+ .getString(UIProvider.CONVERSATION_MESSAGE_LIST_URI_COLUMN);
+ messageListUri = !TextUtils.isEmpty(messageList) ? Uri.parse(messageList) : null;
senders = cursor.getString(UIProvider.CONVERSATION_SENDER_INFO_COLUMN);
numMessages = cursor.getInt(UIProvider.CONVERSATION_NUM_MESSAGES_COLUMN);
numDrafts = cursor.getInt(UIProvider.CONVERSATION_NUM_DRAFTS_COLUMN);