Show if drafts

This commit is contained in:
M66B 2019-01-01 15:26:30 +01:00
parent 47fed9180b
commit 186d6e1943
7 changed files with 56 additions and 3 deletions

View File

@ -153,6 +153,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
private TextView tvFrom;
private TextView tvSize;
private TextView tvTime;
private ImageView ivDraft;
private ImageView ivAnswered;
private ImageView ivAttachments;
private TextView tvSubject;
@ -211,6 +212,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
tvFrom = itemView.findViewById(R.id.tvFrom);
tvSize = itemView.findViewById(R.id.tvSize);
tvTime = itemView.findViewById(R.id.tvTime);
ivDraft = itemView.findViewById(R.id.ivDraft);
ivAnswered = itemView.findViewById(R.id.ivAnswered);
ivAttachments = itemView.findViewById(R.id.ivAttachments);
tvSubject = itemView.findViewById(R.id.tvSubject);
@ -295,6 +297,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
tvFrom.setText(null);
tvSize.setText(null);
tvTime.setText(null);
ivDraft.setVisibility(View.GONE);
ivAnswered.setVisibility(View.GONE);
ivAttachments.setVisibility(View.GONE);
tvSubject.setText(null);
@ -340,6 +343,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
tvFrom.setAlpha(message.duplicate ? LOW_LIGHT : 1.0f);
tvSize.setAlpha(message.duplicate ? LOW_LIGHT : 1.0f);
tvTime.setAlpha(message.duplicate ? LOW_LIGHT : 1.0f);
ivDraft.setAlpha(message.duplicate ? LOW_LIGHT : 1.0f);
ivAnswered.setAlpha(message.duplicate ? LOW_LIGHT : 1.0f);
ivAttachments.setAlpha(message.duplicate ? LOW_LIGHT : 1.0f);
tvSubject.setAlpha(message.duplicate ? LOW_LIGHT : 1.0f);
@ -423,6 +427,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
tvSize.setVisibility(message.size == null || message.content ? View.GONE : View.VISIBLE);
tvTime.setText(DateUtils.getRelativeTimeSpanString(context, message.received));
ivDraft.setVisibility(message.drafts > 0 ? View.VISIBLE : View.GONE);
ivAnswered.setVisibility(message.ui_answered ? View.VISIBLE : View.GONE);
ivAttachments.setVisibility(message.attachments > 0 ? View.VISIBLE : View.GONE);
tvNoInternetAttachments.setVisibility(View.GONE);

View File

