diff --git a/app/src/main/java/eu/faircode/email/ActivityWidgetUnified.java b/app/src/main/java/eu/faircode/email/ActivityWidgetUnified.java
index cc557180f2..b223fc9b85 100644
--- a/app/src/main/java/eu/faircode/email/ActivityWidgetUnified.java
+++ b/app/src/main/java/eu/faircode/email/ActivityWidgetUnified.java
@@ -61,6 +61,7 @@ public class ActivityWidgetUnified extends ActivityBase {
private Spinner spAccount;
private Spinner spFolder;
private CheckBox cbUnseen;
+ private CheckBox cbShowUnseen;
private CheckBox cbFlagged;
private CheckBox cbDayNight;
private CheckBox cbHighlight;
@@ -107,6 +108,7 @@ public class ActivityWidgetUnified extends ActivityBase {
long account = prefs.getLong("widget." + appWidgetId + ".account", -1L);
long folder = prefs.getLong("widget." + appWidgetId + ".folder", -1L);
boolean unseen = prefs.getBoolean("widget." + appWidgetId + ".unseen", false);
+ boolean show_unseen = prefs.getBoolean("widget." + appWidgetId + ".show_unseen", true);
boolean flagged = prefs.getBoolean("widget." + appWidgetId + ".flagged", false);
boolean daynight = prefs.getBoolean("widget." + appWidgetId + ".daynight", false);
boolean highlight = prefs.getBoolean("widget." + appWidgetId + ".highlight", false);
@@ -135,6 +137,7 @@ public class ActivityWidgetUnified extends ActivityBase {
spAccount = findViewById(R.id.spAccount);
spFolder = findViewById(R.id.spFolder);
cbUnseen = findViewById(R.id.cbUnseen);
+ cbShowUnseen = findViewById(R.id.cbShowUnseen);
cbFlagged = findViewById(R.id.cbFlagged);
cbDayNight = findViewById(R.id.cbDayNight);
cbHighlight = findViewById(R.id.cbHighlight);
@@ -160,6 +163,13 @@ public class ActivityWidgetUnified extends ActivityBase {
final Intent resultValue = new Intent();
resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
+ cbUnseen.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+ cbShowUnseen.setEnabled(isChecked);
+ }
+ });
+
cbDayNight.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
@@ -293,6 +303,7 @@ public class ActivityWidgetUnified extends ActivityBase {
editor.putLong("widget." + appWidgetId + ".folder", folder == null ? -1L : folder.id);
editor.putString("widget." + appWidgetId + ".type", folder == null ? null : folder.type);
editor.putBoolean("widget." + appWidgetId + ".unseen", cbUnseen.isChecked());
+ editor.putBoolean("widget." + appWidgetId + ".show_unseen", cbShowUnseen.isChecked());
editor.putBoolean("widget." + appWidgetId + ".daynight", cbDayNight.isChecked());
editor.putBoolean("widget." + appWidgetId + ".flagged", cbFlagged.isChecked());
editor.putBoolean("widget." + appWidgetId + ".highlight", cbHighlight.isChecked());
@@ -422,6 +433,8 @@ public class ActivityWidgetUnified extends ActivityBase {
// Initialize
cbUnseen.setChecked(unseen);
+ cbShowUnseen.setChecked(show_unseen);
+ cbShowUnseen.setEnabled(cbUnseen.isChecked());
cbFlagged.setChecked(flagged);
cbDayNight.setChecked(daynight);
cbDayNight.setVisibility(Build.VERSION.SDK_INT < Build.VERSION_CODES.S ? View.GONE : View.VISIBLE);
diff --git a/app/src/main/java/eu/faircode/email/WidgetUnifiedRemoteViewsFactory.java b/app/src/main/java/eu/faircode/email/WidgetUnifiedRemoteViewsFactory.java
index 0afcce58b2..36a93496c8 100644
--- a/app/src/main/java/eu/faircode/email/WidgetUnifiedRemoteViewsFactory.java
+++ b/app/src/main/java/eu/faircode/email/WidgetUnifiedRemoteViewsFactory.java
@@ -57,6 +57,7 @@ public class WidgetUnifiedRemoteViewsFactory implements RemoteViewsService.Remot
private long folder;
private long account;
private boolean unseen;
+ private boolean show_unseen;
private boolean flagged;
private boolean daynight;
private boolean highlight;
@@ -109,6 +110,7 @@ public class WidgetUnifiedRemoteViewsFactory implements RemoteViewsService.Remot
account = prefs.getLong("widget." + appWidgetId + ".account", -1L);
folder = prefs.getLong("widget." + appWidgetId + ".folder", -1L);
unseen = prefs.getBoolean("widget." + appWidgetId + ".unseen", false);
+ show_unseen = prefs.getBoolean("widget." + appWidgetId + ".show_unseen", true);
flagged = prefs.getBoolean("widget." + appWidgetId + ".flagged", false);
daynight = prefs.getBoolean("widget." + appWidgetId + ".daynight", false);
highlight = prefs.getBoolean("widget." + appWidgetId + ".highlight", false);
@@ -258,7 +260,9 @@ public class WidgetUnifiedRemoteViewsFactory implements RemoteViewsService.Remot
SpannableString ssAccount = new SpannableString(
TextUtils.isEmpty(message.accountName) ? "" : message.accountName);
- if (message.ui_seen || unseen) {
+ boolean show_seen = (unseen && !show_unseen);
+
+ if (message.ui_seen || show_seen) {
if (subject_italic)
ssSubject.setSpan(new StyleSpan(Typeface.ITALIC), 0, ssSubject.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
} else {
@@ -284,14 +288,14 @@ public class WidgetUnifiedRemoteViewsFactory implements RemoteViewsService.Remot
views.setViewVisibility(ivFrom, View.GONE);
views.setViewVisibility(ivSubject, message.attachments > 0 ? View.VISIBLE : View.GONE);
views.setColorStateList(ivSubject, "setImageTintList",
- ColorStateList.valueOf(message.ui_seen || unseen ? colorWidgetRead : colorWidgetUnread));
+ ColorStateList.valueOf(message.ui_seen || show_seen ? colorWidgetRead : colorWidgetUnread));
} else {
views.setViewVisibility(ivFrom, View.GONE);
views.setViewVisibility(ivSubject, View.GONE);
}
if (daynight && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
- int textColorAttr = (message.ui_seen || unseen ? android.R.attr.textColorPrimary : android.R.attr.textColorLink);
+ int textColorAttr = (message.ui_seen || show_seen ? android.R.attr.textColorPrimary : android.R.attr.textColorLink);
views.setColorStateListAttr(idFrom, "setTextColor", textColorAttr);
views.setColorStateListAttr(idTime, "setTextColor", textColorAttr);
views.setColorStateListAttr(idSubject, "setTextColor", textColorAttr);
@@ -299,7 +303,7 @@ public class WidgetUnifiedRemoteViewsFactory implements RemoteViewsService.Remot
views.setInt(R.id.separator, "setBackgroundColor", Color.WHITE);
views.setColorStateListAttr(R.id.separator, "setBackgroundTintList", android.R.attr.colorControlNormal);
} else {
- int textColor = (message.ui_seen || unseen ? colorWidgetRead : colorWidgetUnread);
+ int textColor = (message.ui_seen || show_seen ? colorWidgetRead : colorWidgetUnread);
views.setTextColor(idFrom, textColor);
views.setTextColor(idTime, textColor);
views.setTextColor(idSubject, textColor);
diff --git a/app/src/main/res/layout/activity_widget_unified.xml b/app/src/main/res/layout/activity_widget_unified.xml
index 348cedcaae..c59668fce2 100644
--- a/app/src/main/res/layout/activity_widget_unified.xml
+++ b/app/src/main/res/layout/activity_widget_unified.xml
@@ -57,6 +57,17 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/spFolder" />
+
+
+ app:layout_constraintTop_toBottomOf="@id/cbShowUnseen" />
Unified inbox folders
Folders with new message notifications
Unread messages only
+ Show as unread
Starred messages only
Text size
Padding size