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

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

Merge "Add "edit_source" extra to screenshot/clipboard edit intents" into udc-qpr-dev

parents fa7d18dd 092155f6
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -27,7 +27,8 @@ import android.text.TextUtils;
import com.android.systemui.R;

class IntentCreator {
    private static final String EXTRA_EDIT_SOURCE_CLIPBOARD = "edit_source_clipboard";
    private static final String EXTRA_EDIT_SOURCE = "edit_source";
    private static final String EDIT_SOURCE_CLIPBOARD = "clipboard";
    private static final String REMOTE_COPY_ACTION = "android.intent.action.REMOTE_COPY";

    static Intent getTextEditorIntent(Context context) {
@@ -74,7 +75,7 @@ class IntentCreator {
        editIntent.setDataAndType(uri, "image/*");
        editIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        editIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
        editIntent.putExtra(EXTRA_EDIT_SOURCE_CLIPBOARD, true);
        editIntent.putExtra(EXTRA_EDIT_SOURCE, EDIT_SOURCE_CLIPBOARD);
        return editIntent;
    }

+4 −0
Original line number Diff line number Diff line
@@ -82,11 +82,15 @@ object ActionIntentCreator {

        return editIntent
            .setDataAndType(uri, "image/png")
            .putExtra(EXTRA_EDIT_SOURCE, EDIT_SOURCE_SCREENSHOT)
            .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
            .addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION)
            .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
            .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
    }

    private const val EXTRA_EDIT_SOURCE = "edit_source"
    private const val EDIT_SOURCE_SCREENSHOT = "screenshot"
}

