Save/restore draft info (ref message/quote pos) in EmailProvider
Bug: 6581587 Change-Id: Idd7f8b905611ef567f8f5de3d936bb8f919c869a
This commit is contained in:
parent
401ae68822
commit
aa9a5a703a
|
@ -515,8 +515,8 @@ public abstract class EmailContent {
|
||||||
public static final String FLAGS = "flags";
|
public static final String FLAGS = "flags";
|
||||||
|
|
||||||
// Sync related identifiers
|
// Sync related identifiers
|
||||||
// Any client-required identifier
|
// Saved draft info (reusing the never-used "clientId" column)
|
||||||
public static final String CLIENT_ID = "clientId";
|
public static final String DRAFT_INFO = "clientId";
|
||||||
// The message-id in the message's header
|
// The message-id in the message's header
|
||||||
public static final String MESSAGE_ID = "messageId";
|
public static final String MESSAGE_ID = "messageId";
|
||||||
|
|
||||||
|
@ -575,7 +575,7 @@ public abstract class EmailContent {
|
||||||
public static final int CONTENT_FLAG_ATTACHMENT_COLUMN = 7;
|
public static final int CONTENT_FLAG_ATTACHMENT_COLUMN = 7;
|
||||||
public static final int CONTENT_FLAGS_COLUMN = 8;
|
public static final int CONTENT_FLAGS_COLUMN = 8;
|
||||||
public static final int CONTENT_SERVER_ID_COLUMN = 9;
|
public static final int CONTENT_SERVER_ID_COLUMN = 9;
|
||||||
public static final int CONTENT_CLIENT_ID_COLUMN = 10;
|
public static final int CONTENT_DRAFT_INFO_COLUMN = 10;
|
||||||
public static final int CONTENT_MESSAGE_ID_COLUMN = 11;
|
public static final int CONTENT_MESSAGE_ID_COLUMN = 11;
|
||||||
public static final int CONTENT_MAILBOX_KEY_COLUMN = 12;
|
public static final int CONTENT_MAILBOX_KEY_COLUMN = 12;
|
||||||
public static final int CONTENT_ACCOUNT_KEY_COLUMN = 13;
|
public static final int CONTENT_ACCOUNT_KEY_COLUMN = 13;
|
||||||
|
@ -596,7 +596,7 @@ public abstract class EmailContent {
|
||||||
MessageColumns.SUBJECT, MessageColumns.FLAG_READ,
|
MessageColumns.SUBJECT, MessageColumns.FLAG_READ,
|
||||||
MessageColumns.FLAG_LOADED, MessageColumns.FLAG_FAVORITE,
|
MessageColumns.FLAG_LOADED, MessageColumns.FLAG_FAVORITE,
|
||||||
MessageColumns.FLAG_ATTACHMENT, MessageColumns.FLAGS,
|
MessageColumns.FLAG_ATTACHMENT, MessageColumns.FLAGS,
|
||||||
SyncColumns.SERVER_ID, MessageColumns.CLIENT_ID,
|
SyncColumns.SERVER_ID, MessageColumns.DRAFT_INFO,
|
||||||
MessageColumns.MESSAGE_ID, MessageColumns.MAILBOX_KEY,
|
MessageColumns.MESSAGE_ID, MessageColumns.MAILBOX_KEY,
|
||||||
MessageColumns.ACCOUNT_KEY, MessageColumns.FROM_LIST,
|
MessageColumns.ACCOUNT_KEY, MessageColumns.FROM_LIST,
|
||||||
MessageColumns.TO_LIST, MessageColumns.CC_LIST,
|
MessageColumns.TO_LIST, MessageColumns.CC_LIST,
|
||||||
|
@ -719,7 +719,7 @@ public abstract class EmailContent {
|
||||||
|
|
||||||
public String mServerId;
|
public String mServerId;
|
||||||
public long mServerTimeStamp;
|
public long mServerTimeStamp;
|
||||||
public String mClientId;
|
public int mDraftInfo;
|
||||||
public String mMessageId;
|
public String mMessageId;
|
||||||
|
|
||||||
public long mMailboxKey;
|
public long mMailboxKey;
|
||||||
|
@ -808,6 +808,10 @@ public abstract class EmailContent {
|
||||||
// compatibility
|
// compatibility
|
||||||
public static final int FLAG_TYPE_REPLY_ALL = 1 << 21;
|
public static final int FLAG_TYPE_REPLY_ALL = 1 << 21;
|
||||||
|
|
||||||
|
// Flag used in draftInfo to indicate that the reference message should be appended
|
||||||
|
public static final int DRAFT_INFO_APPEND_REF_MESSAGE = 1 << 24;
|
||||||
|
public static final int DRAFT_INFO_QUOTE_POS_MASK = 0xFFFFFF;
|
||||||
|
|
||||||
/** a pseudo ID for "no message". */
|
/** a pseudo ID for "no message". */
|
||||||
public static final long NO_MESSAGE = -1L;
|
public static final long NO_MESSAGE = -1L;
|
||||||
|
|
||||||
|
@ -831,7 +835,7 @@ public abstract class EmailContent {
|
||||||
|
|
||||||
values.put(SyncColumns.SERVER_ID, mServerId);
|
values.put(SyncColumns.SERVER_ID, mServerId);
|
||||||
values.put(SyncColumns.SERVER_TIMESTAMP, mServerTimeStamp);
|
values.put(SyncColumns.SERVER_TIMESTAMP, mServerTimeStamp);
|
||||||
values.put(MessageColumns.CLIENT_ID, mClientId);
|
values.put(MessageColumns.DRAFT_INFO, mDraftInfo);
|
||||||
values.put(MessageColumns.MESSAGE_ID, mMessageId);
|
values.put(MessageColumns.MESSAGE_ID, mMessageId);
|
||||||
|
|
||||||
values.put(MessageColumns.MAILBOX_KEY, mMailboxKey);
|
values.put(MessageColumns.MAILBOX_KEY, mMailboxKey);
|
||||||
|
@ -872,7 +876,7 @@ public abstract class EmailContent {
|
||||||
mFlags = cursor.getInt(CONTENT_FLAGS_COLUMN);
|
mFlags = cursor.getInt(CONTENT_FLAGS_COLUMN);
|
||||||
mServerId = cursor.getString(CONTENT_SERVER_ID_COLUMN);
|
mServerId = cursor.getString(CONTENT_SERVER_ID_COLUMN);
|
||||||
mServerTimeStamp = cursor.getLong(CONTENT_SERVER_TIMESTAMP_COLUMN);
|
mServerTimeStamp = cursor.getLong(CONTENT_SERVER_TIMESTAMP_COLUMN);
|
||||||
mClientId = cursor.getString(CONTENT_CLIENT_ID_COLUMN);
|
mDraftInfo = cursor.getInt(CONTENT_DRAFT_INFO_COLUMN);
|
||||||
mMessageId = cursor.getString(CONTENT_MESSAGE_ID_COLUMN);
|
mMessageId = cursor.getString(CONTENT_MESSAGE_ID_COLUMN);
|
||||||
mMailboxKey = cursor.getLong(CONTENT_MAILBOX_KEY_COLUMN);
|
mMailboxKey = cursor.getLong(CONTENT_MAILBOX_KEY_COLUMN);
|
||||||
mAccountKey = cursor.getLong(CONTENT_ACCOUNT_KEY_COLUMN);
|
mAccountKey = cursor.getLong(CONTENT_ACCOUNT_KEY_COLUMN);
|
||||||
|
|
|
@ -157,7 +157,7 @@ public final class DBHelper {
|
||||||
+ MessageColumns.FLAG_FAVORITE + " integer, "
|
+ MessageColumns.FLAG_FAVORITE + " integer, "
|
||||||
+ MessageColumns.FLAG_ATTACHMENT + " integer, "
|
+ MessageColumns.FLAG_ATTACHMENT + " integer, "
|
||||||
+ MessageColumns.FLAGS + " integer, "
|
+ MessageColumns.FLAGS + " integer, "
|
||||||
+ MessageColumns.CLIENT_ID + " integer, "
|
+ MessageColumns.DRAFT_INFO + " integer, "
|
||||||
+ MessageColumns.MESSAGE_ID + " text, "
|
+ MessageColumns.MESSAGE_ID + " text, "
|
||||||
+ MessageColumns.MAILBOX_KEY + " integer, "
|
+ MessageColumns.MAILBOX_KEY + " integer, "
|
||||||
+ MessageColumns.ACCOUNT_KEY + " integer, "
|
+ MessageColumns.ACCOUNT_KEY + " integer, "
|
||||||
|
|
|
@ -2374,6 +2374,12 @@ outer:
|
||||||
values.put(UIProvider.MessageColumns.ATTACHMENTS,
|
values.put(UIProvider.MessageColumns.ATTACHMENTS,
|
||||||
com.android.mail.providers.Attachment.toJSONArray(uiAtts));
|
com.android.mail.providers.Attachment.toJSONArray(uiAtts));
|
||||||
}
|
}
|
||||||
|
if (msg.mDraftInfo != 0) {
|
||||||
|
values.put(UIProvider.MessageColumns.APPEND_REF_MESSAGE_CONTENT,
|
||||||
|
(msg.mDraftInfo & Message.DRAFT_INFO_APPEND_REF_MESSAGE) != 0 ? 1 : 0);
|
||||||
|
values.put(UIProvider.MessageColumns.QUOTE_START_POS,
|
||||||
|
msg.mDraftInfo & Message.DRAFT_INFO_QUOTE_POS_MASK);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ((msg.mFlags & Message.FLAG_INCOMING_MEETING_INVITE) != 0) {
|
if ((msg.mFlags & Message.FLAG_INCOMING_MEETING_INVITE) != 0) {
|
||||||
values.put(UIProvider.MessageColumns.EVENT_INTENT_URI,
|
values.put(UIProvider.MessageColumns.EVENT_INTENT_URI,
|
||||||
|
@ -3163,6 +3169,11 @@ outer:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
msg.mFlags = flags;
|
msg.mFlags = flags;
|
||||||
|
int draftInfo = values.getAsInteger(UIProvider.MessageColumns.QUOTE_START_POS);
|
||||||
|
if (values.getAsInteger(UIProvider.MessageColumns.APPEND_REF_MESSAGE_CONTENT) != 0) {
|
||||||
|
draftInfo |= Message.DRAFT_INFO_APPEND_REF_MESSAGE;
|
||||||
|
}
|
||||||
|
msg.mDraftInfo = draftInfo;
|
||||||
String ref = values.getAsString(UIProvider.MessageColumns.REF_MESSAGE_ID);
|
String ref = values.getAsString(UIProvider.MessageColumns.REF_MESSAGE_ID);
|
||||||
if (ref != null && msg.mQuotedTextStartPos > 0) {
|
if (ref != null && msg.mQuotedTextStartPos > 0) {
|
||||||
String refId = Uri.parse(ref).getLastPathSegment();
|
String refId = Uri.parse(ref).getLastPathSegment();
|
||||||
|
|
Loading…
Reference in New Issue