Merge cherrypicks of [4583929, 4582754, 4582755, 4582756, 4583930, 4583931, 4583932, 4586307, 4586953, 4582585, 4586964, 4586965, 4586984, 4586985, 4586986, 4586987, 4586966, 4582586, 4582885, 4586531, 4586532, 4586533, 4586535, 4586536, 4586537, 4586538, 4586539, 4586540, 4586541, 4586542, 4586890, 4586891, 4586892, 4586893, 4586894, 4586895, 4586896, 4586897, 4586898, 4586899, 4586900, 4586901, 4586902, 4586903, 4587104, 4587105, 4587106, 4586988, 4583933, 4583934, 4583935, 4586989, 4586990, 4587136, 4587138, 4586991, 4586308, 4586967, 4587069, 4587070, 4582886, 4582887, 4587164, 4582888, 4587027, 4587028, 4587029, 4587030, 4582587, 4582588, 4582589, 4582590, 4582591, 4582592, 4582593, 4582594, 4582595, 4582596, 4582597, 4582598, 4582599, 4582600, 4582601, 4582602, 4582603, 4587244, 4587245, 4587246, 4587247, 4587248, 4587249, 4587250, 4587251, 4587252, 4582760, 4583936, 4582761, 4586992, 4587229, 4587230, 4587231, 4587253, 4586968] into sparse-4732991-L37700000192334752

Change-Id: I6bb377180c2e8588dc72d0b42ae2d78dcda0483a
diff --git a/src/com/android/messaging/ui/conversationlist/ShareIntentActivity.java b/src/com/android/messaging/ui/conversationlist/ShareIntentActivity.java
index 83b7be9..1c91e46 100644
--- a/src/com/android/messaging/ui/conversationlist/ShareIntentActivity.java
+++ b/src/com/android/messaging/ui/conversationlist/ShareIntentActivity.java
@@ -35,6 +35,7 @@
 import com.android.messaging.util.LogUtil;
 import com.android.messaging.util.MediaMetadataRetrieverWrapper;
 import com.android.messaging.util.FileUtil;
+import com.android.messaging.util.UriUtil;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -75,6 +76,12 @@
         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(
@@ -112,6 +119,12 @@
                 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.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 @@
             }
         });
 
+        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 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);
+    }
 }