mirror of https://github.com/M66B/FairEmail.git
Switch to warning flag for authentication failures
This commit is contained in:
parent
3d814f5ff9
commit
6032fad099
6
FAQ.md
6
FAQ.md
|
@ -1624,9 +1624,9 @@ This is why texts with dots are sometimes incorrectly recognized as links, which
|
|||
Spam filtering, verification of the [DKIM](https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail) signature
|
||||
and [SPF](https://en.wikipedia.org/wiki/Sender_Policy_Framework) authorization is a task of email servers, not of an email client.
|
||||
|
||||
However, FairEmail can show a small vertical warning stripe at the end of the message header
|
||||
if DKIM, SPF or [DMARC](https://en.wikipedia.org/wiki/DMARC) authentication failed on the receiving server.
|
||||
You can enable this in the settings.
|
||||
However, FairEmail will show a small warning flag
|
||||
when DKIM, SPF or [DMARC](https://en.wikipedia.org/wiki/DMARC) authentication failed on the receiving server.
|
||||
You can enable/disable this in the miscellaneous settings.
|
||||
|
||||
<br />
|
||||
|
||||
|
|
|
@ -47,6 +47,7 @@ This app starts a foreground service with a low priority status bar notification
|
|||
* Confirm showing images to prevent tracking
|
||||
* Confirm opening links to prevent tracking and phishing
|
||||
* Automatically recognize and disable tracking images
|
||||
* Warn when a message could not be [authenticated](https://github.com/M66B/open-source-email/blob/master/FAQ.md#user-content-faq92)
|
||||
|
||||
## Pro features
|
||||
|
||||
|
|
|
@ -207,7 +207,6 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
BottomNavigationView.OnNavigationItemSelectedListener, View.OnLongClickListener {
|
||||
private View view;
|
||||
private View vwColor;
|
||||
private View vwStatus;
|
||||
private ImageView ivExpander;
|
||||
private ImageView ivFlagged;
|
||||
private ImageView ivAvatar;
|
||||
|
@ -215,6 +214,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
private TextView tvSize;
|
||||
private TextView tvTime;
|
||||
private ImageView ivType;
|
||||
private ImageView ivAuth;
|
||||
private ImageView ivSnoozed;
|
||||
private ImageView ivBrowsed;
|
||||
private ImageView ivAnswered;
|
||||
|
@ -309,7 +309,6 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
view = itemView.findViewById(R.id.clItem);
|
||||
|
||||
vwColor = itemView.findViewById(R.id.vwColor);
|
||||
vwStatus = itemView.findViewById(R.id.vwStatus);
|
||||
ivExpander = itemView.findViewById(R.id.ivExpander);
|
||||
ivFlagged = itemView.findViewById(R.id.ivFlagged);
|
||||
ivAvatar = itemView.findViewById(R.id.ivAvatar);
|
||||
|
@ -317,6 +316,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
tvSize = itemView.findViewById(R.id.tvSize);
|
||||
tvTime = itemView.findViewById(R.id.tvTime);
|
||||
ivType = itemView.findViewById(R.id.ivType);
|
||||
ivAuth = itemView.findViewById(R.id.ivAuth);
|
||||
ivSnoozed = itemView.findViewById(R.id.ivSnoozed);
|
||||
ivBrowsed = itemView.findViewById(R.id.ivBrowsed);
|
||||
ivAnswered = itemView.findViewById(R.id.ivAnswered);
|
||||
|
@ -518,7 +518,6 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
|
||||
private void clear() {
|
||||
vwColor.setVisibility(View.GONE);
|
||||
vwStatus.setVisibility(View.GONE);
|
||||
ivExpander.setVisibility(View.GONE);
|
||||
ivFlagged.setVisibility(View.GONE);
|
||||
ivAvatar.setVisibility(View.GONE);
|
||||
|
@ -526,6 +525,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
tvSize.setText(null);
|
||||
tvTime.setText(null);
|
||||
ivType.setVisibility(View.GONE);
|
||||
ivAuth.setVisibility(View.GONE);
|
||||
ivSnoozed.setVisibility(View.GONE);
|
||||
ivBrowsed.setVisibility(View.GONE);
|
||||
ivAnswered.setVisibility(View.GONE);
|
||||
|
@ -587,6 +587,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
tvSize.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
||||
tvTime.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
||||
ivType.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
||||
ivAuth.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
||||
ivSnoozed.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
||||
ivBrowsed.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
||||
ivAnswered.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
||||
|
@ -624,13 +625,6 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
vwColor.setBackgroundColor(message.accountColor == null ? Color.TRANSPARENT : message.accountColor);
|
||||
vwColor.setVisibility(Helper.isPro(context) ? View.VISIBLE : View.INVISIBLE);
|
||||
|
||||
vwStatus.setBackgroundColor(
|
||||
Boolean.FALSE.equals(message.dkim) ||
|
||||
Boolean.FALSE.equals(message.spf) ||
|
||||
Boolean.FALSE.equals(message.dmarc)
|
||||
? colorAccent : Color.TRANSPARENT);
|
||||
vwStatus.setVisibility(authentication ? View.VISIBLE : View.GONE);
|
||||
|
||||
// Expander
|
||||
boolean expanded = (viewType == ViewType.THREAD && properties.getValue("expanded", message.id));
|
||||
ivExpander.setImageLevel(expanded ? 0 /* less */ : 1 /* more */);
|
||||
|
@ -650,6 +644,11 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
// Line 2
|
||||
tvSubject.setText(message.subject);
|
||||
|
||||
boolean authenticated =
|
||||
!(Boolean.FALSE.equals(message.dkim) ||
|
||||
Boolean.FALSE.equals(message.spf) ||
|
||||
Boolean.FALSE.equals(message.dmarc));
|
||||
|
||||
// Line 3
|
||||
ivType.setImageResource(message.drafts > 0
|
||||
? R.drawable.baseline_edit_24 : EntityFolder.getIcon(message.folderType));
|
||||
|
@ -657,6 +656,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
(viewType == ViewType.UNIFIED && !EntityFolder.INBOX.equals(message.folderType)) ||
|
||||
(viewType == ViewType.THREAD && EntityFolder.SENT.equals(message.folderType))
|
||||
? View.VISIBLE : View.GONE);
|
||||
ivAuth.setVisibility(authentication && !authenticated ? View.VISIBLE : View.GONE);
|
||||
ivSnoozed.setVisibility(message.ui_snoozed == null ? View.GONE : View.VISIBLE);
|
||||
ivBrowsed.setVisibility(message.ui_browsed ? View.VISIBLE : View.GONE);
|
||||
ivAnswered.setVisibility(message.ui_answered ? View.VISIBLE : View.GONE);
|
||||
|
@ -2918,7 +2918,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
this.contrast = prefs.getBoolean("contrast", false);
|
||||
this.monospaced = prefs.getBoolean("monospaced", false);
|
||||
this.autoimages = (this.contacts && prefs.getBoolean("autoimages", false));
|
||||
this.authentication = prefs.getBoolean("authentication", false);
|
||||
this.authentication = prefs.getBoolean("authentication", true);
|
||||
this.debug = prefs.getBoolean("debug", false);
|
||||
|
||||
AsyncDifferConfig<TupleMessageEx> config = new AsyncDifferConfig.Builder<>(DIFF_CALLBACK)
|
||||
|
|
|
@ -243,7 +243,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
|
|||
swSubscribedOnly.setChecked(prefs.getBoolean("subscribed_only", false));
|
||||
|
||||
swEnglish.setChecked(prefs.getBoolean("english", false));
|
||||
swAuthentication.setChecked(prefs.getBoolean("authentication", false));
|
||||
swAuthentication.setChecked(prefs.getBoolean("authentication", true));
|
||||
swWatchdog.setChecked(prefs.getBoolean("watchdog", true));
|
||||
swUpdates.setChecked(prefs.getBoolean("updates", true));
|
||||
swUpdates.setVisibility(Helper.isPlayStoreInstall(getContext()) ? View.GONE : View.VISIBLE);
|
||||
|
|
|
@ -23,9 +23,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_thread"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_message_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:srcCompat="@drawable/baseline_message_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvThread"
|
||||
|
@ -45,9 +45,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_zoom"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_format_size_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivThread" />
|
||||
app:layout_constraintTop_toBottomOf="@id/ivThread"
|
||||
app:srcCompat="@drawable/baseline_format_size_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvZoom"
|
||||
|
@ -67,9 +67,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_draft"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_edit_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivZoom" />
|
||||
app:layout_constraintTop_toBottomOf="@id/ivZoom"
|
||||
app:srcCompat="@drawable/baseline_edit_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvDraft"
|
||||
|
@ -83,15 +83,38 @@
|
|||
app:layout_constraintStart_toEndOf="@id/ivDraft"
|
||||
app:layout_constraintTop_toTopOf="@id/ivDraft" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivAuth"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_auth"
|
||||
android:padding="12dp"
|
||||
android:tint="?colorError"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivDraft"
|
||||
app:srcCompat="@drawable/baseline_flag_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvAuth"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/title_legend_auth"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
||||
app:layout_constraintBottom_toBottomOf="@id/ivAuth"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/ivAuth"
|
||||
app:layout_constraintTop_toTopOf="@id/ivAuth" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivSnoozed"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_snoozed"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_timelapse_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivDraft" />
|
||||
app:layout_constraintTop_toBottomOf="@id/ivAuth"
|
||||
app:srcCompat="@drawable/baseline_timelapse_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvSnoozed"
|
||||
|
@ -111,9 +134,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_browsed"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_playlist_add_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivSnoozed" />
|
||||
app:layout_constraintTop_toBottomOf="@id/ivSnoozed"
|
||||
app:srcCompat="@drawable/baseline_playlist_add_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvBrowsed"
|
||||
|
@ -133,9 +156,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_answered"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_reply_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivBrowsed" />
|
||||
app:layout_constraintTop_toBottomOf="@id/ivBrowsed"
|
||||
app:srcCompat="@drawable/baseline_reply_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvAnswered"
|
||||
|
@ -155,9 +178,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_plain_only"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_notes_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivAnswered" />
|
||||
app:layout_constraintTop_toBottomOf="@id/ivAnswered"
|
||||
app:srcCompat="@drawable/baseline_notes_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvPlain"
|
||||
|
@ -177,9 +200,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_receipt"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_playlist_add_check_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivPlain" />
|
||||
app:layout_constraintTop_toBottomOf="@id/ivPlain"
|
||||
app:srcCompat="@drawable/baseline_playlist_add_check_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvReceipt"
|
||||
|
@ -199,9 +222,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_attachment"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_attachment_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivReceipt" />
|
||||
app:layout_constraintTop_toBottomOf="@id/ivReceipt"
|
||||
app:srcCompat="@drawable/baseline_attachment_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvAttachment"
|
||||
|
@ -221,9 +244,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_flagged"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_star_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvAttachment" />
|
||||
app:layout_constraintTop_toBottomOf="@id/tvAttachment"
|
||||
app:srcCompat="@drawable/baseline_star_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvStarred"
|
||||
|
@ -243,9 +266,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_contacts"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_import_contacts_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivStarred" />
|
||||
app:layout_constraintTop_toBottomOf="@id/ivStarred"
|
||||
app:srcCompat="@drawable/baseline_import_contacts_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvContacts"
|
||||
|
@ -265,9 +288,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_search"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_search_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivContacts" />
|
||||
app:layout_constraintTop_toBottomOf="@id/ivContacts"
|
||||
app:srcCompat="@drawable/baseline_search_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvSearch"
|
||||
|
@ -287,9 +310,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_view"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_visibility_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivSearch" />
|
||||
app:layout_constraintTop_toBottomOf="@id/ivSearch"
|
||||
app:srcCompat="@drawable/baseline_visibility_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvView"
|
||||
|
@ -309,9 +332,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_hide"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_visibility_off_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivView" />
|
||||
app:layout_constraintTop_toBottomOf="@id/ivView"
|
||||
app:srcCompat="@drawable/baseline_visibility_off_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvHide"
|
||||
|
@ -331,9 +354,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_download"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_cloud_download_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivHide" />
|
||||
app:layout_constraintTop_toBottomOf="@id/ivHide"
|
||||
app:srcCompat="@drawable/baseline_cloud_download_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvDownload"
|
||||
|
@ -353,9 +376,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_external_image"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_image_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivDownload" />
|
||||
app:layout_constraintTop_toBottomOf="@id/ivDownload"
|
||||
app:srcCompat="@drawable/baseline_image_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvExternalImage"
|
||||
|
@ -375,9 +398,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_embedded_image"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_photo_library_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivExternalImage" />
|
||||
app:layout_constraintTop_toBottomOf="@id/ivExternalImage"
|
||||
app:srcCompat="@drawable/baseline_photo_library_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvEmbeddedImage"
|
||||
|
@ -397,9 +420,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_broken_image"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_broken_image_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivEmbeddedImage" />
|
||||
app:layout_constraintTop_toBottomOf="@id/ivEmbeddedImage"
|
||||
app:srcCompat="@drawable/baseline_broken_image_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvBrokenImage"
|
||||
|
|
|
@ -107,13 +107,26 @@
|
|||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/swEnglish" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivAuth"
|
||||
android:layout_width="21dp"
|
||||
android:layout_height="21dp"
|
||||
android:contentDescription="@string/title_legend_auth"
|
||||
android:src="@drawable/baseline_flag_24"
|
||||
android:tint="?colorError"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/swAuthentication"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/swAuthentication" />
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/swAuthentication"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="6dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:text="@string/title_advanced_authentication"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/ivAuth"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvEnglishHint"
|
||||
app:switchPadding="12dp" />
|
||||
|
||||
|
|
|
@ -115,6 +115,18 @@
|
|||
app:layout_constraintStart_toEndOf="@id/paddingStart"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvSubject" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivAuth"
|
||||
android:layout_width="21dp"
|
||||
android:layout_height="21dp"
|
||||
android:layout_marginStart="6dp"
|
||||
android:contentDescription="@string/title_legend_auth"
|
||||
android:src="@drawable/baseline_flag_24"
|
||||
android:tint="?colorError"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvSubject"
|
||||
app:layout_constraintStart_toEndOf="@id/ivType"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvSubject" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivSnoozed"
|
||||
android:layout_width="21dp"
|
||||
|
@ -123,7 +135,7 @@
|
|||
android:contentDescription="@string/title_legend_snoozed"
|
||||
android:src="@drawable/baseline_timelapse_24"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvSubject"
|
||||
app:layout_constraintStart_toEndOf="@id/ivType"
|
||||
app:layout_constraintStart_toEndOf="@id/ivAuth"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvSubject" />
|
||||
|
||||
<ImageView
|
||||
|
@ -287,15 +299,6 @@
|
|||
android:layout_width="6dp"
|
||||
android:layout_height="0dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintEnd_toStartOf="@+id/vwStatus"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<View
|
||||
android:id="@+id/vwStatus"
|
||||
android:layout_width="6dp"
|
||||
android:layout_height="0dp"
|
||||
android:background="@color/colorPrimary"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/paddingBottom"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
|
|
|
@ -140,6 +140,18 @@
|
|||
app:layout_constraintStart_toEndOf="@id/ivAvatar"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvFolder" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivAuth"
|
||||
android:layout_width="21dp"
|
||||
android:layout_height="21dp"
|
||||
android:layout_marginStart="6dp"
|
||||
android:contentDescription="@string/title_legend_auth"
|
||||
android:src="@drawable/baseline_flag_24"
|
||||
android:tint="?colorError"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
|
||||
app:layout_constraintStart_toEndOf="@id/ivType"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvFolder" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivSnoozed"
|
||||
android:layout_width="21dp"
|
||||
|
@ -148,7 +160,7 @@
|
|||
android:contentDescription="@string/title_legend_snoozed"
|
||||
android:src="@drawable/baseline_timelapse_24"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
|
||||
app:layout_constraintStart_toEndOf="@id/ivType"
|
||||
app:layout_constraintStart_toEndOf="@id/ivAuth"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvFolder" />
|
||||
|
||||
<ImageView
|
||||
|
@ -282,15 +294,6 @@
|
|||
android:layout_width="6dp"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/paddingBottom"
|
||||
app:layout_constraintEnd_toStartOf="@+id/vwStatus"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<View
|
||||
android:id="@+id/vwStatus"
|
||||
android:layout_width="6dp"
|
||||
android:layout_height="0dp"
|
||||
android:background="@color/colorPrimary"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/paddingBottom"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
|
|
|
@ -643,6 +643,7 @@
|
|||
<string name="title_legend_thread">Conversation</string>
|
||||
<string name="title_legend_zoom">Change text size</string>
|
||||
<string name="title_legend_draft">Has draft</string>
|
||||
<string name="title_legend_auth">Authentication failed</string>
|
||||
<string name="title_legend_snoozed">Is snoozed</string>
|
||||
<string name="title_legend_browsed">Is browsed or searched</string>
|
||||
<string name="title_legend_answered">Has been answered</string>
|
||||
|
|
Loading…
Reference in New Issue