Merge "Add mimetype to account, widget intents."
diff --git a/src/com/android/mail/providers/Account.java b/src/com/android/mail/providers/Account.java
index f31126b..1ca6b3e 100644
--- a/src/com/android/mail/providers/Account.java
+++ b/src/com/android/mail/providers/Account.java
@@ -119,13 +119,14 @@
*/
public final Uri composeIntentUri;
+ public final String mimeType;
/**
* Total number of members that comprise an instance of an account. This is
* the number of members that need to be serialized or parceled. This
* includes the members described above and name and type from the
* superclass.
*/
- private static final int NUMBER_MEMBERS = 17;
+ private static final int NUMBER_MEMBERS = 18;
/**
* Examples of expected format for the joined account strings
@@ -161,7 +162,8 @@
out.append(settingsQueryUri).append(ACCOUNT_COMPONENT_SEPARATOR);
out.append(helpIntentUri).append(ACCOUNT_COMPONENT_SEPARATOR);
out.append(syncStatus).append(ACCOUNT_COMPONENT_SEPARATOR);
- out.append(composeIntentUri);
+ out.append(composeIntentUri).append(ACCOUNT_COMPONENT_SEPARATOR);
+ out.append(mimeType);
return out.toString();
}
@@ -193,6 +195,7 @@
helpIntentUri = Uri.parse(accountMembers[14]);
syncStatus = Integer.valueOf(accountMembers[15]);
composeIntentUri = Uri.parse(accountMembers[16]);
+ mimeType = accountMembers[17];
}
public Account(Parcel in) {
@@ -212,6 +215,7 @@
helpIntentUri = in.readParcelable(null);
syncStatus = in.readInt();
composeIntentUri = in.readParcelable(null);
+ mimeType = in.readString();
}
public Account(Cursor cursor) {
@@ -241,6 +245,7 @@
syncStatus = cursor.getInt(UIProvider.ACCOUNT_SYNC_STATUS_COLUMN);
final String compose = cursor.getString(UIProvider.ACCOUNT_COMPOSE_INTENT_URI_COLUMN);
composeIntentUri = !TextUtils.isEmpty(compose) ? Uri.parse(compose) : null;
+ mimeType = cursor.getString(UIProvider.ACCOUNT_MIME_TYPE_COLUMN);
}
/**
@@ -289,6 +294,7 @@
dest.writeParcelable(helpIntentUri, 0);
dest.writeInt(syncStatus);
dest.writeParcelable(composeIntentUri, 0);
+ dest.writeString(mimeType);
}
/**
@@ -335,6 +341,8 @@
sb.append(syncStatus);
sb.append(",composeIntentUri=");
sb.append(composeIntentUri);
+ sb.append(",mimeType=");
+ sb.append(mimeType);
return sb.toString();
}
@@ -364,7 +372,8 @@
Objects.equal(settingsQueryUri, other.settingsQueryUri) &&
Objects.equal(helpIntentUri, other.helpIntentUri) &&
(syncStatus == other.syncStatus) &&
- Objects.equal(composeIntentUri, other.composeIntentUri);
+ Objects.equal(composeIntentUri, other.composeIntentUri) &&
+ TextUtils.equals(mimeType, other.mimeType);
}
@Override
@@ -372,7 +381,7 @@
return super.hashCode() ^ Objects.hashCode(name, type, capabilities, providerVersion,
uri, folderListUri, searchUri, accountFromAddressesUri, saveDraftUri,
sendMessageUri, expungeMessageUri, undoUri, settingsIntentUri, settingsQueryUri,
- helpIntentUri, syncStatus, composeIntentUri);
+ helpIntentUri, syncStatus, composeIntentUri, mimeType);
}
@SuppressWarnings("hiding")
diff --git a/src/com/android/mail/providers/AccountCacheProvider.java b/src/com/android/mail/providers/AccountCacheProvider.java
index 583b79b..11c6772 100644
--- a/src/com/android/mail/providers/AccountCacheProvider.java
+++ b/src/com/android/mail/providers/AccountCacheProvider.java
@@ -178,6 +178,8 @@
builder.add(Integer.valueOf((int)account.syncStatus));
} else if (TextUtils.equals(column, UIProvider.AccountColumns.COMPOSE_URI)) {
builder.add(account.composeIntentUri);
+ } else if (TextUtils.equals(column, UIProvider.AccountColumns.MIME_TYPE)) {
+ builder.add(account.mimeType);
} else {
throw new IllegalStateException("Column not found: " + column);
}
diff --git a/src/com/android/mail/providers/UIProvider.java b/src/com/android/mail/providers/UIProvider.java
index dec32f9..b130c3d 100644
--- a/src/com/android/mail/providers/UIProvider.java
+++ b/src/com/android/mail/providers/UIProvider.java
@@ -94,7 +94,8 @@
AccountColumns.SETTINGS_QUERY_URI,
AccountColumns.SYNC_STATUS,
AccountColumns.HELP_INTENT_URI,
- AccountColumns.COMPOSE_URI
+ AccountColumns.COMPOSE_URI,
+ AccountColumns.MIME_TYPE
};
public static final int ACCOUNT_ID_COLUMN = 0;
@@ -114,6 +115,7 @@
public static final int ACCOUNT_SYNC_STATUS_COLUMN = 14;
public static final int ACCOUNT_HELP_INTENT_URI_COLUMN = 15;
public static final int ACCOUNT_COMPOSE_INTENT_URI_COLUMN = 16;
+ public static final int ACCOUNT_MIME_TYPE_COLUMN = 17;
public static final class AccountCapabilities {
/**
@@ -301,6 +303,10 @@
* of account to be shown.
*/
public static final String COMPOSE_URI = "composeUri";
+ /**
+ * Mime-type defining this account.
+ */
+ public static final String MIME_TYPE = "mimeType";
}
// We define a "folder" as anything that contains a list of conversations.
diff --git a/src/com/android/mail/utils/Utils.java b/src/com/android/mail/utils/Utils.java
index d56dcde..e06613d 100644
--- a/src/com/android/mail/utils/Utils.java
+++ b/src/com/android/mail/utils/Utils.java
@@ -573,7 +573,7 @@
Account account) {
final Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
- intent.setDataAndType(conversation.uri, "application/mail-ls");
+ intent.setDataAndType(conversation.uri, account.mimeType);
intent.putExtra(Utils.EXTRA_ACCOUNT, account);
intent.putExtra(Utils.EXTRA_FOLDER, folder);
intent.putExtra(Utils.EXTRA_CONVERSATION, conversation);
@@ -589,7 +589,7 @@
public static Intent createViewFolderIntent(Folder folder, Account account) {
final Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
- intent.setDataAndType(folder.uri, "application/mail-ls");
+ intent.setDataAndType(folder.uri, account.mimeType);
intent.putExtra(Utils.EXTRA_ACCOUNT, account);
intent.putExtra(Utils.EXTRA_FOLDER, folder);
return intent;