From ebca5f95b67209083b17411fa6c8d244839a185a Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 6 May 2022 08:34:09 +0200 Subject: [PATCH] Unified widget dark theme --- .../faircode/email/ActivityWidgetUnified.java | 10 +++---- .../java/eu/faircode/email/WidgetUnified.java | 3 ++- .../WidgetUnifiedRemoteViewsFactory.java | 2 +- .../res/layout/activity_widget_unified.xml | 27 ++++++++++--------- app/src/main/res/values/strings.xml | 2 +- 5 files changed, 24 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ActivityWidgetUnified.java b/app/src/main/java/eu/faircode/email/ActivityWidgetUnified.java index c4eca8399a..fe3639f6f8 100644 --- a/app/src/main/java/eu/faircode/email/ActivityWidgetUnified.java +++ b/app/src/main/java/eu/faircode/email/ActivityWidgetUnified.java @@ -61,9 +61,9 @@ public class ActivityWidgetUnified extends ActivityBase { private CheckBox cbDayNight; private CheckBox cbHighlight; private ViewButtonColor btnHighlight; - private CheckBox cbSeparatorLines; private CheckBox cbSemiTransparent; private ViewButtonColor btnColor; + private CheckBox cbSeparatorLines; private Spinner spFontSize; private Spinner spPadding; private CheckBox cbAvatars; @@ -99,9 +99,9 @@ public class ActivityWidgetUnified extends ActivityBase { 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); boolean semi = prefs.getBoolean("widget." + appWidgetId + ".semi", true); int background = prefs.getInt("widget." + appWidgetId + ".background", Color.TRANSPARENT); + boolean separators = prefs.getBoolean("widget." + appWidgetId + ".separators", true); int font = prefs.getInt("widget." + appWidgetId + ".font", 0); int padding = prefs.getInt("widget." + appWidgetId + ".padding", 0); boolean refresh = prefs.getBoolean("widget." + appWidgetId + ".refresh", false); @@ -119,9 +119,9 @@ public class ActivityWidgetUnified extends ActivityBase { cbDayNight = findViewById(R.id.cbDayNight); cbHighlight = findViewById(R.id.cbHighlight); btnHighlight = findViewById(R.id.btnHighlight); - cbSeparatorLines = findViewById(R.id.cbSeparatorLines); cbSemiTransparent = findViewById(R.id.cbSemiTransparent); btnColor = findViewById(R.id.btnColor); + cbSeparatorLines = findViewById(R.id.cbSeparatorLines); spFontSize = findViewById(R.id.spFontSize); spPadding = findViewById(R.id.spPadding); cbAvatars = findViewById(R.id.cbAvatars); @@ -240,9 +240,9 @@ public class ActivityWidgetUnified extends ActivityBase { editor.putBoolean("widget." + appWidgetId + ".flagged", cbFlagged.isChecked()); editor.putBoolean("widget." + appWidgetId + ".highlight", cbHighlight.isChecked()); editor.putInt("widget." + appWidgetId + ".highlight_color", btnHighlight.getColor()); - editor.putBoolean("widget." + appWidgetId + ".separators", cbSeparatorLines.isChecked()); editor.putBoolean("widget." + appWidgetId + ".semi", cbSemiTransparent.isChecked()); editor.putInt("widget." + appWidgetId + ".background", btnColor.getColor()); + editor.putBoolean("widget." + appWidgetId + ".separators", cbSeparatorLines.isChecked()); editor.putInt("widget." + appWidgetId + ".font", tinyOut(font)); editor.putInt("widget." + appWidgetId + ".padding", tinyOut(padding)); editor.putBoolean("widget." + appWidgetId + ".avatars", cbAvatars.isChecked()); @@ -368,11 +368,11 @@ public class ActivityWidgetUnified extends ActivityBase { 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); + cbSeparatorLines.setChecked(separators); 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 f38a0ecab7..53072e80fb 100644 --- a/app/src/main/java/eu/faircode/email/WidgetUnified.java +++ b/app/src/main/java/eu/faircode/email/WidgetUnified.java @@ -51,9 +51,9 @@ public class WidgetUnified extends AppWidgetProvider { 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); + boolean separators = prefs.getBoolean("widget." + appWidgetId + ".separators", true); int font = prefs.getInt("widget." + appWidgetId + ".font", 0); int padding = prefs.getInt("widget." + appWidgetId + ".padding", 0); boolean refresh = prefs.getBoolean("widget." + appWidgetId + ".refresh", false); @@ -134,6 +134,7 @@ public class WidgetUnified extends AppWidgetProvider { boolean syncing = prefs.getBoolean("widget." + appWidgetId + ".syncing", false); + // https://developer.android.com/guide/topics/ui/look-and-feel/darktheme if (!daynight && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { views.setColorStateListAttr(R.id.background, "setBackgroundTintList", 0); views.setColorStateListAttr(R.id.separator, "setBackgroundTintList", 0); diff --git a/app/src/main/java/eu/faircode/email/WidgetUnifiedRemoteViewsFactory.java b/app/src/main/java/eu/faircode/email/WidgetUnifiedRemoteViewsFactory.java index 48c04a027b..0cdb024afd 100644 --- a/app/src/main/java/eu/faircode/email/WidgetUnifiedRemoteViewsFactory.java +++ b/app/src/main/java/eu/faircode/email/WidgetUnifiedRemoteViewsFactory.java @@ -110,9 +110,9 @@ public class WidgetUnifiedRemoteViewsFactory implements RemoteViewsService.Remot 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); semi = prefs.getBoolean("widget." + appWidgetId + ".semi", true); background = prefs.getInt("widget." + appWidgetId + ".background", Color.TRANSPARENT); + separators = prefs.getBoolean("widget." + appWidgetId + ".separators", true); font = prefs.getInt("widget." + appWidgetId + ".font", 0); padding = prefs.getInt("widget." + appWidgetId + ".padding", 0); avatars = prefs.getBoolean("widget." + appWidgetId + ".avatars", false); diff --git a/app/src/main/res/layout/activity_widget_unified.xml b/app/src/main/res/layout/activity_widget_unified.xml index 68e9093011..daf3532de4 100644 --- a/app/src/main/res/layout/activity_widget_unified.xml +++ b/app/src/main/res/layout/activity_widget_unified.xml @@ -79,6 +79,7 @@ android:id="@+id/cbHighlight" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_marginStart="12dp" android:layout_marginTop="12dp" android:checked="true" android:text="@string/title_advanced_highlight_unread" @@ -98,31 +99,23 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/cbHighlight" /> - - + app:layout_constraintTop_toBottomOf="@id/btnHighlight" /> + + + app:layout_constraintTop_toBottomOf="@id/cbSeparatorLines" /> Show refresh messages button Show compose new message button Background color - Use day/night mode (if available) + Follow system dark theme Collapsed Expanded