Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 194cce35 authored by Miranda Kephart's avatar Miranda Kephart Committed by Android (Google) Code Review
Browse files

Merge changes from topic "mkephart-clipboard-share-intent" into udc-qpr-dev

* changes:
  Put clipboard image uri in clipData for share intent
  Remove setData from clipboard intents
parents b4391f01 8c73c06e
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.systemui.clipboardoverlay;

import android.content.ClipData;
import android.content.ClipDescription;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@@ -41,10 +42,16 @@ class IntentCreator {
        // From the ACTION_SEND docs:
        //   "If using EXTRA_TEXT, the MIME type should be "text/plain"; otherwise it should be the
        //    MIME type of the data in EXTRA_STREAM"
        if (clipData.getItemAt(0).getUri() != null) {
            shareIntent.setDataAndType(
                    clipData.getItemAt(0).getUri(), clipData.getDescription().getMimeType(0));
            shareIntent.putExtra(Intent.EXTRA_STREAM, clipData.getItemAt(0).getUri());
        Uri uri = clipData.getItemAt(0).getUri();
        if (uri != null) {
            // We don't use setData here because some apps interpret this as "to:".
            shareIntent.setType(clipData.getDescription().getMimeType(0));
            // Include URI in ClipData also, so that grantPermission picks it up.
            shareIntent.setClipData(new ClipData(
                    new ClipDescription(
                            "content", new String[]{clipData.getDescription().getMimeType(0)}),
                    new ClipData.Item(uri)));
            shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
            shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        } else {
            shareIntent.putExtra(
+2 −1
Original line number Diff line number Diff line
@@ -126,7 +126,8 @@ public class IntentCreatorTest extends SysuiTestCase {
        assertEquals(Intent.ACTION_CHOOSER, intent.getAction());
        assertFlags(intent, EXTERNAL_INTENT_FLAGS);
        Intent target = intent.getParcelableExtra(Intent.EXTRA_INTENT, Intent.class);
        assertEquals(uri, target.getData());
        assertEquals(uri, target.getParcelableExtra(Intent.EXTRA_STREAM, Uri.class));
        assertEquals(uri, target.getClipData().getItemAt(0).getUri());
        assertEquals("image/png", target.getType());
    }