From 1e654d77652bb00ce43198efacde328f6ac702bb Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 8 Apr 2020 12:08:50 +0200 Subject: [PATCH] Added option to disable widget background --- .../main/java/eu/faircode/email/ActivityWidget.java | 4 ++++ .../eu/faircode/email/ActivityWidgetUnified.java | 3 +++ app/src/main/java/eu/faircode/email/Widget.java | 5 +++++ .../main/java/eu/faircode/email/WidgetUnified.java | 5 +++++ app/src/main/res/layout/activity_widget.xml | 13 ++++++++++++- app/src/main/res/layout/activity_widget_unified.xml | 13 ++++++++++++- app/src/main/res/layout/widget_unified.xml | 1 + app/src/main/res/values/strings.xml | 1 + 8 files changed, 43 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ActivityWidget.java b/app/src/main/java/eu/faircode/email/ActivityWidget.java index c4b179c972..9918e10b69 100644 --- a/app/src/main/java/eu/faircode/email/ActivityWidget.java +++ b/app/src/main/java/eu/faircode/email/ActivityWidget.java @@ -27,6 +27,7 @@ import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Button; +import android.widget.CheckBox; import android.widget.Spinner; import androidx.constraintlayout.widget.Group; @@ -39,6 +40,7 @@ public class ActivityWidget extends ActivityBase { private int appWidgetId; private Spinner spAccount; + private CheckBox cbSemiTransparent; private Button btnSave; private ContentLoadingProgressBar pbWait; private Group grpReady; @@ -62,6 +64,7 @@ public class ActivityWidget extends ActivityBase { setContentView(R.layout.activity_widget); spAccount = findViewById(R.id.spAccount); + cbSemiTransparent = findViewById(R.id.cbSemiTransparent); btnSave = findViewById(R.id.btnSave); pbWait = findViewById(R.id.pbWait); grpReady = findViewById(R.id.grpReady); @@ -81,6 +84,7 @@ public class ActivityWidget extends ActivityBase { else editor.remove("widget." + appWidgetId + ".name"); editor.putLong("widget." + appWidgetId + ".account", account == null ? -1L : account.id); + editor.putBoolean("widget." + appWidgetId + ".semi", cbSemiTransparent.isChecked()); editor.apply(); Widget.init(ActivityWidget.this, appWidgetId); diff --git a/app/src/main/java/eu/faircode/email/ActivityWidgetUnified.java b/app/src/main/java/eu/faircode/email/ActivityWidgetUnified.java index 1fdb890e79..c075c7c76a 100644 --- a/app/src/main/java/eu/faircode/email/ActivityWidgetUnified.java +++ b/app/src/main/java/eu/faircode/email/ActivityWidgetUnified.java @@ -45,6 +45,7 @@ public class ActivityWidgetUnified extends ActivityBase { private Spinner spFolder; private CheckBox cbUnseen; private CheckBox cbFlagged; + private CheckBox cbSemiTransparent; private Button btnSave; private ContentLoadingProgressBar pbWait; private Group grpReady; @@ -72,6 +73,7 @@ public class ActivityWidgetUnified extends ActivityBase { spFolder = findViewById(R.id.spFolder); cbUnseen = findViewById(R.id.cbUnseen); cbFlagged = findViewById(R.id.cbFlagged); + cbSemiTransparent = findViewById(R.id.cbSemiTransparent); btnSave = findViewById(R.id.btnSave); pbWait = findViewById(R.id.pbWait); grpReady = findViewById(R.id.grpReady); @@ -99,6 +101,7 @@ public class ActivityWidgetUnified extends ActivityBase { editor.putString("widget." + appWidgetId + ".type", folder == null ? null : folder.type); editor.putBoolean("widget." + appWidgetId + ".unseen", cbUnseen.isChecked()); editor.putBoolean("widget." + appWidgetId + ".flagged", cbFlagged.isChecked()); + editor.putBoolean("widget." + appWidgetId + ".semi", cbSemiTransparent.isChecked()); editor.apply(); WidgetUnified.init(ActivityWidgetUnified.this, appWidgetId); diff --git a/app/src/main/java/eu/faircode/email/Widget.java b/app/src/main/java/eu/faircode/email/Widget.java index 3e4a28558c..c675bb9845 100644 --- a/app/src/main/java/eu/faircode/email/Widget.java +++ b/app/src/main/java/eu/faircode/email/Widget.java @@ -26,6 +26,7 @@ import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; +import android.graphics.Color; import android.text.TextUtils; import android.widget.RemoteViews; @@ -54,6 +55,7 @@ public class Widget extends AppWidgetProvider { for (int appWidgetId : appWidgetIds) { long account = prefs.getLong("widget." + appWidgetId + ".account", -1L); String name = prefs.getString("widget." + appWidgetId + ".name", null); + boolean semi = prefs.getBoolean("widget." + appWidgetId + ".semi", true); List folders = db.folder().getNotifyingFolders(account); if (folders == null) @@ -93,6 +95,9 @@ public class Widget extends AppWidgetProvider { views.setOnClickPendingIntent(R.id.widget, pi); + if (!semi) + views.setInt(R.id.widget, "setBackgroundColor", Color.TRANSPARENT); + views.setImageViewResource(R.id.ivMessage, unseen == 0 ? R.drawable.baseline_mail_outline_24 : R.drawable.baseline_mail_24); diff --git a/app/src/main/java/eu/faircode/email/WidgetUnified.java b/app/src/main/java/eu/faircode/email/WidgetUnified.java index 8446339abc..63d6608609 100644 --- a/app/src/main/java/eu/faircode/email/WidgetUnified.java +++ b/app/src/main/java/eu/faircode/email/WidgetUnified.java @@ -26,6 +26,7 @@ import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; +import android.graphics.Color; import android.net.Uri; import android.view.View; import android.widget.RemoteViews; @@ -42,6 +43,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 semi = prefs.getBoolean("widget." + appWidgetId + ".semi", true); Intent view = new Intent(context, ActivityView.class); view.setAction("folder:" + folder); @@ -53,6 +55,9 @@ public class WidgetUnified extends AppWidgetProvider { RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_unified); + if (!semi) + views.setInt(R.id.widget, "setBackgroundColor", Color.TRANSPARENT); + views.setViewVisibility(R.id.pro, pro ? View.GONE : View.VISIBLE); if (pro) { String name = prefs.getString("widget." + appWidgetId + ".name", null); diff --git a/app/src/main/res/layout/activity_widget.xml b/app/src/main/res/layout/activity_widget.xml index 30e53e1ade..d223768205 100644 --- a/app/src/main/res/layout/activity_widget.xml +++ b/app/src/main/res/layout/activity_widget.xml @@ -22,6 +22,17 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/tvAccount" /> + +