diff --git a/app/src/main/java/eu/faircode/email/ActivitySetup.java b/app/src/main/java/eu/faircode/email/ActivitySetup.java
index a0cb9b87aa..55028c1a99 100644
--- a/app/src/main/java/eu/faircode/email/ActivitySetup.java
+++ b/app/src/main/java/eu/faircode/email/ActivitySetup.java
@@ -88,15 +88,16 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac
static final int REQUEST_IMPORT_CERTIFICATE = 6;
static final int REQUEST_OAUTH = 7;
static final int REQUEST_STILL = 8;
- static final int REQUEST_SELECT_IDENTITY = 9;
- static final int REQUEST_EDIT_SIGNATURE = 10;
- static final int REQUEST_CHANGE_PASSWORD = 11;
- static final int REQUEST_EDIT_ACCOUNT_COLOR = 12;
- static final int REQUEST_DELETE_ACCOUNT = 13;
- static final int REQUEST_EDIT_IDENITY_COLOR = 14;
- static final int REQUEST_IMPORT_PROVIDERS = 15;
- static final int REQUEST_GRAPH_CONTACTS = 16;
- static final int REQUEST_GRAPH_CONTACTS_OAUTH = 17;
+ static final int REQUEST_DEFAULT_IDENTITY = 9;
+ static final int REQUEST_SELECT_IDENTITY = 10;
+ static final int REQUEST_EDIT_SIGNATURE = 11;
+ static final int REQUEST_CHANGE_PASSWORD = 12;
+ static final int REQUEST_EDIT_ACCOUNT_COLOR = 13;
+ static final int REQUEST_DELETE_ACCOUNT = 14;
+ static final int REQUEST_EDIT_IDENITY_COLOR = 15;
+ static final int REQUEST_IMPORT_PROVIDERS = 16;
+ static final int REQUEST_GRAPH_CONTACTS = 17;
+ static final int REQUEST_GRAPH_CONTACTS_OAUTH = 18;
static final int REQUEST_DEBUG_INFO = 7000;
static final int PI_CONNECTION = 1;
diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java
index f7fcf34e21..847df68974 100644
--- a/app/src/main/java/eu/faircode/email/FragmentCompose.java
+++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java
@@ -128,6 +128,7 @@ import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.Observer;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import androidx.preference.PreferenceManager;
@@ -3426,7 +3427,7 @@ public class FragmentCompose extends FragmentBase {
break;
case REQUEST_SELECT_IDENTITY:
if (resultCode == RESULT_OK && data != null)
- onSelectIdentity(data.getBundleExtra("args"));
+ onSelectIdentity(getContext(), getViewLifecycleOwner(), getParentFragmentManager(), data.getBundleExtra("args"));
break;
case REQUEST_PRINT:
if (resultCode == RESULT_OK && data != null)
@@ -5003,10 +5004,11 @@ public class FragmentCompose extends FragmentBase {
}.serial().execute(this, args, "compose:picked");
}
- private void onSelectIdentity(Bundle args) {
+ static void onSelectIdentity(Context context, LifecycleOwner owner, FragmentManager fm, Bundle args) {
long id = args.getLong("id");
+ Log.i("MMM id="+id);
if (id < 0) {
- getContext().startActivity(new Intent(getContext(), ActivitySetup.class)
+ context.startActivity(new Intent(context, ActivitySetup.class)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK)
.putExtra("manual", true)
.putExtra("scroll", true));
@@ -5041,14 +5043,14 @@ public class FragmentCompose extends FragmentBase {
@Override
protected void onExecuted(Bundle args, EntityIdentity identity) {
- ToastEx.makeText(getContext(), R.string.title_completed, Toast.LENGTH_LONG).show();
+ ToastEx.makeText(context, R.string.title_completed, Toast.LENGTH_LONG).show();
}
@Override
protected void onException(Bundle args, Throwable ex) {
- Log.unexpectedError(getParentFragmentManager(), ex);
+ Log.unexpectedError(fm, ex);
}
- }.serial().execute(this, args, "select:identity");
+ }.serial().execute(context, owner, args, "select:identity");
}
private void onPrint(Bundle args) {
diff --git a/app/src/main/java/eu/faircode/email/FragmentSetup.java b/app/src/main/java/eu/faircode/email/FragmentSetup.java
index 0b552b161c..8f58ea65ac 100644
--- a/app/src/main/java/eu/faircode/email/FragmentSetup.java
+++ b/app/src/main/java/eu/faircode/email/FragmentSetup.java
@@ -148,6 +148,7 @@ public class FragmentSetup extends FragmentBase implements SharedPreferences.OnS
private CardView cardExtra;
private TextView tvExtra;
private Button btnNotification;
+ private Button btnDefaultIdentity;
private Button btnSignature;
private Button btnReorderAccounts;
private Button btnReorderFolders;
@@ -244,6 +245,7 @@ public class FragmentSetup extends FragmentBase implements SharedPreferences.OnS
cardExtra = view.findViewById(R.id.cardExtra);
tvExtra = view.findViewById(R.id.tvExtra);
btnNotification = view.findViewById(R.id.btnNotification);
+ btnDefaultIdentity = view.findViewById(R.id.btnDefaultIdentity);
btnSignature = view.findViewById(R.id.btnSignature);
btnReorderAccounts = view.findViewById(R.id.btnReorderAccounts);
btnReorderFolders = view.findViewById(R.id.btnReorderFolders);
@@ -765,13 +767,23 @@ public class FragmentSetup extends FragmentBase implements SharedPreferences.OnS
}
});
+ btnDefaultIdentity.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ FragmentDialogSelectIdentity fragment = new FragmentDialogSelectIdentity();
+ fragment.setArguments(new Bundle());
+ fragment.setTargetFragment(FragmentSetup.this, ActivitySetup.REQUEST_DEFAULT_IDENTITY);
+ fragment.show(getParentFragmentManager(), "select:identity:default");
+ }
+ });
+
btnSignature.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentDialogSelectIdentity fragment = new FragmentDialogSelectIdentity();
fragment.setArguments(new Bundle());
fragment.setTargetFragment(FragmentSetup.this, ActivitySetup.REQUEST_SELECT_IDENTITY);
- fragment.show(getParentFragmentManager(), "select:identity");
+ fragment.show(getParentFragmentManager(), "select:identity:signature");
}
});
@@ -1141,6 +1153,10 @@ public class FragmentSetup extends FragmentBase implements SharedPreferences.OnS
try {
switch (requestCode) {
+ case ActivitySetup.REQUEST_DEFAULT_IDENTITY:
+ if (resultCode == RESULT_OK && data != null)
+ onSelectDefaultIdentity(data.getBundleExtra("args"));
+ break;
case ActivitySetup.REQUEST_SELECT_IDENTITY:
if (resultCode == RESULT_OK && data != null)
onSelectIdentity(data.getBundleExtra("args"));
@@ -1226,6 +1242,10 @@ public class FragmentSetup extends FragmentBase implements SharedPreferences.OnS
btnPermissions.setText(all ? R.string.title_setup_manage : R.string.title_setup_grant);
}
+ private void onSelectDefaultIdentity(Bundle args) {
+ FragmentCompose.onSelectIdentity(getContext(), getViewLifecycleOwner(), getParentFragmentManager(), args);
+ }
+
private void onSelectIdentity(Bundle args) {
Intent intent = new Intent(getContext(), ActivitySignature.class);
intent.putExtra("id", args.getLong("id"));
diff --git a/app/src/main/res/layout/fragment_setup.xml b/app/src/main/res/layout/fragment_setup.xml
index 59321b7f11..09d226e1d7 100644
--- a/app/src/main/res/layout/fragment_setup.xml
+++ b/app/src/main/res/layout/fragment_setup.xml
@@ -1111,6 +1111,19 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/btnNotification" />
+
+
+ app:layout_constraintTop_toBottomOf="@id/btnDefaultIdentity" />