diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java
index e700ed4ca5..1514996704 100644
--- a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java
+++ b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java
@@ -252,6 +252,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
private SwitchCompat swThreadByRef;
private SwitchCompat swMdn;
private SwitchCompat swAppChooser;
+ private SwitchCompat swAppChooserShare;
private SwitchCompat swAdjacentLinks;
private SwitchCompat swAdjacentDocuments;
private SwitchCompat swAdjacentPortrait;
@@ -321,7 +322,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
"exact_alarms",
"native_dkim", "native_arc", "native_arc_whitelist",
"webp", "easy_correct", "infra", "tld_flags", "dup_msgids", "thread_byref", "mdn",
- "app_chooser", "adjacent_links", "adjacent_documents", "adjacent_portrait", "adjacent_landscape",
+ "app_chooser", "app_chooser_share", "adjacent_links", "adjacent_documents", "adjacent_portrait", "adjacent_landscape",
"delete_confirmation", "global_keywords", "test_iab"
};
@@ -523,6 +524,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
swThreadByRef = view.findViewById(R.id.swThreadByRef);
swMdn = view.findViewById(R.id.swMdn);
swAppChooser = view.findViewById(R.id.swAppChooser);
+ swAppChooserShare = view.findViewById(R.id.swAppChooserShare);
swAdjacentLinks = view.findViewById(R.id.swAdjacentLinks);
swAdjacentDocuments = view.findViewById(R.id.swAdjacentDocuments);
swAdjacentPortrait = view.findViewById(R.id.swAdjacentPortrait);
@@ -1988,6 +1990,13 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
}
});
+ swAppChooserShare.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
+ prefs.edit().putBoolean("app_chooser_share", checked).apply();
+ }
+ });
+
swAdjacentLinks.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
@@ -2800,6 +2809,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
swThreadByRef.setChecked(prefs.getBoolean("thread_byref", true));
swMdn.setChecked(prefs.getBoolean("mdn", swExperiments.isChecked()));
swAppChooser.setChecked(prefs.getBoolean("app_chooser", false));
+ swAppChooserShare.setChecked(prefs.getBoolean("app_chooser_share", false));
swAdjacentLinks.setChecked(prefs.getBoolean("adjacent_links", false));
swAdjacentDocuments.setChecked(prefs.getBoolean("adjacent_documents", true));
swAdjacentPortrait.setChecked(prefs.getBoolean("adjacent_portrait", false));
diff --git a/app/src/main/java/eu/faircode/email/Helper.java b/app/src/main/java/eu/faircode/email/Helper.java
index 949212127e..765d3f790b 100644
--- a/app/src/main/java/eu/faircode/email/Helper.java
+++ b/app/src/main/java/eu/faircode/email/Helper.java
@@ -975,9 +975,14 @@ public class Helper {
}
static Intent getChooser(Context context, Intent intent) {
+ return getChooser(context, intent, false);
+ }
+
+ static Intent getChooser(Context context, Intent intent, boolean share) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean app_chooser = prefs.getBoolean("app_chooser", false);
- if (!app_chooser)
+ boolean app_chooser_share = prefs.getBoolean("app_chooser_share", false);
+ if (share ? !app_chooser_share : !app_chooser)
return intent;
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
@@ -1047,9 +1052,9 @@ public class Helper {
else
reportNoViewer(context, intent, null);
else
- context.startActivity(intent);
+ context.startActivity(getChooser(context, intent, true));
} else
- context.startActivity(intent);
+ context.startActivity(getChooser(context, intent, true));
}
static boolean isTnef(String type, String name) {
diff --git a/app/src/main/res/layout/fragment_options_misc.xml b/app/src/main/res/layout/fragment_options_misc.xml
index bec400b7b4..3954faf479 100644
--- a/app/src/main/res/layout/fragment_options_misc.xml
+++ b/app/src/main/res/layout/fragment_options_misc.xml
@@ -2421,13 +2421,23 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
- android:checked="true"
android:text="@string/title_advanced_app_chooser"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/swMdn"
app:switchPadding="12dp" />
+
+
+ app:layout_constraintTop_toBottomOf="@id/swAppChooserShare" />
Duplicates by message ID
Thread by common reference
Process MDNs
- Use Android app chooser
+ Use Android app chooser for links
+ Use Android app chooser for files
Open side-by-side
Links
Documents