diff options
author | dianlujitao <dianlujitao@lineageos.org> | 2017-06-27 20:51:19 +0800 |
---|---|---|
committer | dianlujitao <dianlujitao@lineageos.org> | 2017-06-28 15:47:04 +0800 |
commit | 53b0ba33a29d152c283f56b24655e708aea50558 (patch) | |
tree | a889486eecbd35969649685c406dbc426e46f82a /src | |
parent | c8e61e5515de5b6432a5e1d48f41ba500d92708a (diff) | |
download | packages_apps_Messaging-53b0ba33a29d152c283f56b24655e708aea50558.tar.gz packages_apps_Messaging-53b0ba33a29d152c283f56b24655e708aea50558.tar.bz2 packages_apps_Messaging-53b0ba33a29d152c283f56b24655e708aea50558.zip |
Messaging: Request external storage permission before handling shared files
Change-Id: I3dd8223f41d94a4f348cc35c0af95ff271a08b62
Ticket: BUGBASH-638
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/messaging/ui/conversationlist/ShareIntentActivity.java | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/com/android/messaging/ui/conversationlist/ShareIntentActivity.java b/src/com/android/messaging/ui/conversationlist/ShareIntentActivity.java index 83b7be9..debd7fc 100644 --- a/src/com/android/messaging/ui/conversationlist/ShareIntentActivity.java +++ b/src/com/android/messaging/ui/conversationlist/ShareIntentActivity.java @@ -16,6 +16,7 @@ package com.android.messaging.ui.conversationlist; +import android.Manifest; import android.app.Fragment; import android.content.ContentResolver; import android.content.Intent; @@ -35,6 +36,8 @@ import com.android.messaging.util.ContentType; import com.android.messaging.util.LogUtil; import com.android.messaging.util.MediaMetadataRetrieverWrapper; import com.android.messaging.util.FileUtil; +import com.android.messaging.util.OsUtil; +import com.android.messaging.util.UriUtil; import java.io.IOException; import java.util.ArrayList; @@ -75,6 +78,10 @@ public class ShareIntentActivity extends BaseBugleActivity implements final String action = intent.getAction(); if (Intent.ACTION_SEND.equals(action)) { final Uri contentUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM); + if (UriUtil.isFileUri(contentUri) && !OsUtil.hasStoragePermission()) { + requestPermissions( + new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, 0); + } final String contentType = extractContentType(contentUri, intent.getType()); if (LogUtil.isLoggable(LogUtil.BUGLE_TAG, LogUtil.DEBUG)) { LogUtil.d(LogUtil.BUGLE_TAG, String.format( @@ -112,6 +119,10 @@ public class ShareIntentActivity extends BaseBugleActivity implements if (imageUris != null && imageUris.size() > 0) { mDraftMessage = MessageData.createSharedMessage(null); for (final Uri imageUri : imageUris) { + if (UriUtil.isFileUri(imageUri) && !OsUtil.hasStoragePermission()) { + requestPermissions( + new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, 0); + } final String actualContentType = extractContentType(imageUri, contentType); addSharedImagePartToDraft(actualContentType, imageUri); } |