Removed exceptions for outgoing messages

pull/146/head
M66B 6 years ago
parent 9b0a7800ac
commit 963c245aab

@ -553,7 +553,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
draft.ui_hide = false;
draft.ui_found = false;
draft.ui_ignored = false;
draft.getAvatar(context, true);
draft.getAvatar(context);
draft.id = db.message().insertMessage(draft);
draft.write(context, body);
}
@ -831,7 +831,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
draft.ui_hide = false;
draft.ui_found = false;
draft.ui_ignored = false;
draft.getAvatar(context, true);
draft.getAvatar(context);
draft.id = db.message().insertMessage(draft);
draft.write(context, body);

@ -157,7 +157,8 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
private TextView tvReplyTo;
private TextView tvCc;
private TextView tvBcc;
private TextView tvTimeEx;
private TextView tvTimeSent;
private TextView tvTimeReceived;
private TextView tvSubjectEx;
private TextView tvHeaders;
@ -193,7 +194,8 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
ivAddContact = itemView.findViewById(R.id.ivAddContact);
tvSize = itemView.findViewById(R.id.tvSize);
tvTime = itemView.findViewById(R.id.tvTime);
tvTimeEx = itemView.findViewById(R.id.tvTimeEx);
tvTimeSent = itemView.findViewById(R.id.tvTimeSent);
tvTimeReceived = itemView.findViewById(R.id.tvTimeReceived);
ivAttachments = itemView.findViewById(R.id.ivAttachments);
tvSubject = itemView.findViewById(R.id.tvSubject);
tvPreview = itemView.findViewById(R.id.tvPreview);
@ -316,9 +318,8 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
}
}
if (!photo && identicons) {
Address[] addresses = (EntityFolder.isOutgoing(message.folderType) ? message.to : message.from);
if (addresses != null && addresses.length > 0) {
ivAvatar.setImageBitmap(Identicon.generate(addresses[0].toString(), dp24, 5, "light".equals(theme)));
if (message.from != null && message.from.length > 0) {
ivAvatar.setImageBitmap(Identicon.generate(message.from[0].toString(), dp24, 5, "light".equals(theme)));
photo = true;
} else
ivAvatar.setImageDrawable(null);
@ -338,13 +339,8 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
else
ivFlagged.setVisibility(message.count - message.unflagged > 0 ? View.VISIBLE : View.GONE);
if (EntityFolder.isOutgoing(message.folderType)) {
tvFrom.setText(MessageHelper.getFormattedAddresses(message.to, !compact));
tvTime.setText(DateUtils.getRelativeTimeSpanString(context, message.sent == null ? message.received : message.sent));
} else {
tvFrom.setText(MessageHelper.getFormattedAddresses(message.from, !compact));
tvTime.setText(DateUtils.getRelativeTimeSpanString(context, message.received));
}
tvFrom.setText(MessageHelper.getFormattedAddresses(message.from, !compact));
tvTime.setText(DateUtils.getRelativeTimeSpanString(context, message.received));
tvSize.setText(message.size == null ? null : Helper.humanReadableByteCount(message.size, true));
tvSize.setAlpha(message.content ? 1.0f : 0.5f);
@ -428,10 +424,8 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
if (show_expanded) {
ivExpanderAddress.setImageResource(show_addresses ? R.drawable.baseline_expand_less_24 : R.drawable.baseline_expand_more_24);
if (EntityFolder.isOutgoing(message.folderType))
tvTimeEx.setText(df.format(new Date(message.sent == null ? message.received : message.sent)));
else
tvTimeEx.setText(df.format(new Date(message.received)));
tvTimeSent.setText(message.sent == null ? null : df.format(new Date(message.sent)));
tvTimeReceived.setText(df.format(new Date(message.received)));
tvFromEx.setText(MessageHelper.getFormattedAddresses(message.from, true));
tvTo.setText(MessageHelper.getFormattedAddresses(message.to, true));

@ -64,7 +64,7 @@ public interface DaoMessage {
" WHEN 'unread' = :sort THEN NOT message.ui_seen" +
" WHEN 'starred' = :sort THEN message.ui_flagged" +
" ELSE 0" +
" END DESC, message.received DESC, message.sent DESC")
" END DESC, message.received DESC")
@SuppressWarnings(RoomWarnings.CURSOR_MISMATCH)
DataSource.Factory<Integer, TupleMessageEx> pagedUnifiedInbox(String sort, boolean debug);
@ -97,7 +97,7 @@ public interface DaoMessage {
" WHEN 'unread' = :sort THEN NOT message.ui_seen" +
" WHEN 'starred' = :sort THEN message.ui_flagged" +
" ELSE 0" +
" END DESC, message.received DESC, message.sent DESC")
" END DESC, message.received DESC")
@SuppressWarnings(RoomWarnings.CURSOR_MISMATCH)
DataSource.Factory<Integer, TupleMessageEx> pagedFolder(long folder, String sort, boolean found, boolean debug);
@ -131,7 +131,7 @@ public interface DaoMessage {
" WHEN 'unread' = :sort THEN NOT message.ui_seen" +
" WHEN 'starred' = :sort THEN message.ui_flagged" +
" ELSE 0" +
" END DESC, message.received DESC, message.sent DESC")
" END DESC, message.received DESC")
DataSource.Factory<Integer, TupleMessageEx> pagedThread(long account, String thread, boolean found, String sort, boolean debug);
@Query("SELECT COUNT(id)" +
@ -155,7 +155,7 @@ public interface DaoMessage {
" FROM message" +
" WHERE folder = :folder" +
" AND ui_found = :found" +
" ORDER BY message.received DESC, message.sent DESC")
" ORDER BY message.received DESC")
List<Long> getMessageByFolder(long folder, boolean found);
@Query("SELECT *" +
@ -213,7 +213,7 @@ public interface DaoMessage {
" JOIN folder ON folder.id = message.folder" +
" WHERE account.`synchronize`" +
" AND folder.unified" +
" AND (account.created IS NULL OR IFNULL(message.sent, message.received) > account.created)" +
" AND (account.created IS NULL OR message.received > account.created)" +
" AND NOT message.ui_seen" +
" AND NOT message.ui_hide" +
" AND NOT message.ui_found" +

@ -191,15 +191,13 @@ public class EntityMessage implements Serializable {
}
}
void getAvatar(Context context, boolean outgoing) {
void getAvatar(Context context) {
if (ContextCompat.checkSelfPermission(context, Manifest.permission.READ_CONTACTS)
== PackageManager.PERMISSION_GRANTED) {
try {
Address[] addresses = (outgoing ? this.to : this.from);
if (addresses != null)
for (int i = 0; i < addresses.length; i++) {
String email = ((InternetAddress) addresses[i]).getAddress();
if (this.from != null)
for (int i = 0; i < this.from.length; i++) {
String email = ((InternetAddress) this.from[i]).getAddress();
Cursor cursor = null;
try {
ContentResolver resolver = context.getContentResolver();
@ -223,7 +221,7 @@ public class EntityMessage implements Serializable {
this.avatar = ContactsContract.Contacts.getLookupUri(contactId, lookupKey).toString();
if (!TextUtils.isEmpty(displayName))
((InternetAddress) addresses[i]).setPersonal(displayName);
((InternetAddress) this.from[i]).setPersonal(displayName);
}
} finally {
if (cursor != null)
@ -239,7 +237,7 @@ public class EntityMessage implements Serializable {
static String getQuote(Context context, long id) throws IOException {
EntityMessage message = DB.getInstance(context).message().getMessage(id);
return String.format("<p>%s %s:</p><blockquote>%s</blockquote>",
Html.escapeHtml(new Date(message.sent == null ? message.received : message.sent).toString()),
Html.escapeHtml(new Date(message.received).toString()),
Html.escapeHtml(MessageHelper.getFormattedAddresses(message.from, true)),
HtmlHelper.sanitize(EntityMessage.read(context, id)));
}

@ -1211,7 +1211,7 @@ public class FragmentCompose extends FragmentEx {
result.draft.ui_hide = false;
result.draft.ui_found = false;
result.draft.ui_ignored = false;
result.draft.getAvatar(context, true);
result.draft.getAvatar(context);
result.draft.id = db.message().insertMessage(result.draft);
result.draft.write(context, body == null ? "" : body);

@ -471,7 +471,7 @@ public class ServiceSynchronize extends LifecycleService {
sb.append("<strong>").append(MessageHelper.getFormattedAddresses(message.from, false)).append("</strong>");
if (!TextUtils.isEmpty(message.subject))
sb.append(": ").append(message.subject);
sb.append(" ").append(df.format(new Date(message.sent == null ? message.received : message.sent)));
sb.append(" ").append(df.format(new Date(message.received)));
sb.append("<br>");
}
@ -536,7 +536,7 @@ public class ServiceSynchronize extends LifecycleService {
.setContentTitle(MessageHelper.getFormattedAddresses(message.from, true))
.setContentIntent(piContent)
.setSound(uri)
.setWhen(message.sent == null ? message.received : message.sent)
.setWhen(message.received)
.setDeleteIntent(piDelete)
.setPriority(Notification.PRIORITY_DEFAULT)
.setCategory(Notification.CATEGORY_MESSAGE)
@ -2015,7 +2015,7 @@ public class ServiceSynchronize extends LifecycleService {
message.ui_hide = false;
message.ui_found = found;
message.ui_ignored = false;
message.getAvatar(context, folder.isOutgoing());
message.getAvatar(context);
message.id = db.message().insertMessage(message);

@ -372,7 +372,7 @@
app:layout_constraintTop_toBottomOf="@id/tvCc" />
<TextView
android:id="@+id/tvTimeEx"
android:id="@+id/tvTimeSent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
@ -382,6 +382,17 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvBcc" />
<TextView
android:id="@+id/tvTimeReceived"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:text="12:34:56"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textIsSelectable="true"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvTimeSent" />
<TextView
android:id="@+id/tvSubjectEx"
android:layout_width="0dp"
@ -393,7 +404,7 @@
android:textIsSelectable="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvTimeEx" />
app:layout_constraintTop_toBottomOf="@id/tvTimeReceived" />
<View
android:id="@+id/vSeparatorHeaders"
@ -552,7 +563,7 @@
android:id="@+id/grpAddress"
android:layout_width="0dp"
android:layout_height="0dp"
app:constraint_referenced_ids="tvFromExTitle,tvFromEx,tvToTitle,tvTo,tvReplyToTitle,tvReplyTo,tvCcTitle,tvCc,tvBccTitle,tvBcc,tvTimeEx,tvSubjectEx" />
app:constraint_referenced_ids="tvFromExTitle,tvFromEx,tvToTitle,tvTo,tvReplyToTitle,tvReplyTo,tvCcTitle,tvCc,tvBccTitle,tvBcc,tvTimeSent,tvTimeReceived,tvSubjectEx" />
<androidx.constraintlayout.widget.Group
android:id="@+id/grpHeaders"

@ -369,7 +369,7 @@
app:layout_constraintTop_toBottomOf="@id/tvCc" />
<TextView
android:id="@+id/tvTimeEx"
android:id="@+id/tvTimeSent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
@ -379,6 +379,17 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvBcc" />
<TextView
android:id="@+id/tvTimeReceived"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:text="12:34:56"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textIsSelectable="true"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvTimeSent" />
<TextView
android:id="@+id/tvSubjectEx"
android:layout_width="0dp"
@ -390,7 +401,7 @@
android:textIsSelectable="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvTimeEx" />
app:layout_constraintTop_toBottomOf="@id/tvTimeReceived" />
<View
android:id="@+id/vSeparatorHeaders"
@ -549,7 +560,7 @@
android:id="@+id/grpAddress"
android:layout_width="0dp"
android:layout_height="0dp"
app:constraint_referenced_ids="tvFromExTitle,tvFromEx,tvToTitle,tvTo,tvReplyToTitle,tvReplyTo,tvCcTitle,tvCc,tvBccTitle,tvBcc,tvTimeEx,tvSubjectEx" />
app:constraint_referenced_ids="tvFromExTitle,tvFromEx,tvToTitle,tvTo,tvReplyToTitle,tvReplyTo,tvCcTitle,tvCc,tvBccTitle,tvBcc,tvTimeSent,tvTimeReceived,tvSubjectEx" />
<androidx.constraintlayout.widget.Group
android:id="@+id/grpHeaders"

Loading…
Cancel
Save