diff --git a/app/src/main/java/eu/faircode/email/ActivityWidget.java b/app/src/main/java/eu/faircode/email/ActivityWidget.java
index b1802ba1a6..1757fef779 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.content.SharedPreferences;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
+import android.text.TextUtils;
import android.util.TypedValue;
import android.view.View;
import android.view.ViewGroup;
@@ -35,6 +36,7 @@ import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
+import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.Spinner;
@@ -70,6 +72,7 @@ public class ActivityWidget extends ActivityBase {
private RadioButton rbNew;
private CheckBox cbTop;
private Spinner spFontSize;
+ private EditText etName;
private Button btnSave;
private ContentLoadingProgressBar pbWait;
private Group grpReady;
@@ -100,6 +103,7 @@ public class ActivityWidget extends ActivityBase {
int layout = prefs.getInt("widget." + appWidgetId + ".layout", 1 /* new */);
boolean top = prefs.getBoolean("widget." + appWidgetId + ".top", false);
int size = prefs.getInt("widget." + appWidgetId + ".text_size", -1);
+ String name = prefs.getString("widget." + appWidgetId + ".name", null);
daynight = daynight && (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S);
@@ -119,6 +123,7 @@ public class ActivityWidget extends ActivityBase {
rbNew = findViewById(R.id.rbNew);
cbTop = findViewById(R.id.cbTop);
spFontSize = findViewById(R.id.spFontSize);
+ etName = findViewById(R.id.etName);
btnSave = findViewById(R.id.btnSave);
pbWait = findViewById(R.id.pbWait);
grpReady = findViewById(R.id.grpReady);
@@ -268,13 +273,17 @@ public class ActivityWidget extends ActivityBase {
int pos = spFontSize.getSelectedItemPosition();
SharedPreferences.Editor editor = prefs.edit();
- if (folder == null || folder.id < 0) {
- if (account != null && account.id > 0)
- editor.putString("widget." + appWidgetId + ".name", account.name);
- else
- editor.remove("widget." + appWidgetId + ".name");
- } else
- editor.putString("widget." + appWidgetId + ".name", folder.getDisplayName(ActivityWidget.this));
+ String name = etName.getText().toString();
+ if (TextUtils.isEmpty(name))
+ if (folder == null || folder.id < 0) {
+ if (account != null && account.id > 0)
+ editor.putString("widget." + appWidgetId + ".name", account.name);
+ else
+ editor.remove("widget." + appWidgetId + ".name");
+ } else
+ editor.putString("widget." + appWidgetId + ".name", folder.getDisplayName(ActivityWidget.this));
+ else
+ editor.putString("widget." + appWidgetId + ".name", name);
editor.putLong("widget." + appWidgetId + ".account", account == null ? -1L : account.id);
editor.putLong("widget." + appWidgetId + ".folder", folder == null ? -1L : folder.id);
editor.putBoolean("widget." + appWidgetId + ".daynight", cbDayNight.isChecked());
@@ -400,6 +409,7 @@ public class ActivityWidget extends ActivityBase {
rbNew.setChecked(layout == 1);
cbTop.setChecked(top);
spFontSize.setSelection(size + 1);
+ etName.setText(name);
updatePreview();
grpReady.setVisibility(View.GONE);
diff --git a/app/src/main/java/eu/faircode/email/ActivityWidgetUnified.java b/app/src/main/java/eu/faircode/email/ActivityWidgetUnified.java
index 5cdeb7169f..cfb64500aa 100644
--- a/app/src/main/java/eu/faircode/email/ActivityWidgetUnified.java
+++ b/app/src/main/java/eu/faircode/email/ActivityWidgetUnified.java
@@ -27,6 +27,7 @@ import android.content.SharedPreferences;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
+import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
@@ -34,6 +35,7 @@ import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
+import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
@@ -73,6 +75,7 @@ public class ActivityWidgetUnified extends ActivityBase {
private CheckBox cbAvatars;
private CheckBox cbAccountName;
private CheckBox cbCaption;
+ private EditText etName;
private CheckBox cbRefresh;
private CheckBox cbCompose;
private Button btnSave;
@@ -116,6 +119,7 @@ public class ActivityWidgetUnified extends ActivityBase {
boolean avatars = prefs.getBoolean("widget." + appWidgetId + ".avatars", false);
boolean account_name = prefs.getBoolean("widget." + appWidgetId + ".account_name", true);
boolean caption = prefs.getBoolean("widget." + appWidgetId + ".caption", true);
+ String name = prefs.getString("widget." + appWidgetId + ".name", null);
boolean refresh = prefs.getBoolean("widget." + appWidgetId + ".refresh", false);
boolean compose = prefs.getBoolean("widget." + appWidgetId + ".compose", false);
@@ -142,6 +146,7 @@ public class ActivityWidgetUnified extends ActivityBase {
cbAvatars = findViewById(R.id.cbAvatars);
cbAccountName = findViewById(R.id.cbAccountName);
cbCaption = findViewById(R.id.cbCaption);
+ etName = findViewById(R.id.etName);
cbRefresh = findViewById(R.id.cbRefresh);
cbCompose = findViewById(R.id.cbCompose);
btnSave = findViewById(R.id.btnSave);
@@ -249,6 +254,13 @@ public class ActivityWidgetUnified extends ActivityBase {
}
});
+ cbCaption.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+ etName.setEnabled(isChecked);
+ }
+ });
+
btnSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
@@ -258,12 +270,16 @@ public class ActivityWidgetUnified extends ActivityBase {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ActivityWidgetUnified.this);
SharedPreferences.Editor editor = prefs.edit();
- if (account != null && account.id > 0)
- if (folder != null && folder.id > 0)
- editor.putString("widget." + appWidgetId + ".name", folder.getDisplayName(ActivityWidgetUnified.this));
+ if (account != null && account.id > 0) {
+ String name = etName.getText().toString();
+ if (TextUtils.isEmpty(name))
+ if (folder != null && folder.id > 0)
+ editor.putString("widget." + appWidgetId + ".name", folder.getDisplayName(ActivityWidgetUnified.this));
+ else
+ editor.putString("widget." + appWidgetId + ".name", account.name);
else
- editor.putString("widget." + appWidgetId + ".name", account.name);
- else
+ editor.putString("widget." + appWidgetId + ".name", name);
+ } else
editor.remove("widget." + appWidgetId + ".name");
int font = spFontSize.getSelectedItemPosition();
@@ -421,6 +437,8 @@ public class ActivityWidgetUnified extends ActivityBase {
spSubjectLines.setSelection(subject_lines - 1);
tvSubjectLinesHint.setText(getString(R.string.title_advanced_preview_lines_hint, NF.format(HtmlHelper.PREVIEW_SIZE)));
cbCaption.setChecked(caption);
+ etName.setText(name);
+ etName.setEnabled(caption);
cbRefresh.setChecked(refresh);
cbCompose.setChecked(compose);
diff --git a/app/src/main/res/layout/activity_widget.xml b/app/src/main/res/layout/activity_widget.xml
index db3601ede9..541b832635 100644
--- a/app/src/main/res/layout/activity_widget.xml
+++ b/app/src/main/res/layout/activity_widget.xml
@@ -173,6 +173,28 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvFontSize" />
+
+
+
+
+ app:layout_constraintTop_toBottomOf="@id/etName" />
+
+
+ app:layout_constraintTop_toBottomOf="@id/etName" />