diff --git a/app/src/main/java/org/fdroid/fdroid/views/InstallHistoryActivity.java b/app/src/main/java/org/fdroid/fdroid/views/InstallHistoryActivity.java
index dd9eb8696..fcd97a71d 100644
--- a/app/src/main/java/org/fdroid/fdroid/views/InstallHistoryActivity.java
+++ b/app/src/main/java/org/fdroid/fdroid/views/InstallHistoryActivity.java
@@ -20,6 +20,7 @@
package org.fdroid.fdroid.views;
+import android.content.ActivityNotFoundException;
import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
@@ -28,6 +29,7 @@ import android.os.ParcelFileDescriptor;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
+import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ShareCompat;
@@ -137,6 +139,7 @@ public class InstallHistoryActivity extends AppCompatActivity {
int itemId = item.getItemId();
if (itemId == R.id.menu_share) {
ShareCompat.IntentBuilder intentBuilder = ShareCompat.IntentBuilder.from(this);
+ String title;
if (showingInstallHistory) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("Repos:\n");
@@ -147,22 +150,29 @@ public class InstallHistoryActivity extends AppCompatActivity {
stringBuilder.append('\n');
}
}
+ title = getString(R.string.send_install_history);
intentBuilder
.setText(stringBuilder.toString())
.setStream(InstallHistoryService.LOG_URI)
.setType("text/plain")
.setSubject(getString(R.string.send_history_csv, appName))
- .setChooserTitle(R.string.send_install_history);
+ .setChooserTitle(title);
} else {
+ title = getString(R.string.send_fdroid_metrics_report, appName);
intentBuilder
.setText(textView.getText())
.setType("application/json")
.setSubject(getString(R.string.send_fdroid_metrics_json, appName))
- .setChooserTitle(R.string.send_fdroid_metrics_report);
+ .setChooserTitle(title);
}
Intent intent = intentBuilder.getIntent();
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
- startActivity(intent);
+ try {
+ Intent chooserIntent = Intent.createChooser(intent, title);
+ startActivity(chooserIntent);
+ } catch (ActivityNotFoundException ex) {
+ Toast.makeText(this, R.string.no_handler_app_generic, Toast.LENGTH_LONG).show();
+ }
} else if (itemId == R.id.menu_delete) {
if (showingInstallHistory) {
getContentResolver().delete(InstallHistoryService.LOG_URI, null, null);
diff --git a/app/src/main/java/org/fdroid/fdroid/views/installed/InstalledAppsActivity.java b/app/src/main/java/org/fdroid/fdroid/views/installed/InstalledAppsActivity.java
index b9b1e1480..9013706f2 100644
--- a/app/src/main/java/org/fdroid/fdroid/views/installed/InstalledAppsActivity.java
+++ b/app/src/main/java/org/fdroid/fdroid/views/installed/InstalledAppsActivity.java
@@ -19,11 +19,14 @@
package org.fdroid.fdroid.views.installed;
+import android.content.ActivityNotFoundException;
+import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
+import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ShareCompat;
@@ -118,12 +121,18 @@ public class InstalledAppsActivity extends AppCompatActivity {
.append(app.installedVersionName).append('\n');
}
}
+ String title = getString(R.string.send_installed_apps);
ShareCompat.IntentBuilder intentBuilder = new ShareCompat.IntentBuilder(this)
- .setSubject(getString(R.string.send_installed_apps))
- .setChooserTitle(R.string.send_installed_apps)
+ .setSubject(title)
+ .setChooserTitle(title)
.setText(stringBuilder.toString())
.setType("text/csv");
- startActivity(intentBuilder.getIntent());
+ try {
+ Intent chooserIntent = Intent.createChooser(intentBuilder.getIntent(), title);
+ startActivity(chooserIntent);
+ } catch (ActivityNotFoundException ex) {
+ Toast.makeText(this, R.string.no_handler_app_generic, Toast.LENGTH_LONG).show();
+ }
}
return super.onOptionsItemSelected(item);
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 50d3fb4c5..08e6962a1 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -456,6 +456,7 @@ This often occurs with apps installed via Google Play or other sources, if they
Permissions
App has unexpected permission: %s
You don\'t have any available app that can handle %s.
+ You don\'t have any available app that can handle this.
Theme
Use pure black background in dark theme
Recommended only for OLED screens.