Merge "Add "edit_source" extra to screenshot/clipboard edit intents" into udc-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
b9340486b2
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user