diff --git a/app/src/main/java/eu/faircode/email/ActivityWidgetUnified.java b/app/src/main/java/eu/faircode/email/ActivityWidgetUnified.java
index 627adc8b01..0fa0af3965 100644
--- a/app/src/main/java/eu/faircode/email/ActivityWidgetUnified.java
+++ b/app/src/main/java/eu/faircode/email/ActivityWidgetUnified.java
@@ -57,6 +57,7 @@ public class ActivityWidgetUnified extends ActivityBase {
private Spinner spFolder;
private CheckBox cbUnseen;
private CheckBox cbFlagged;
+ private CheckBox cbDayNight;
private CheckBox cbHighlight;
private ViewButtonColor btnHighlight;
private CheckBox cbSeparatorLines;
@@ -94,6 +95,7 @@ public class ActivityWidgetUnified extends ActivityBase {
long folder = prefs.getLong("widget." + appWidgetId + ".folder", -1L);
boolean unseen = prefs.getBoolean("widget." + appWidgetId + ".unseen", false);
boolean flagged = prefs.getBoolean("widget." + appWidgetId + ".flagged", false);
+ boolean daynight = prefs.getBoolean("widget." + appWidgetId + ".daynight", false);
boolean highlight = prefs.getBoolean("widget." + appWidgetId + ".highlight", false);
int highlight_color = prefs.getInt("widget." + appWidgetId + ".highlight_color", Color.TRANSPARENT);
boolean separators = prefs.getBoolean("widget." + appWidgetId + ".separators", true);
@@ -113,6 +115,7 @@ public class ActivityWidgetUnified extends ActivityBase {
spFolder = findViewById(R.id.spFolder);
cbUnseen = findViewById(R.id.cbUnseen);
cbFlagged = findViewById(R.id.cbFlagged);
+ cbDayNight = findViewById(R.id.cbDayNight);
cbHighlight = findViewById(R.id.cbHighlight);
btnHighlight = findViewById(R.id.btnHighlight);
cbSeparatorLines = findViewById(R.id.cbSeparatorLines);
@@ -130,10 +133,20 @@ public class ActivityWidgetUnified extends ActivityBase {
final Intent resultValue = new Intent();
resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
+ cbDayNight.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
+ cbHighlight.setEnabled(!checked);
+ btnHighlight.setEnabled(cbHighlight.isChecked() && !checked);
+ cbSemiTransparent.setEnabled(!checked);
+ btnColor.setEnabled(!checked);
+ }
+ });
+
cbHighlight.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
- btnHighlight.setVisibility(checked ? View.VISIBLE : View.GONE);
+ btnHighlight.setVisibility(checked && cbHighlight.isEnabled() ? View.VISIBLE : View.GONE);
}
});
@@ -222,6 +235,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 + ".daynight", cbDayNight.isChecked());
editor.putBoolean("widget." + appWidgetId + ".flagged", cbFlagged.isChecked());
editor.putBoolean("widget." + appWidgetId + ".highlight", cbHighlight.isChecked());
editor.putInt("widget." + appWidgetId + ".highlight_color", btnHighlight.getColor());
@@ -346,12 +360,17 @@ public class ActivityWidgetUnified extends ActivityBase {
// Initialize
cbUnseen.setChecked(unseen);
cbFlagged.setChecked(flagged);
+ cbDayNight.setChecked(daynight);
cbHighlight.setChecked(highlight);
+ cbHighlight.setEnabled(!daynight);
btnHighlight.setVisibility(highlight ? View.VISIBLE : View.GONE);
btnHighlight.setColor(highlight_color);
+ btnHighlight.setEnabled(highlight && !daynight);
cbSeparatorLines.setChecked(separators);
cbSemiTransparent.setChecked(semi);
+ cbSemiTransparent.setEnabled(!daynight);
btnColor.setColor(background);
+ btnColor.setEnabled(!daynight);
spFontSize.setSelection(tinyIn(font));
spPadding.setSelection(tinyIn(padding));
cbAvatars.setChecked(avatars);
diff --git a/app/src/main/java/eu/faircode/email/WidgetUnified.java b/app/src/main/java/eu/faircode/email/WidgetUnified.java
index a8c83a8837..9540ea8c62 100644
--- a/app/src/main/java/eu/faircode/email/WidgetUnified.java
+++ b/app/src/main/java/eu/faircode/email/WidgetUnified.java
@@ -49,6 +49,7 @@ public class WidgetUnified extends AppWidgetProvider {
long account = prefs.getLong("widget." + appWidgetId + ".account", -1L);
long folder = prefs.getLong("widget." + appWidgetId + ".folder", -1L);
String type = prefs.getString("widget." + appWidgetId + ".type", null);
+ boolean daynight = prefs.getBoolean("widget." + appWidgetId + ".daynight", false);
boolean separators = prefs.getBoolean("widget." + appWidgetId + ".separators", true);
boolean semi = prefs.getBoolean("widget." + appWidgetId + ".semi", true);
int background = prefs.getInt("widget." + appWidgetId + ".background", Color.TRANSPARENT);
@@ -132,42 +133,43 @@ public class WidgetUnified extends AppWidgetProvider {
boolean syncing = prefs.getBoolean("widget." + appWidgetId + ".syncing", false);
- if (background == Color.TRANSPARENT) {
- if (semi)
- views.setInt(R.id.background, "setBackgroundResource", R.drawable.widget_background);
- else
+ if (!daynight)
+ if (background == Color.TRANSPARENT) {
+ if (semi)
+ views.setInt(R.id.background, "setBackgroundResource", R.drawable.widget_background);
+ else
+ views.setInt(R.id.background, "setBackgroundColor", background);
+
+ views.setTextColor(R.id.title, colorWidgetForeground);
+ views.setInt(R.id.separator, "setBackgroundColor", lightColorSeparator);
+ views.setImageViewResource(R.id.refresh, syncing
+ ? R.drawable.twotone_compare_arrows_24_white
+ : R.drawable.twotone_sync_24_white);
+ views.setImageViewResource(R.id.compose, R.drawable.twotone_edit_24_white);
+ } else {
+ float lum = (float) ColorUtils.calculateLuminance(background);
+
+ if (semi)
+ background = ColorUtils.setAlphaComponent(background, 127);
+
views.setInt(R.id.background, "setBackgroundColor", background);
- views.setTextColor(R.id.title, colorWidgetForeground);
- views.setInt(R.id.separator, "setBackgroundColor", lightColorSeparator);
- views.setImageViewResource(R.id.refresh, syncing
- ? R.drawable.twotone_compare_arrows_24_white
- : R.drawable.twotone_sync_24_white);
- views.setImageViewResource(R.id.compose, R.drawable.twotone_edit_24_white);
- } else {
- float lum = (float) ColorUtils.calculateLuminance(background);
-
- if (semi)
- background = ColorUtils.setAlphaComponent(background, 127);
-
- views.setInt(R.id.background, "setBackgroundColor", background);
-
- int fg = (lum > 0.7f ? Color.BLACK : colorWidgetForeground);
- views.setTextColor(R.id.title, fg);
- views.setInt(R.id.separator, "setBackgroundColor",
- lum > 0.7f ? darkColorSeparator : lightColorSeparator);
- if (syncing)
- views.setImageViewResource(R.id.refresh, lum > 0.7f
- ? R.drawable.twotone_compare_arrows_24_black
- : R.drawable.twotone_compare_arrows_24_white);
- else
- views.setImageViewResource(R.id.refresh, lum > 0.7f
- ? R.drawable.twotone_sync_24_black
- : R.drawable.twotone_sync_24_white);
- views.setImageViewResource(R.id.compose, lum > 0.7f
- ? R.drawable.twotone_edit_24_black
- : R.drawable.twotone_edit_24_white);
- }
+ int fg = (lum > 0.7f ? Color.BLACK : colorWidgetForeground);
+ views.setTextColor(R.id.title, fg);
+ views.setInt(R.id.separator, "setBackgroundColor",
+ lum > 0.7f ? darkColorSeparator : lightColorSeparator);
+ if (syncing)
+ views.setImageViewResource(R.id.refresh, lum > 0.7f
+ ? R.drawable.twotone_compare_arrows_24_black
+ : R.drawable.twotone_compare_arrows_24_white);
+ else
+ views.setImageViewResource(R.id.refresh, lum > 0.7f
+ ? R.drawable.twotone_sync_24_black
+ : R.drawable.twotone_sync_24_white);
+ views.setImageViewResource(R.id.compose, lum > 0.7f
+ ? R.drawable.twotone_edit_24_black
+ : R.drawable.twotone_edit_24_white);
+ }
views.setViewVisibility(R.id.separator, separators ? View.VISIBLE : View.GONE);
diff --git a/app/src/main/java/eu/faircode/email/WidgetUnifiedRemoteViewsFactory.java b/app/src/main/java/eu/faircode/email/WidgetUnifiedRemoteViewsFactory.java
index 939763ba9c..2699148e03 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 account;
private boolean unseen;
private boolean flagged;
+ private boolean daynight = true;
private boolean highlight;
private int highlight_color;
private boolean separators;
@@ -106,6 +107,7 @@ public class WidgetUnifiedRemoteViewsFactory implements RemoteViewsService.Remot
folder = prefs.getLong("widget." + appWidgetId + ".folder", -1L);
unseen = prefs.getBoolean("widget." + appWidgetId + ".unseen", false);
flagged = prefs.getBoolean("widget." + appWidgetId + ".flagged", false);
+ daynight = prefs.getBoolean("widget." + appWidgetId + ".daynight", false);
highlight = prefs.getBoolean("widget." + appWidgetId + ".highlight", false);
highlight_color = prefs.getInt("widget." + appWidgetId + ".highlight_color", Color.TRANSPARENT);
separators = prefs.getBoolean("widget." + appWidgetId + ".separators", true);
@@ -256,13 +258,16 @@ public class WidgetUnifiedRemoteViewsFactory implements RemoteViewsService.Remot
views.setTextViewText(idSubject, ssSubject);
views.setTextViewText(idAccount, ssAccount);
- int textColor = (message.ui_seen ? colorWidgetRead : colorWidgetUnread);
- views.setTextColor(idFrom, textColor);
- views.setTextColor(idTime, textColor);
- views.setTextColor(idSubject, textColor);
- views.setTextColor(idAccount, textColor);
+ if (!daynight) {
+ int textColor = (message.ui_seen ? colorWidgetRead : colorWidgetUnread);
+ views.setTextColor(idFrom, textColor);
+ views.setTextColor(idTime, textColor);
+ views.setTextColor(idSubject, textColor);
+ views.setTextColor(idAccount, textColor);
+ }
- views.setInt(R.id.separator, "setBackgroundColor", colorSeparator);
+ if (!daynight)
+ views.setInt(R.id.separator, "setBackgroundColor", colorSeparator);
views.setViewVisibility(R.id.separator, separators ? View.VISIBLE : View.GONE);
views.setViewVisibility(idAccount, account < 0 && !allColors ? View.VISIBLE : View.GONE);
diff --git a/app/src/main/res/layout/activity_widget_unified.xml b/app/src/main/res/layout/activity_widget_unified.xml
index 1f5ecde2f4..68e9093011 100644
--- a/app/src/main/res/layout/activity_widget_unified.xml
+++ b/app/src/main/res/layout/activity_widget_unified.xml
@@ -65,6 +65,16 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/cbUnseen" />
+
+
+ app:layout_constraintTop_toBottomOf="@id/cbDayNight" />
+ android:textColor="?android:textColorPrimary" />
+ android:textColor="?android:textColorPrimary" />
+ android:textColor="?android:textColorPrimary" />
+ android:textColor="?android:textColorPrimary" />
@@ -95,5 +95,5 @@
android:id="@+id/separator"
android:layout_width="match_parent"
android:layout_height="1dp"
- android:background="@color/grey" />
+ android:background="?android:colorControlNormal" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/widget_unified.xml b/app/src/main/res/layout/widget_unified.xml
index 5b618593ad..daff6b44e0 100644
--- a/app/src/main/res/layout/widget_unified.xml
+++ b/app/src/main/res/layout/widget_unified.xml
@@ -4,7 +4,8 @@
android:id="@+id/background"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="@drawable/widget_background">
+ android:background="?android:colorBackground"
+ android:theme="@style/Theme.AppCompat.DayNight">
+ android:src="@drawable/twotone_sync_24"
+ android:tint="?android:textColorPrimary"
+ android:visibility="visible"
+ app:tint="?android:textColorPrimary" />
+ android:src="@drawable/twotone_edit_24"
+ android:tint="?android:textColorPrimary"
+ android:visibility="visible"
+ app:tint="?android:textColorPrimary" />
+ android:background="?android:colorControlNormal" />
Show refresh messages button
Show compose new message button
Background color
+ Use day/night mode (if available)
Collapsed
Expanded