diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java
index 291075634a..0594902d90 100644
--- a/app/src/main/java/eu/faircode/email/ActivityView.java
+++ b/app/src/main/java/eu/faircode/email/ActivityView.java
@@ -828,7 +828,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
}
private void onMenuInvite() {
- startActivityForResult(getIntentInvite(), REQUEST_INVITE);
+ startActivityForResult(Helper.getChooser(this, getIntentInvite()), REQUEST_INVITE);
}
private void onMenuOtherApps() {
@@ -1279,7 +1279,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
if (create.resolveActivity(getPackageManager()) == null)
Snackbar.make(getVisibleView(), R.string.title_no_saf, Snackbar.LENGTH_LONG).show();
else
- startActivityForResult(create, REQUEST_ATTACHMENT);
+ startActivityForResult(Helper.getChooser(this, create), REQUEST_ATTACHMENT);
}
private void onDecrypt(Intent intent) {
diff --git a/app/src/main/java/eu/faircode/email/FragmentAccount.java b/app/src/main/java/eu/faircode/email/FragmentAccount.java
index 0f5280c266..c4f7ea86c3 100644
--- a/app/src/main/java/eu/faircode/email/FragmentAccount.java
+++ b/app/src/main/java/eu/faircode/email/FragmentAccount.java
@@ -1133,14 +1133,16 @@ public class FragmentAccount extends FragmentEx {
Log.i(Helper.TAG, "Select account");
Provider provider = (Provider) spProvider.getSelectedItem();
if (provider.type != null)
- startActivityForResult(newChooseAccountIntent(
- null,
- null,
- new String[]{provider.type},
- null,
- null,
- null,
- null), ActivitySetup.REQUEST_CHOOSE_ACCOUNT);
+ startActivityForResult(
+ Helper.getChooser(getContext(), newChooseAccountIntent(
+ null,
+ null,
+ new String[]{provider.type},
+ null,
+ null,
+ null,
+ null)),
+ ActivitySetup.REQUEST_CHOOSE_ACCOUNT);
}
private void setColor(int color) {
diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java
index 07a1a6e3d2..a617ca6461 100644
--- a/app/src/main/java/eu/faircode/email/FragmentCompose.java
+++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java
@@ -246,7 +246,7 @@ public class FragmentCompose extends FragmentEx {
if (pick.resolveActivity(getContext().getPackageManager()) == null)
Snackbar.make(view, R.string.title_no_contacts, Snackbar.LENGTH_LONG).show();
else
- startActivityForResult(pick, request);
+ startActivityForResult(Helper.getChooser(getContext(), pick), request);
}
};
@@ -554,7 +554,7 @@ public class FragmentCompose extends FragmentEx {
if (intent.resolveActivity(pm) == null)
Snackbar.make(view, R.string.title_no_saf, Snackbar.LENGTH_LONG).show();
else
- startActivityForResult(intent, ActivityCompose.REQUEST_IMAGE);
+ startActivityForResult(Helper.getChooser(getContext(), intent), ActivityCompose.REQUEST_IMAGE);
}
private void onMenuAttachment() {
@@ -565,7 +565,7 @@ public class FragmentCompose extends FragmentEx {
if (intent.resolveActivity(pm) == null)
Snackbar.make(view, R.string.title_no_saf, Snackbar.LENGTH_LONG).show();
else
- startActivityForResult(intent, ActivityCompose.REQUEST_ATTACHMENT);
+ startActivityForResult(Helper.getChooser(getContext(), intent), ActivityCompose.REQUEST_ATTACHMENT);
}
private void onMenuAddresses() {
diff --git a/app/src/main/java/eu/faircode/email/FragmentOptions.java b/app/src/main/java/eu/faircode/email/FragmentOptions.java
index 475f591ec7..e24ab9e275 100644
--- a/app/src/main/java/eu/faircode/email/FragmentOptions.java
+++ b/app/src/main/java/eu/faircode/email/FragmentOptions.java
@@ -218,7 +218,7 @@ public class FragmentOptions extends FragmentEx implements SharedPreferences.OnS
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, getString(R.string.title_advanced_sound));
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, sound == null ? null : Uri.parse(sound));
- startActivityForResult(intent, ActivitySetup.REQUEST_SOUND);
+ startActivityForResult(Helper.getChooser(getContext(), intent), ActivitySetup.REQUEST_SOUND);
}
});
diff --git a/app/src/main/java/eu/faircode/email/FragmentSetup.java b/app/src/main/java/eu/faircode/email/FragmentSetup.java
index 92960d2789..c5a4f766d1 100644
--- a/app/src/main/java/eu/faircode/email/FragmentSetup.java
+++ b/app/src/main/java/eu/faircode/email/FragmentSetup.java
@@ -500,7 +500,7 @@ public class FragmentSetup extends FragmentEx {
private void onMenuExport() {
if (Helper.isPro(getContext()))
try {
- startActivityForResult(getIntentExport(), ActivitySetup.REQUEST_EXPORT);
+ startActivityForResult(Helper.getChooser(getContext(), getIntentExport()), ActivitySetup.REQUEST_EXPORT);
} catch (Throwable ex) {
Helper.unexpectedError(getContext(), getViewLifecycleOwner(), ex);
}
@@ -513,7 +513,7 @@ public class FragmentSetup extends FragmentEx {
private void onMenuImport() {
try {
- startActivityForResult(getIntentImport(), ActivitySetup.REQUEST_IMPORT);
+ startActivityForResult(Helper.getChooser(getContext(), getIntentImport()), ActivitySetup.REQUEST_IMPORT);
} catch (Throwable ex) {
Helper.unexpectedError(getContext(), getViewLifecycleOwner(), ex);
}
diff --git a/app/src/main/java/eu/faircode/email/Helper.java b/app/src/main/java/eu/faircode/email/Helper.java
index a441b40225..65866f1280 100644
--- a/app/src/main/java/eu/faircode/email/Helper.java
+++ b/app/src/main/java/eu/faircode/email/Helper.java
@@ -122,6 +122,14 @@ public class Helper {
}
}
+ static Intent getChooser(Context context, Intent intent) {
+ PackageManager pm = context.getPackageManager();
+ if (pm.queryIntentActivities(intent, 0).size() == 1)
+ return intent;
+ else
+ return Intent.createChooser(intent, context.getString(R.string.title_select_app));
+ }
+
static Intent getIntentPrivacy() {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://email.faircode.eu/privacy/"));
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 69d8f3c806..1afdedcef5 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -346,6 +346,7 @@
Downloading messages can take some time, depending on the speed of the provider, internet connection and device and on the number of messages. While downloading messages the app might respond slower.
Open link
+ Select app
There is an update to version %1$s available
Do you have a question or problem?
Yes