catch security exception when passing on share intent that didn’t give us permission

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/ui/ChooseAccountForProfilePictureActivity.java | 8 
src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java                      | 7 
src/main/res/values/strings.xml                                                     | 1 
3 files changed, 14 insertions(+), 2 deletions(-)

Detailed changes

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

@@ -5,6 +5,7 @@ import android.net.Uri;
 import android.os.Bundle;
 import android.support.v7.app.ActionBar;
 import android.widget.ListView;
+import android.widget.Toast;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -78,7 +79,12 @@ public class ChooseAccountForProfilePictureActivity extends XmppActivity {
             intent.putExtra(EXTRA_ACCOUNT, account.getJid().asBareJid().toString());
             intent.setData(uri);
             intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
-            startActivity(intent);
+            try {
+                startActivity(intent);
+            } catch (SecurityException e) {
+                Toast.makeText(this, R.string.sharing_application_not_grant_permission, Toast.LENGTH_SHORT).show();
+                return;
+            }
         }
         finish();
     }

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

@@ -200,7 +200,12 @@ public class ShareWithActivity extends XmppActivity implements XmppConnectionSer
             intent.putExtra(Intent.EXTRA_TEXT, share.text);
             intent.putExtra(ConversationsActivity.EXTRA_AS_QUOTE, share.asQuote);
         }
-        startActivity(intent);
+        try {
+            startActivity(intent);
+        } catch (SecurityException e) {
+            Toast.makeText(this, R.string.sharing_application_not_grant_permission, Toast.LENGTH_SHORT).show();
+            return;
+        }
         finish();
     }
 

src/main/res/values/strings.xml 🔗

@@ -878,4 +878,5 @@
     <string name="please_enter_password">Please enter the password for this account</string>
     <string name="unable_to_perform_this_action">Unable to perform this action</string>
     <string name="open_join_dialog">Join public channel…</string>
+    <string name="sharing_application_not_grant_permission">The sharing application did not grant permission to access this file.</string>
 </resources>