|
|
|
@ -872,37 +872,39 @@ public class FragmentCompose extends FragmentEx {
|
|
|
|
|
String subject = args.getString("subject");
|
|
|
|
|
String body = args.getString("body");
|
|
|
|
|
|
|
|
|
|
// Get draft & selected identity
|
|
|
|
|
DB db = DB.getInstance(context);
|
|
|
|
|
EntityMessage draft = db.message().getMessage(id);
|
|
|
|
|
EntityIdentity identity = db.identity().getIdentity(iid);
|
|
|
|
|
|
|
|
|
|
// Draft deleted by server
|
|
|
|
|
if (draft == null)
|
|
|
|
|
throw new MessageRemovedException("Draft for action was deleted");
|
|
|
|
|
|
|
|
|
|
Log.i(Helper.TAG, "Load action id=" + draft.id + " action=" + action);
|
|
|
|
|
|
|
|
|
|
// Convert data
|
|
|
|
|
Address afrom[] = (identity == null ? null : new Address[]{new InternetAddress(identity.email, identity.name)});
|
|
|
|
|
Address ato[] = (TextUtils.isEmpty(to) ? null : InternetAddress.parse(to));
|
|
|
|
|
Address acc[] = (TextUtils.isEmpty(cc) ? null : InternetAddress.parse(cc));
|
|
|
|
|
Address abcc[] = (TextUtils.isEmpty(bcc) ? null : InternetAddress.parse(bcc));
|
|
|
|
|
|
|
|
|
|
// Update draft
|
|
|
|
|
draft.identity = (identity == null ? null : identity.id);
|
|
|
|
|
draft.from = afrom;
|
|
|
|
|
draft.to = ato;
|
|
|
|
|
draft.cc = acc;
|
|
|
|
|
draft.bcc = abcc;
|
|
|
|
|
draft.subject = subject;
|
|
|
|
|
draft.received = new Date().getTime();
|
|
|
|
|
|
|
|
|
|
String pbody = "<pre>" + body.replaceAll("\\r?\\n", "<br />") + "</pre>";
|
|
|
|
|
EntityMessage draft;
|
|
|
|
|
|
|
|
|
|
DB db = DB.getInstance(context);
|
|
|
|
|
try {
|
|
|
|
|
db.beginTransaction();
|
|
|
|
|
|
|
|
|
|
// Get draft & selected identity
|
|
|
|
|
draft = db.message().getMessage(id);
|
|
|
|
|
EntityIdentity identity = db.identity().getIdentity(iid);
|
|
|
|
|
|
|
|
|
|
// Draft deleted by server
|
|
|
|
|
if (draft == null)
|
|
|
|
|
throw new MessageRemovedException("Draft for action was deleted");
|
|
|
|
|
|
|
|
|
|
Log.i(Helper.TAG, "Load action id=" + draft.id + " action=" + action);
|
|
|
|
|
|
|
|
|
|
// Convert data
|
|
|
|
|
Address afrom[] = (identity == null ? null : new Address[]{new InternetAddress(identity.email, identity.name)});
|
|
|
|
|
Address ato[] = (TextUtils.isEmpty(to) ? null : InternetAddress.parse(to));
|
|
|
|
|
Address acc[] = (TextUtils.isEmpty(cc) ? null : InternetAddress.parse(cc));
|
|
|
|
|
Address abcc[] = (TextUtils.isEmpty(bcc) ? null : InternetAddress.parse(bcc));
|
|
|
|
|
|
|
|
|
|
// Update draft
|
|
|
|
|
draft.identity = (identity == null ? null : identity.id);
|
|
|
|
|
draft.from = afrom;
|
|
|
|
|
draft.to = ato;
|
|
|
|
|
draft.cc = acc;
|
|
|
|
|
draft.bcc = abcc;
|
|
|
|
|
draft.subject = subject;
|
|
|
|
|
draft.received = new Date().getTime();
|
|
|
|
|
|
|
|
|
|
String pbody = "<pre>" + body.replaceAll("\\r?\\n", "<br />") + "</pre>";
|
|
|
|
|
|
|
|
|
|
// Execute action
|
|
|
|
|
if (action == R.id.action_trash) {
|
|
|
|
|
draft.ui_seen = true;
|
|
|
|
@ -932,13 +934,11 @@ public class FragmentCompose extends FragmentEx {
|
|
|
|
|
draft.write(context, pbody);
|
|
|
|
|
|
|
|
|
|
// Check data
|
|
|
|
|
if (action == R.id.action_send) {
|
|
|
|
|
if (draft.identity == null)
|
|
|
|
|
throw new IllegalArgumentException(context.getString(R.string.title_from_missing));
|
|
|
|
|
if (draft.identity == null)
|
|
|
|
|
throw new IllegalArgumentException(context.getString(R.string.title_from_missing));
|
|
|
|
|
|
|
|
|
|
if (draft.to == null && draft.cc == null && draft.bcc == null)
|
|
|
|
|
throw new IllegalArgumentException(context.getString(R.string.title_to_missing));
|
|
|
|
|
}
|
|
|
|
|
if (draft.to == null && draft.cc == null && draft.bcc == null)
|
|
|
|
|
throw new IllegalArgumentException(context.getString(R.string.title_to_missing));
|
|
|
|
|
|
|
|
|
|
// Save message ID
|
|
|
|
|
String msgid = draft.msgid;
|
|
|
|
|