mirror of
https://github.com/M66B/FairEmail.git
synced 2025-02-25 07:23:03 +00:00
Show if folder has active rules
This commit is contained in:
parent
08c37785ad
commit
f3e5159168
6 changed files with 114 additions and 62 deletions
|
@ -94,8 +94,9 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
|
|||
private ImageView ivExpander;
|
||||
|
||||
private ImageView ivUnified;
|
||||
private ImageView ivNotify;
|
||||
private ImageView ivSubscribed;
|
||||
private ImageView ivRule;
|
||||
private ImageView ivNotify;
|
||||
private TextView tvName;
|
||||
private TextView tvMessages;
|
||||
private ImageView ivMessages;
|
||||
|
@ -123,8 +124,9 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
|
|||
ivExpander = itemView.findViewById(R.id.ivExpander);
|
||||
|
||||
ivUnified = itemView.findViewById(R.id.ivUnified);
|
||||
ivNotify = itemView.findViewById(R.id.ivNotify);
|
||||
ivSubscribed = itemView.findViewById(R.id.ivSubscribed);
|
||||
ivRule = itemView.findViewById(R.id.ivRule);
|
||||
ivNotify = itemView.findViewById(R.id.ivNotify);
|
||||
tvName = itemView.findViewById(R.id.tvName);
|
||||
tvMessages = itemView.findViewById(R.id.tvMessages);
|
||||
ivMessages = itemView.findViewById(R.id.ivMessages);
|
||||
|
@ -204,8 +206,9 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
|
|||
|
||||
if (listener == null) {
|
||||
ivUnified.setVisibility(account > 0 && folder.unified ? View.VISIBLE : View.GONE);
|
||||
ivNotify.setVisibility(folder.notify ? View.VISIBLE : View.GONE);
|
||||
ivSubscribed.setVisibility(subscriptions && folder.subscribed != null && folder.subscribed ? View.VISIBLE : View.GONE);
|
||||
ivRule.setVisibility(folder.rules > 0 ? View.VISIBLE : View.GONE);
|
||||
ivNotify.setVisibility(folder.notify ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
if (folder.unseen > 0)
|
||||
|
|
|
@ -33,13 +33,16 @@ public interface DaoFolder {
|
|||
|
||||
@Query("SELECT folder.*" +
|
||||
", account.id AS accountId, account.`order` AS accountOrder, account.name AS accountName, account.color AS accountColor, account.state AS accountState" +
|
||||
", COUNT(rule.id) AS rules" +
|
||||
", COUNT(message.id) AS messages" +
|
||||
", SUM(CASE WHEN message.content = 1 THEN 1 ELSE 0 END) AS content" +
|
||||
", SUM(CASE WHEN message.ui_seen = 0 THEN 1 ELSE 0 END) AS unseen" +
|
||||
", (SELECT COUNT(operation.id) FROM operation WHERE operation.folder = folder.id AND operation.state = 'executing') AS executing" +
|
||||
", COUNT(operation.id) AS executing" +
|
||||
" FROM folder" +
|
||||
" LEFT JOIN account ON account.id = folder.account" +
|
||||
" LEFT JOIN rule ON rule.folder = folder.id AND rule.enabled" +
|
||||
" LEFT JOIN message ON message.folder = folder.id AND NOT message.ui_hide" +
|
||||
" LEFT JOIN operation ON operation.folder = folder.id AND operation.state = 'executing'" +
|
||||
" WHERE folder.account = :account AND account.synchronize" +
|
||||
" GROUP BY folder.id")
|
||||
List<TupleFolderEx> getFoldersEx(long account);
|
||||
|
@ -65,13 +68,16 @@ public interface DaoFolder {
|
|||
|
||||
@Query("SELECT folder.*" +
|
||||
", account.id AS accountId, account.`order` AS accountOrder, account.name AS accountName, account.color AS accountColor, account.state AS accountState" +
|
||||
", COUNT(rule.id) AS rules" +
|
||||
", COUNT(message.id) AS messages" +
|
||||
", SUM(CASE WHEN message.content = 1 THEN 1 ELSE 0 END) AS content" +
|
||||
", SUM(CASE WHEN message.ui_seen = 0 THEN 1 ELSE 0 END) AS unseen" +
|
||||
", (SELECT COUNT(operation.id) FROM operation WHERE operation.folder = folder.id AND operation.state = 'executing') AS executing" +
|
||||
", COUNT(operation.id) AS executing" +
|
||||
" FROM folder" +
|
||||
" LEFT JOIN account ON account.id = folder.account" +
|
||||
" LEFT JOIN rule ON rule.folder = folder.id AND rule.enabled" +
|
||||
" LEFT JOIN message ON message.folder = folder.id AND NOT message.ui_hide" +
|
||||
" LEFT JOIN operation ON operation.folder = folder.id AND operation.state = 'executing'" +
|
||||
" WHERE CASE WHEN :account IS NULL" +
|
||||
" THEN folder.unified AND account.synchronize" +
|
||||
" ELSE folder.account = :account AND account.synchronize" +
|
||||
|
@ -81,13 +87,16 @@ public interface DaoFolder {
|
|||
|
||||
@Query("SELECT folder.*" +
|
||||
", account.id AS accountId, account.`order` AS accountOrder, account.name AS accountName, account.color AS accountColor, account.state AS accountState" +
|
||||
", COUNT(rule.id) AS rules" +
|
||||
", COUNT(message.id) AS messages" +
|
||||
", SUM(CASE WHEN message.content = 1 THEN 1 ELSE 0 END) AS content" +
|
||||
", SUM(CASE WHEN message.ui_seen = 0 THEN 1 ELSE 0 END) AS unseen" +
|
||||
", (SELECT COUNT(operation.id) FROM operation WHERE operation.folder = folder.id AND operation.state = 'executing') AS executing" +
|
||||
", COUNT(operation.id) AS executing" +
|
||||
" FROM folder" +
|
||||
" JOIN account ON account.id = folder.account" +
|
||||
" LEFT JOIN rule ON rule.folder = folder.id AND rule.enabled" +
|
||||
" LEFT JOIN message ON message.folder = folder.id AND NOT message.ui_hide" +
|
||||
" LEFT JOIN operation ON operation.folder = folder.id AND operation.state = 'executing'" +
|
||||
" WHERE account.`synchronize`" +
|
||||
" AND folder.unified" +
|
||||
" GROUP BY folder.id")
|
||||
|
@ -120,14 +129,18 @@ public interface DaoFolder {
|
|||
|
||||
@Query("SELECT folder.*" +
|
||||
", account.id AS accountId, account.`order` AS accountOrder, account.name AS accountName, account.color AS accountColor, account.state AS accountState" +
|
||||
", COUNT(rule.id) AS rules" +
|
||||
", COUNT(message.id) AS messages" +
|
||||
", SUM(CASE WHEN message.content = 1 THEN 1 ELSE 0 END) AS content" +
|
||||
", SUM(CASE WHEN message.ui_seen = 0 THEN 1 ELSE 0 END) AS unseen" +
|
||||
", (SELECT COUNT(operation.id) FROM operation WHERE operation.folder = folder.id AND operation.state = 'executing') AS executing" +
|
||||
", COUNT(operation.id) AS executing" +
|
||||
" FROM folder" +
|
||||
" LEFT JOIN account ON account.id = folder.account" +
|
||||
" LEFT JOIN rule ON rule.folder = folder.id AND rule.enabled" +
|
||||
" LEFT JOIN message ON message.folder = folder.id AND NOT message.ui_hide" +
|
||||
" WHERE folder.id = :id")
|
||||
" LEFT JOIN operation ON operation.folder = folder.id AND operation.state = 'executing'" +
|
||||
" WHERE folder.id = :id" +
|
||||
" GROUP BY folder.id")
|
||||
LiveData<TupleFolderEx> liveFolderEx(long id);
|
||||
|
||||
@Query("SELECT * FROM folder ORDER BY account, name COLLATE NOCASE")
|
||||
|
|
|
@ -42,6 +42,7 @@ public class TupleFolderEx extends EntityFolder implements Serializable {
|
|||
public String accountName;
|
||||
public Integer accountColor;
|
||||
public String accountState;
|
||||
public int rules;
|
||||
public int messages;
|
||||
public int content;
|
||||
public int unseen;
|
||||
|
@ -68,6 +69,7 @@ public class TupleFolderEx extends EntityFolder implements Serializable {
|
|||
Objects.equals(this.accountName, other.accountName) &&
|
||||
Objects.equals(this.accountColor, other.accountColor) &&
|
||||
Objects.equals(this.accountState, other.accountState) &&
|
||||
this.rules == other.rules &&
|
||||
this.messages == other.messages &&
|
||||
this.content == other.content &&
|
||||
this.unseen == other.unseen &&
|
||||
|
|
|
@ -23,9 +23,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_unified"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_folder_special_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:srcCompat="@drawable/baseline_folder_special_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvUnified"
|
||||
|
@ -45,9 +45,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_inbox"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_inbox_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivType" />
|
||||
app:layout_constraintTop_toBottomOf="@id/ivType"
|
||||
app:srcCompat="@drawable/baseline_inbox_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvInbox"
|
||||
|
@ -67,9 +67,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_drafts"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_drafts_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivInbox" />
|
||||
app:layout_constraintTop_toBottomOf="@id/ivInbox"
|
||||
app:srcCompat="@drawable/baseline_drafts_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvDrafts"
|
||||
|
@ -89,9 +89,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_sent"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_send_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivDrafts" />
|
||||
app:layout_constraintTop_toBottomOf="@id/ivDrafts"
|
||||
app:srcCompat="@drawable/baseline_send_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvSent"
|
||||
|
@ -111,9 +111,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_archive"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_archive_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivSent" />
|
||||
app:layout_constraintTop_toBottomOf="@id/ivSent"
|
||||
app:srcCompat="@drawable/baseline_archive_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvArchive"
|
||||
|
@ -133,9 +133,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_trash"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_delete_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivArchive" />
|
||||
app:layout_constraintTop_toBottomOf="@id/ivArchive"
|
||||
app:srcCompat="@drawable/baseline_delete_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvTrash"
|
||||
|
@ -155,9 +155,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_junk"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_flag_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivTrash" />
|
||||
app:layout_constraintTop_toBottomOf="@id/ivTrash"
|
||||
app:srcCompat="@drawable/baseline_flag_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvJunk"
|
||||
|
@ -177,9 +177,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_primary"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_star_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivJunk" />
|
||||
app:layout_constraintTop_toBottomOf="@id/ivJunk"
|
||||
app:srcCompat="@drawable/baseline_star_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvPrimary"
|
||||
|
@ -193,37 +193,15 @@
|
|||
app:layout_constraintStart_toEndOf="@id/ivPrimary"
|
||||
app:layout_constraintTop_toTopOf="@id/ivPrimary" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivNotify"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_notify"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_notifications_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivPrimary" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvNotify"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/title_legend_notify"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
||||
app:layout_constraintBottom_toBottomOf="@id/ivNotify"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/ivNotify"
|
||||
app:layout_constraintTop_toTopOf="@id/ivNotify" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivSubscribed"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_subscribed"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_bookmark_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivNotify" />
|
||||
app:layout_constraintTop_toBottomOf="@id/ivPrimary"
|
||||
app:srcCompat="@drawable/baseline_bookmark_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvSubscribed"
|
||||
|
@ -237,6 +215,50 @@
|
|||
app:layout_constraintStart_toEndOf="@id/ivSubscribed"
|
||||
app:layout_constraintTop_toTopOf="@id/ivSubscribed" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivRule"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_edit_rules"
|
||||
android:padding="12dp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivSubscribed"
|
||||
app:srcCompat="@drawable/baseline_filter_list_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvRule"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/title_legend_rule"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
||||
app:layout_constraintBottom_toBottomOf="@id/ivRule"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/ivRule"
|
||||
app:layout_constraintTop_toTopOf="@id/ivRule" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivNotify"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_notify"
|
||||
android:padding="12dp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivRule"
|
||||
app:srcCompat="@drawable/baseline_notifications_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvNotify"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/title_legend_notify"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
||||
app:layout_constraintBottom_toBottomOf="@id/ivNotify"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/ivNotify"
|
||||
app:layout_constraintTop_toTopOf="@id/ivNotify" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvDownloadFetch"
|
||||
android:layout_width="48dp"
|
||||
|
@ -254,10 +276,10 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_download_fetch"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_mail_outline_24"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvDownloadFetchLegend"
|
||||
app:layout_constraintStart_toEndOf="@id/tvDownloadFetch"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvDownloadFetchLegend" />
|
||||
app:layout_constraintTop_toTopOf="@+id/tvDownloadFetchLegend"
|
||||
app:srcCompat="@drawable/baseline_mail_outline_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvDownloadFetchLegend"
|
||||
|
@ -269,7 +291,7 @@
|
|||
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/ivDownloadFetch"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivSubscribed" />
|
||||
app:layout_constraintTop_toBottomOf="@id/ivNotify" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvSyncKeep"
|
||||
|
@ -288,10 +310,10 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_sync_keep"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_sync_24"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvSyncKeepLegend"
|
||||
app:layout_constraintStart_toEndOf="@id/tvSyncKeep"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvSyncKeepLegend" />
|
||||
app:layout_constraintTop_toTopOf="@+id/tvSyncKeepLegend"
|
||||
app:srcCompat="@drawable/baseline_sync_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvSyncKeepLegend"
|
||||
|
@ -311,9 +333,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/title_legend_stop"
|
||||
android:padding="12dp"
|
||||
app:srcCompat="@drawable/baseline_stop_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvSyncKeepLegend" />
|
||||
app:layout_constraintTop_toBottomOf="@id/tvSyncKeepLegend"
|
||||
app:srcCompat="@drawable/baseline_stop_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvStop"
|
||||
|
|
|
@ -74,7 +74,7 @@
|
|||
app:srcCompat="@drawable/baseline_folder_special_24" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivNotify"
|
||||
android:id="@+id/ivSubscribed"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="24dp"
|
||||
android:contentDescription="@string/title_legend_notify"
|
||||
|
@ -82,18 +82,29 @@
|
|||
app:layout_constraintBottom_toBottomOf="@+id/tvName"
|
||||
app:layout_constraintStart_toEndOf="@id/ivUnified"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvName"
|
||||
app:srcCompat="@drawable/baseline_notifications_24" />
|
||||
app:srcCompat="@drawable/baseline_bookmark_24" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivSubscribed"
|
||||
android:id="@+id/ivRule"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="24dp"
|
||||
android:contentDescription="@string/title_edit_rules"
|
||||
android:paddingEnd="6dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvName"
|
||||
app:layout_constraintStart_toEndOf="@id/ivSubscribed"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvName"
|
||||
app:srcCompat="@drawable/baseline_filter_list_24" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivNotify"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="24dp"
|
||||
android:contentDescription="@string/title_legend_notify"
|
||||
android:paddingEnd="6dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvName"
|
||||
app:layout_constraintStart_toEndOf="@id/ivNotify"
|
||||
app:layout_constraintStart_toEndOf="@id/ivRule"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvName"
|
||||
app:srcCompat="@drawable/baseline_bookmark_24" />
|
||||
app:srcCompat="@drawable/baseline_notifications_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvName"
|
||||
|
@ -108,7 +119,7 @@
|
|||
android:text="Name"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
||||
app:layout_constraintEnd_toStartOf="@+id/tvMessages"
|
||||
app:layout_constraintStart_toEndOf="@id/ivSubscribed"
|
||||
app:layout_constraintStart_toEndOf="@id/ivNotify"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
|
|
|
@ -621,8 +621,9 @@
|
|||
<string name="title_legend_trash">Trash</string>
|
||||
<string name="title_legend_junk">Spam</string>
|
||||
<string name="title_legend_primary">Primary</string>
|
||||
<string name="title_legend_notify">Notify new messages</string>
|
||||
<string name="title_legend_subscribed">Subscribed to</string>
|
||||
<string name="title_legend_rule">Has rules</string>
|
||||
<string name="title_legend_notify">Notify new messages</string>
|
||||
<string name="title_legend_sync_keep">Number of days to synchronize / to keep messages</string>
|
||||
<string name="title_legend_download_fetch">Number of message downloaded / headers fetched</string>
|
||||
<string name="title_legend_stop">Stop processing rules</string>
|
||||
|
|
Loading…
Reference in a new issue