aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java')
-rw-r--r--src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java b/src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java
index 5e770376..6be238dc 100644
--- a/src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java
@@ -134,14 +134,10 @@ public class ShareWithActivity extends XmppActivity {
@Override
public void onStart() {
final String type = getIntent().getType();
- if (type != null && !type.startsWith("text/")) {
- this.share.uri = (Uri) getIntent().getParcelableExtra(Intent.EXTRA_STREAM);
- try {
- this.share.image = type.startsWith("image/")
- || URLConnection.guessContentTypeFromName(this.share.uri.toString()).startsWith("image/");
- } catch (final StringIndexOutOfBoundsException ignored) {
- this.share.image = false;
- }
+ final Uri uri = getIntent().getParcelableExtra(Intent.EXTRA_STREAM);
+ if (type != null && uri != null && !type.equalsIgnoreCase("text/plain")) {
+ this.share.uri = uri;
+ this.share.image = type.startsWith("image/") || isImage(uri);
} else {
this.share.text = getIntent().getStringExtra(Intent.EXTRA_TEXT);
}
@@ -151,6 +147,15 @@ public class ShareWithActivity extends XmppActivity {
super.onStart();
}
+ protected boolean isImage(Uri uri) {
+ try {
+ String guess = URLConnection.guessContentTypeFromName(uri.toString());
+ return (guess != null && guess.startsWith("image/"));
+ } catch (final StringIndexOutOfBoundsException ignored) {
+ return false;
+ }
+ }
+
@Override
void onBackendConnected() {
if (xmppConnectionServiceBound && share != null