@ -53,6 +53,7 @@ public interface DaoMessage {
", " + unseen_unified + " AS unseen" +
", " + unflagged_unified + " AS unflagged" +
", (SELECT COUNT(a.id) FROM attachment a WHERE a.message = message.id) AS attachments" +
", SUM(CASE WHEN folder.type = '" + EntityFolder.DRAFTS + "' THEN 1 ELSE 0 END) AS drafts" +
", 0 AS duplicate" +
", COUNT(DISTINCT message.msgid) AS visible" +
", MAX(CASE WHEN folder.unified THEN message.received ELSE 0 END) AS dummy" +
@ -90,6 +91,7 @@ public interface DaoMessage {
", " + unseen_folder + " AS unseen" +
", " + unflagged_folder + " AS unflagged" +
", (SELECT COUNT(a.id) FROM attachment a WHERE a.message = message.id) AS attachments" +
", SUM(CASE WHEN folder.type = '" + EntityFolder.DRAFTS + "' THEN 1 ELSE 0 END) AS drafts" +
", COUNT(DISTINCT message.msgid) AS visible" +
", 0 AS duplicate" +
", MAX(CASE WHEN folder.id = :folder THEN message.received ELSE 0 END) AS dummy" +
@ -120,6 +122,7 @@ public interface DaoMessage {
", CASE WHEN message.ui_seen THEN 0 ELSE 1 END AS unseen" +
", CASE WHEN message.ui_flagged THEN 0 ELSE 1 END AS unflagged" +
", (SELECT COUNT(a.id) FROM attachment a WHERE a.message = message.id) AS attachments" +
", CASE WHEN folder.type = '" + EntityFolder.DRAFTS + "' THEN 1 ELSE 0 END AS drafts" +
", 1 AS visible" +
", ((folder.type = '" + EntityFolder.ARCHIVE + "' OR folder.type = '" + EntityFolder.SENT + "')" +
@ -201,6 +204,7 @@ public interface DaoMessage {
", CASE WHEN message.ui_seen THEN 0 ELSE 1 END AS unseen" +
", CASE WHEN message.ui_flagged THEN 0 ELSE 1 END AS unflagged" +
", (SELECT COUNT(a.id) FROM attachment a WHERE a.message = message.id) AS attachments" +
", CASE WHEN folder.type = '" + EntityFolder.DRAFTS + "' THEN 1 ELSE 0 END AS drafts" +
", 1 AS visible" +
", 0 AS duplicate" +
" FROM message" +
@ -217,6 +221,7 @@ public interface DaoMessage {
", 1 AS unseen" +
", 0 AS unflagged" +
", 0 AS attachments" +
", 0 AS drafts" +
", 1 AS visible" +
", 0 AS duplicate" +
" FROM message" +

View File

@ -30,6 +30,7 @@ public class TupleMessageEx extends EntityMessage {
public int unseen;
public int unflagged;
public int attachments;
public int drafts;
public int visible;
public boolean duplicate;
@ -48,6 +49,7 @@ public class TupleMessageEx extends EntityMessage {
this.unseen == other.unseen &&
this.unflagged == other.unflagged &&
this.attachments == other.attachments &&
this.drafts == other.drafts &&
this.visible == other.visible &&
this.duplicate == other.duplicate);
}

View File

@ -208,6 +208,26 @@
app:layout_constraintStart_toEndOf="@id/ivAttachment"
app:layout_constraintTop_toTopOf="@id/ivAttachment" />
<ImageView
android:id="@+id/ivDraft"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginTop="12dp"
android:src="@drawable/baseline_edit_24"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/ivAttachment" />
<TextView
android:id="@+id/tvDraft"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="18dp"
android:text="@string/title_legend_draft"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
app:layout_constraintBottom_toBottomOf="@id/ivDraft"
app:layout_constraintStart_toEndOf="@id/ivDraft"
app:layout_constraintTop_toTopOf="@id/ivDraft" />
<ImageView
android:id="@+id/ivAnswered"
android:layout_width="24dp"
@ -215,7 +235,7 @@
android:layout_marginTop="12dp"
android:src="@drawable/baseline_reply_24"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/ivAttachment" />
app:layout_constraintTop_toBottomOf="@id/ivDraft" />
<TextView
android:id="@+id/tvAnswered"

View File

@ -102,6 +102,16 @@
app:layout_constraintEnd_toStartOf="@+id/ivFlagged"
app:layout_constraintTop_toBottomOf="@id/paddingTop" />
<ImageView
android:id="@+id/ivDraft"
android:layout_width="21dp"
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:src="@drawable/baseline_edit_24"
app:layout_constraintBottom_toBottomOf="@+id/tvSubject"
app:layout_constraintStart_toEndOf="@id/paddingStart"
app:layout_constraintTop_toTopOf="@+id/tvSubject" />
<ImageView
android:id="@+id/ivAnswered"
android:layout_width="21dp"
@ -109,7 +119,7 @@
android:layout_marginStart="6dp"
android:src="@drawable/baseline_reply_24"
app:layout_constraintBottom_toBottomOf="@+id/tvSubject"
app:layout_constraintStart_toEndOf="@id/paddingStart"
app:layout_constraintStart_toEndOf="@id/ivDraft"
app:layout_constraintTop_toTopOf="@+id/tvSubject" />
<ImageView

View File

@ -125,6 +125,16 @@
app:layout_constraintEnd_toEndOf="@id/paddingEnd"
app:layout_constraintTop_toBottomOf="@id/paddingTop" />
<ImageView
android:id="@+id/ivDraft"
android:layout_width="21dp"
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:src="@drawable/baseline_edit_24"
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
app:layout_constraintStart_toEndOf="@id/ivAvatar"
app:layout_constraintTop_toTopOf="@+id/tvFolder" />
<ImageView
android:id="@+id/ivAnswered"
android:layout_width="21dp"
@ -132,7 +142,7 @@
android:layout_marginStart="6dp"
android:src="@drawable/baseline_reply_24"
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
app:layout_constraintStart_toEndOf="@id/ivAvatar"
app:layout_constraintStart_toEndOf="@id/ivDraft"
app:layout_constraintTop_toTopOf="@+id/tvFolder" />
<ImageView

View File

@ -370,6 +370,7 @@
<string name="title_legend_thread">Conversation</string>
<string name="title_legend_cc">CC/BCC</string>
<string name="title_legend_attachment">Attachment</string>
<string name="title_legend_draft">Draft/edit</string>
<string name="title_legend_answered">Answered</string>
<string name="title_legend_contacts">Contacts</string>
<string name="title_legend_view">View content</string>