aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/ui/ShareWithActivity.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2017-10-29 19:58:26 +0100
committerChristian Schneppe <christian@pix-art.de>2017-10-29 19:58:26 +0100
commit655edca0b7e7b6a364fc0e548754bfebd642c0a6 (patch)
tree9df2d13ee53b395c16a10f83574a7c072d9824c5 /src/main/java/de/pixart/messenger/ui/ShareWithActivity.java
parent712f35fc03a7573fe7f4b4c4999df7ef1092db14 (diff)
Sharing: request permission
Diffstat (limited to 'src/main/java/de/pixart/messenger/ui/ShareWithActivity.java')
-rw-r--r--src/main/java/de/pixart/messenger/ui/ShareWithActivity.java23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/ShareWithActivity.java b/src/main/java/de/pixart/messenger/ui/ShareWithActivity.java
index d269e4249..cba91d108 100644
--- a/src/main/java/de/pixart/messenger/ui/ShareWithActivity.java
+++ b/src/main/java/de/pixart/messenger/ui/ShareWithActivity.java
@@ -2,6 +2,7 @@ package de.pixart.messenger.ui;
import android.app.PendingIntent;
import android.content.Intent;
+import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
@@ -35,7 +36,9 @@ import static java.lang.String.format;
public class ShareWithActivity extends XmppActivity implements XmppConnectionService.OnConversationUpdate {
+ private static final int REQUEST_STORAGE_PERMISSION = 0x733f32;
private boolean mReturnToPrevious = false;
+ private Conversation mPendingConversation = null;
private static final String STATE_SHARING_IS_RUNNING = "state_sharing_is_running";
static boolean ContactChosen = false;
static boolean IntentReceived = false;
@@ -151,6 +154,22 @@ public class ShareWithActivity extends XmppActivity implements XmppConnectionSer
}
@Override
+ public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
+ if (grantResults.length > 0)
+ if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+ if (requestCode == REQUEST_STORAGE_PERMISSION) {
+ if (this.mPendingConversation != null) {
+ share(this.mPendingConversation);
+ } else {
+ Log.d(Config.LOGTAG, "unable to find stored conversation");
+ }
+ }
+ } else {
+ Toast.makeText(this, R.string.no_storage_permission, Toast.LENGTH_SHORT).show();
+ }
+ }
+
+ @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -311,6 +330,10 @@ public class ShareWithActivity extends XmppActivity implements XmppConnectionSer
}
private void share(final Conversation conversation) {
+ if (share.uris.size() != 0 && !hasStoragePermission(REQUEST_STORAGE_PERMISSION)) {
+ mPendingConversation = conversation;
+ return;
+ }
final Account account = conversation.getAccount();
final XmppConnection connection = account.getXmppConnection();
final long max = connection == null ? -1 : connection.getFeatures().getMaxHttpUploadSize();