don’t query packages before attaching something

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/persistance/FileBackend.java | 14 
src/main/java/eu/siacs/conversations/ui/ConversationFragment.java |  5 
2 files changed, 7 insertions(+), 12 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/persistance/FileBackend.java 🔗

@@ -1147,19 +1147,13 @@ public class FileBackend {
     }
 
     public Uri getTakePhotoUri() {
+        final String filename = String.format("IMG_%s.%s", IMAGE_DATE_FORMAT.format(new Date()),"jpg");
         File file;
         if (Config.ONLY_INTERNAL_STORAGE) {
-            file =
-                    new File(
-                            mXmppConnectionService.getCacheDir().getAbsolutePath(),
-                            "Camera/IMG_" + IMAGE_DATE_FORMAT.format(new Date()) + ".jpg");
+            final File dcimCache = new File(mXmppConnectionService.getCacheDir(), "Camera");
+            file = new File(dcimCache, filename);
         } else {
-            file =
-                    new File(
-                            getTakePhotoPath()
-                                    + "IMG_"
-                                    + IMAGE_DATE_FORMAT.format(new Date())
-                                    + ".jpg");
+            file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), filename);
         }
         file.getParentFile().mkdirs();
         return getUriForFile(mXmppConnectionService, file);

src/main/java/eu/siacs/conversations/ui/ConversationFragment.java 🔗

@@ -6,6 +6,7 @@ import android.app.Activity;
 import android.app.Fragment;
 import android.app.FragmentManager;
 import android.app.PendingIntent;
+import android.content.ActivityNotFoundException;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
@@ -1744,7 +1745,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
         if (context == null) {
             return;
         }
-        if (intent.resolveActivity(context.getPackageManager()) != null) {
+        try {
             if (chooser) {
                 startActivityForResult(
                         Intent.createChooser(intent, getString(R.string.perform_action_with)),
@@ -1752,7 +1753,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
             } else {
                 startActivityForResult(intent, attachmentChoice);
             }
-        } else {
+        } catch (final ActivityNotFoundException e) {
             Toast.makeText(context, R.string.no_application_found, Toast.LENGTH_LONG).show();
         }
     }