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.