/**
+1 −0
Original line number Diff line number Diff line
@@ -80,6 +80,7 @@ public class IntentCreatorTest extends SysuiTestCase {
        assertEquals(Intent.ACTION_EDIT, intent.getAction());
        assertEquals("image/*", intent.getType());
        assertEquals(null, intent.getComponent());
        assertEquals("clipboard", intent.getStringExtra("edit_source"));
        assertFlags(intent, EXTERNAL_INTENT_FLAGS);

        // try again with an editor component
+35 −33
Original line number Diff line number Diff line
@@ -20,12 +20,13 @@ import android.content.ComponentName
import android.content.Context
import android.content.Intent
import android.net.Uri
import androidx.test.ext.truth.content.IntentSubject.assertThat
import androidx.test.ext.truth.content.IntentSubject.assertThat as assertThatIntent
import androidx.test.filters.SmallTest
import com.android.systemui.R
import com.android.systemui.SysuiTestCase
import com.android.systemui.util.mockito.eq
import com.android.systemui.util.mockito.mock
import com.google.common.truth.Truth.assertThat
import com.google.common.truth.Truth.assertWithMessage
import org.junit.Test
import org.mockito.Mockito.`when` as whenever
@@ -39,23 +40,23 @@ class ActionIntentCreatorTest : SysuiTestCase() {

        val output = ActionIntentCreator.createShare(uri)

        assertThat(output).hasAction(Intent.ACTION_CHOOSER)
        assertThat(output)
        assertThatIntent(output).hasAction(Intent.ACTION_CHOOSER)
        assertThatIntent(output)
            .hasFlags(
                Intent.FLAG_ACTIVITY_NEW_TASK or
                    Intent.FLAG_ACTIVITY_CLEAR_TASK or
                    Intent.FLAG_GRANT_READ_URI_PERMISSION
            )

        assertThat(output).extras().parcelable<Intent>(Intent.EXTRA_INTENT).isNotNull()
        assertThatIntent(output).extras().parcelable<Intent>(Intent.EXTRA_INTENT).isNotNull()
        val wrappedIntent = output.getParcelableExtra(Intent.EXTRA_INTENT, Intent::class.java)

        assertThat(wrappedIntent).hasAction(Intent.ACTION_SEND)
        assertThat(wrappedIntent).hasData(uri)
        assertThat(wrappedIntent).hasType("image/png")
        assertThat(wrappedIntent).extras().doesNotContainKey(Intent.EXTRA_SUBJECT)
        assertThat(wrappedIntent).extras().doesNotContainKey(Intent.EXTRA_TEXT)
        assertThat(wrappedIntent).extras().parcelable<Uri>(Intent.EXTRA_STREAM).isEqualTo(uri)
        assertThatIntent(wrappedIntent).hasAction(Intent.ACTION_SEND)
        assertThatIntent(wrappedIntent).hasData(uri)
        assertThatIntent(wrappedIntent).hasType("image/png")
        assertThatIntent(wrappedIntent).extras().doesNotContainKey(Intent.EXTRA_SUBJECT)
        assertThatIntent(wrappedIntent).extras().doesNotContainKey(Intent.EXTRA_TEXT)
        assertThatIntent(wrappedIntent).extras().parcelable<Uri>(Intent.EXTRA_STREAM).isEqualTo(uri)
    }

    @Test
@@ -64,7 +65,7 @@ class ActionIntentCreatorTest : SysuiTestCase() {

        val output = ActionIntentCreator.createShare(uri)

        assertThat(output.getParcelableExtra(Intent.EXTRA_INTENT, Intent::class.java))
        assertThatIntent(output.getParcelableExtra(Intent.EXTRA_INTENT, Intent::class.java))
            .hasData(Uri.parse("content://fake"))
    }

@@ -75,8 +76,8 @@ class ActionIntentCreatorTest : SysuiTestCase() {

        val output = ActionIntentCreator.createShareWithSubject(uri, subject)

        assertThat(output).hasAction(Intent.ACTION_CHOOSER)
        assertThat(output)
        assertThatIntent(output).hasAction(Intent.ACTION_CHOOSER)
        assertThatIntent(output)
            .hasFlags(
                Intent.FLAG_ACTIVITY_NEW_TASK or
                    Intent.FLAG_ACTIVITY_CLEAR_TASK or
@@ -84,12 +85,12 @@ class ActionIntentCreatorTest : SysuiTestCase() {
            )

        val wrappedIntent = output.getParcelableExtra(Intent.EXTRA_INTENT, Intent::class.java)
        assertThat(wrappedIntent).hasAction(Intent.ACTION_SEND)
        assertThat(wrappedIntent).hasData(uri)
        assertThat(wrappedIntent).hasType("image/png")
        assertThat(wrappedIntent).extras().string(Intent.EXTRA_SUBJECT).isEqualTo(subject)
        assertThat(wrappedIntent).extras().doesNotContainKey(Intent.EXTRA_TEXT)
        assertThat(wrappedIntent).extras().parcelable<Uri>(Intent.EXTRA_STREAM).isEqualTo(uri)
        assertThatIntent(wrappedIntent).hasAction(Intent.ACTION_SEND)
        assertThatIntent(wrappedIntent).hasData(uri)
        assertThatIntent(wrappedIntent).hasType("image/png")
        assertThatIntent(wrappedIntent).extras().string(Intent.EXTRA_SUBJECT).isEqualTo(subject)
        assertThatIntent(wrappedIntent).extras().doesNotContainKey(Intent.EXTRA_TEXT)
        assertThatIntent(wrappedIntent).extras().parcelable<Uri>(Intent.EXTRA_STREAM).isEqualTo(uri)
    }

    @Test
@@ -99,8 +100,8 @@ class ActionIntentCreatorTest : SysuiTestCase() {

        val output = ActionIntentCreator.createShareWithText(uri, extraText)

        assertThat(output).hasAction(Intent.ACTION_CHOOSER)
        assertThat(output)
        assertThatIntent(output).hasAction(Intent.ACTION_CHOOSER)
        assertThatIntent(output)
            .hasFlags(
                Intent.FLAG_ACTIVITY_NEW_TASK or
                    Intent.FLAG_ACTIVITY_CLEAR_TASK or
@@ -108,12 +109,12 @@ class ActionIntentCreatorTest : SysuiTestCase() {
            )

        val wrappedIntent = output.getParcelableExtra(Intent.EXTRA_INTENT, Intent::class.java)
        assertThat(wrappedIntent).hasAction(Intent.ACTION_SEND)
        assertThat(wrappedIntent).hasData(uri)
        assertThat(wrappedIntent).hasType("image/png")
        assertThat(wrappedIntent).extras().doesNotContainKey(Intent.EXTRA_SUBJECT)
        assertThat(wrappedIntent).extras().string(Intent.EXTRA_TEXT).isEqualTo(extraText)
        assertThat(wrappedIntent).extras().parcelable<Uri>(Intent.EXTRA_STREAM).isEqualTo(uri)
        assertThatIntent(wrappedIntent).hasAction(Intent.ACTION_SEND)
        assertThatIntent(wrappedIntent).hasData(uri)
        assertThatIntent(wrappedIntent).hasType("image/png")
        assertThatIntent(wrappedIntent).extras().doesNotContainKey(Intent.EXTRA_SUBJECT)
        assertThatIntent(wrappedIntent).extras().string(Intent.EXTRA_TEXT).isEqualTo(extraText)
        assertThatIntent(wrappedIntent).extras().parcelable<Uri>(Intent.EXTRA_STREAM).isEqualTo(uri)
    }

    @Test
@@ -125,11 +126,12 @@ class ActionIntentCreatorTest : SysuiTestCase() {

        val output = ActionIntentCreator.createEdit(uri, context)

        assertThat(output).hasAction(Intent.ACTION_EDIT)
        assertThat(output).hasData(uri)
        assertThat(output).hasType("image/png")
        assertThatIntent(output).hasAction(Intent.ACTION_EDIT)
        assertThatIntent(output).hasData(uri)
        assertThatIntent(output).hasType("image/png")
        assertWithMessage("getComponent()").that(output.component).isNull()
        assertThat(output)
        assertThat(output.getStringExtra("edit_source")).isEqualTo("screenshot")
        assertThatIntent(output)
            .hasFlags(
                Intent.FLAG_GRANT_READ_URI_PERMISSION or
                    Intent.FLAG_GRANT_WRITE_URI_PERMISSION or
@@ -146,7 +148,7 @@ class ActionIntentCreatorTest : SysuiTestCase() {

        val output = ActionIntentCreator.createEdit(uri, context)

        assertThat(output).hasData(Uri.parse("content://fake"))
        assertThatIntent(output).hasData(Uri.parse("content://fake"))
    }

    @Test
@@ -160,6 +162,6 @@ class ActionIntentCreatorTest : SysuiTestCase() {

        val output = ActionIntentCreator.createEdit(uri, context)

        assertThat(output).hasComponent(component)
        assertThatIntent(output).hasComponent(component)
    }
}