diff options
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/screenshot/scroll/LongScreenshotActivity.java | 61 |
1 files changed, 42 insertions, 19 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/scroll/LongScreenshotActivity.java b/packages/SystemUI/src/com/android/systemui/screenshot/scroll/LongScreenshotActivity.java index 48e08a0496c1..ecea30f1b1c3 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/scroll/LongScreenshotActivity.java +++ b/packages/SystemUI/src/com/android/systemui/screenshot/scroll/LongScreenshotActivity.java @@ -16,6 +16,8 @@ package com.android.systemui.screenshot.scroll; +import static com.android.systemui.shared.Flags.usePreferredImageEditor; + import android.app.Activity; import android.app.ActivityOptions; import android.content.ComponentName; @@ -355,26 +357,47 @@ public class LongScreenshotActivity extends Activity { mScreenshotUserHandle, false, /* activityOptions */ null, /* transitionCoordinator */ null); } else { - String editorPackage = getString(R.string.config_screenshotEditor); - Intent intent = new Intent(Intent.ACTION_EDIT); - intent.setDataAndType(uri, "image/png"); - intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION - | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); - Bundle options = null; - - // Skip shared element transition for implicit edit intents - if (!TextUtils.isEmpty(editorPackage)) { - intent.setComponent(ComponentName.unflattenFromString(editorPackage)); - mTransitionView.setImageBitmap(mOutputBitmap); - mTransitionView.setVisibility(View.VISIBLE); - mTransitionView.setTransitionName( - ChooserActivity.FIRST_IMAGE_PREVIEW_TRANSITION_NAME); - options = ActivityOptions.makeSceneTransitionAnimation(this, mTransitionView, - ChooserActivity.FIRST_IMAGE_PREVIEW_TRANSITION_NAME).toBundle(); - // TODO: listen for transition completing instead of finishing onStop - mTransitionStarted = true; + if (usePreferredImageEditor()) { + Intent intent = mActionIntentCreator.createEdit(uri); + Bundle options = null; + + if (intent.getComponent() != null) { + // Modify intent for shared transition if we're opening a specific editor. + intent.removeFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.removeFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); + mTransitionView.setImageBitmap(mOutputBitmap); + mTransitionView.setVisibility(View.VISIBLE); + mTransitionView.setTransitionName( + ChooserActivity.FIRST_IMAGE_PREVIEW_TRANSITION_NAME); + options = ActivityOptions.makeSceneTransitionAnimation(this, mTransitionView, + ChooserActivity.FIRST_IMAGE_PREVIEW_TRANSITION_NAME).toBundle(); + // TODO: listen for transition completing instead of finishing onStop + mTransitionStarted = true; + } + + startActivity(intent, options); + } else { + String editorPackage = getString(R.string.config_screenshotEditor); + Intent intent = new Intent(Intent.ACTION_EDIT); + intent.setDataAndType(uri, "image/png"); + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION + | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); + Bundle options = null; + + // Skip shared element transition for implicit edit intents + if (!TextUtils.isEmpty(editorPackage)) { + intent.setComponent(ComponentName.unflattenFromString(editorPackage)); + mTransitionView.setImageBitmap(mOutputBitmap); + mTransitionView.setVisibility(View.VISIBLE); + mTransitionView.setTransitionName( + ChooserActivity.FIRST_IMAGE_PREVIEW_TRANSITION_NAME); + options = ActivityOptions.makeSceneTransitionAnimation(this, mTransitionView, + ChooserActivity.FIRST_IMAGE_PREVIEW_TRANSITION_NAME).toBundle(); + // TODO: listen for transition completing instead of finishing onStop + mTransitionStarted = true; + } + startActivity(intent, options); } - startActivity(intent, options); } } |