Loading packages/SystemUI/src/com/android/systemui/clipboardoverlay/IntentCreator.java +3 −2 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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; } Loading packages/SystemUI/src/com/android/systemui/screenshot/ActionIntentCreator.kt +4 −0 Original line number Diff line number Diff line Loading @@ -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" } /** Loading packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/IntentCreatorTest.java +1 −0 Original line number Diff line number Diff line Loading @@ -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 Loading packages/SystemUI/tests/src/com/android/systemui/screenshot/ActionIntentCreatorTest.kt +35 −33 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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")) } Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -160,6 +162,6 @@ class ActionIntentCreatorTest : SysuiTestCase() { val output = ActionIntentCreator.createEdit(uri, context) assertThat(output).hasComponent(component) assertThatIntent(output).hasComponent(component) } } Loading
packages/SystemUI/src/com/android/systemui/clipboardoverlay/IntentCreator.java +3 −2 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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; } Loading
packages/SystemUI/src/com/android/systemui/screenshot/ActionIntentCreator.kt +4 −0 Original line number Diff line number Diff line Loading @@ -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" } /** Loading
packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/IntentCreatorTest.java +1 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
packages/SystemUI/tests/src/com/android/systemui/screenshot/ActionIntentCreatorTest.kt +35 −33 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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")) } Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -160,6 +162,6 @@ class ActionIntentCreatorTest : SysuiTestCase() { val output = ActionIntentCreator.createEdit(uri, context) assertThat(output).hasComponent(component) assertThatIntent(output).hasComponent(component) } }