diff --git a/app/src/main/java/eu/faircode/email/ActivitySetup.java b/app/src/main/java/eu/faircode/email/ActivitySetup.java
index 9915337673..5629160d7f 100644
--- a/app/src/main/java/eu/faircode/email/ActivitySetup.java
+++ b/app/src/main/java/eu/faircode/email/ActivitySetup.java
@@ -151,8 +151,9 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac
static final int REQUEST_STILL = 9;
static final int REQUEST_SELECT_IDENTITY = 10;
static final int REQUEST_EDIT_SIGNATURE = 11;
- static final int REQUEST_DELETE_ACCOUNT = 12;
- static final int REQUEST_IMPORT_PROVIDERS = 13;
+ static final int REQUEST_CHANGE_PASSWORD = 12;
+ static final int REQUEST_DELETE_ACCOUNT = 13;
+ static final int REQUEST_IMPORT_PROVIDERS = 14;
static final int PI_MISC = 1;
diff --git a/app/src/main/java/eu/faircode/email/FragmentSetup.java b/app/src/main/java/eu/faircode/email/FragmentSetup.java
index d4370f40c4..51158c0bf4 100644
--- a/app/src/main/java/eu/faircode/email/FragmentSetup.java
+++ b/app/src/main/java/eu/faircode/email/FragmentSetup.java
@@ -125,6 +125,7 @@ public class FragmentSetup extends FragmentBase {
private Button btnSignature;
private Button btnReorderAccounts;
private Button btnReorderFolders;
+ private Button btnPassword;
private Button btnDelete;
private Button btnApp;
private Button btnMore;
@@ -209,6 +210,7 @@ public class FragmentSetup extends FragmentBase {
btnReorderAccounts = view.findViewById(R.id.btnReorderAccounts);
btnReorderFolders = view.findViewById(R.id.btnReorderFolders);
btnDelete = view.findViewById(R.id.btnDelete);
+ btnPassword = view.findViewById(R.id.btnPassword);
btnApp = view.findViewById(R.id.btnApp);
btnMore = view.findViewById(R.id.btnMore);
btnSupport = view.findViewById(R.id.btnSupport);
@@ -689,6 +691,19 @@ public class FragmentSetup extends FragmentBase {
});
+ btnPassword.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Bundle args = new Bundle();
+ args.putBoolean("all", true);
+
+ FragmentDialogSelectAccount fragment = new FragmentDialogSelectAccount();
+ fragment.setArguments(args);
+ fragment.setTargetFragment(FragmentSetup.this, ActivitySetup.REQUEST_CHANGE_PASSWORD);
+ fragment.show(getParentFragmentManager(), "setup:password");
+ }
+ });
+
btnDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -999,6 +1014,10 @@ public class FragmentSetup extends FragmentBase {
if (resultCode == RESULT_OK && data != null)
onEditIdentity(data.getExtras());
break;
+ case ActivitySetup.REQUEST_CHANGE_PASSWORD:
+ if (resultCode == RESULT_OK && data != null)
+ onChangePassword(data.getBundleExtra("args"));
+ break;
case ActivitySetup.REQUEST_DELETE_ACCOUNT:
if (resultCode == RESULT_OK && data != null)
onDeleteAccount(data.getBundleExtra("args"));
@@ -1086,6 +1105,16 @@ public class FragmentSetup extends FragmentBase {
}.execute(this, args, "set:signature");
}
+ private void onChangePassword(Bundle args) {
+ long account = args.getLong("account");
+ int protocol = args.getInt("protocol");
+ LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(getContext());
+ lbm.sendBroadcast(
+ new Intent(ActivitySetup.ACTION_EDIT_ACCOUNT)
+ .putExtra("id", account)
+ .putExtra("protocol", protocol));
+ }
+
private void onDeleteAccount(Bundle args) {
long account = args.getLong("account");
String name = args.getString("name");
diff --git a/app/src/main/res/layout/fragment_setup.xml b/app/src/main/res/layout/fragment_setup.xml
index 16eaea6737..6ea36eb094 100644
--- a/app/src/main/res/layout/fragment_setup.xml
+++ b/app/src/main/res/layout/fragment_setup.xml
@@ -1001,6 +1001,18 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/btnReorderAccounts" />
+
+
+ app:layout_constraintTop_toBottomOf="@id/btnPassword" />
Sending emails requires a drafts folder to be selected in the account settings
Update authorization
Switch to password authentication
+ Change password
Delete account
Delete this account permanently?
Delete this identity permanently?