summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Smith <davidas@google.com>2018-05-01 14:54:46 -0700
committerTim Schumacher <timschumi@gmx.de>2018-08-08 21:59:57 +0200
commit909f831b98faf15300676875afd2f21a1fc74d06 (patch)
tree85b188deaa89de037e4ab8a040bc60f77cbf7212
parent0955013081c869922ae57657e319c3b8a3172dc0 (diff)
downloadandroid_packages_apps_Messaging-909f831b98faf15300676875afd2f21a1fc74d06.tar.gz
android_packages_apps_Messaging-909f831b98faf15300676875afd2f21a1fc74d06.tar.bz2
android_packages_apps_Messaging-909f831b98faf15300676875afd2f21a1fc74d06.zip
Messaging ignores file URIs shared via intent
Fixes b/37629504 by not creating attachments from file URIs shared via intent. Sharing file URIs is disallowed by Android N and later and is no longer supported for this app. Test: manual using the Debug command added in this change Change-Id: Ibff486c94ac703a9a4c5a80e33b934a460804a8f Merged-In: Ibff486c94ac703a9a4c5a80e33b934a460804a8f (cherry picked from commit 9deefdf182d69f98d361d9d24de1e4892923dac5)
-rw-r--r--src/com/android/messaging/ui/conversationlist/ShareIntentActivity.java13
-rw-r--r--src/com/android/messaging/util/DebugUtils.java22
2 files changed, 35 insertions, 0 deletions
diff --git a/src/com/android/messaging/ui/conversationlist/ShareIntentActivity.java b/src/com/android/messaging/ui/conversationlist/ShareIntentActivity.java
index 6f3c968..80115f9 100644
--- a/src/com/android/messaging/ui/conversationlist/ShareIntentActivity.java
+++ b/src/com/android/messaging/ui/conversationlist/ShareIntentActivity.java
@@ -34,6 +34,7 @@ import com.android.messaging.util.Assert;
import com.android.messaging.util.ContentType;
import com.android.messaging.util.LogUtil;
import com.android.messaging.util.MediaMetadataRetrieverWrapper;
+import com.android.messaging.util.UriUtil;
import java.io.IOException;
import java.util.ArrayList;
@@ -75,6 +76,12 @@ 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)) {
+ LogUtil.i(
+ LogUtil.BUGLE_TAG,
+ "Ignoring attachment from file URI which are no longer supported.");
+ return;
+ }
final String contentType = extractContentType(contentUri, intent.getType());
if (LogUtil.isLoggable(LogUtil.BUGLE_TAG, LogUtil.DEBUG)) {
LogUtil.d(LogUtil.BUGLE_TAG, String.format(
@@ -117,6 +124,12 @@ 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)) {
+ LogUtil.i(
+ LogUtil.BUGLE_TAG,
+ "Ignoring attachment from file URI which are no longer supported.");
+ continue;
+ }
final String actualContentType = extractContentType(imageUri, contentType);
addSharedImagePartToDraft(actualContentType, imageUri);
}
diff --git a/src/com/android/messaging/util/DebugUtils.java b/src/com/android/messaging/util/DebugUtils.java
index f2c1d65..1362f83 100644
--- a/src/com/android/messaging/util/DebugUtils.java
+++ b/src/com/android/messaging/util/DebugUtils.java
@@ -22,12 +22,15 @@ import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.Context;
import android.content.DialogInterface;
+import android.content.Intent;
import android.media.MediaPlayer;
+import android.net.Uri;
import android.os.Environment;
import android.telephony.SmsMessage;
import android.text.TextUtils;
import android.widget.ArrayAdapter;
+import com.android.messaging.Factory;
import com.android.messaging.R;
import com.android.messaging.datamodel.SyncManager;
import com.android.messaging.datamodel.action.DumpDatabaseAction;
@@ -179,6 +182,13 @@ public class DebugUtils {
}
});
+ arrayAdapter.add(new DebugAction("Test sharing a file URI") {
+ @Override
+ public void run() {
+ shareFileUri();
+ }
+ });
+
builder.setAdapter(arrayAdapter,
new android.content.DialogInterface.OnClickListener() {
@Override
@@ -422,4 +432,16 @@ public class DebugUtils {
public static boolean debugClassZeroSmsEnabled() {
return sDebugClassZeroSms;
}
+
+ /** Shares a ringtone file via file URI. */
+ private static void shareFileUri() {
+ final String packageName = "com.android.messaging";
+ final String fileName = "/system/media/audio/ringtones/Andromeda.ogg";
+
+ Intent intent = new Intent(Intent.ACTION_SEND);
+ intent.setPackage(packageName);
+ intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + fileName));
+ intent.setType("image/*");
+ Factory.get().getApplicationContext().startActivity(intent);
+ }
}