Loading packages/SystemUI/res/layout/global_screenshot_static.xml +9 −0 Original line number Diff line number Diff line Loading @@ -131,4 +131,13 @@ app:layout_constraintStart_toStartOf="@id/global_screenshot_preview" app:layout_constraintTop_toTopOf="@id/global_screenshot_preview" android:elevation="@dimen/screenshot_preview_elevation"/> <View android:id="@+id/screenshot_transition_view" android:layout_width="0dp" android:layout_height="0dp" android:visibility="invisible" app:layout_constraintStart_toStartOf="@id/global_screenshot_preview" app:layout_constraintTop_toTopOf="@id/global_screenshot_preview" app:layout_constraintEnd_toEndOf="@id/global_screenshot_preview" app:layout_constraintBottom_toBottomOf="@id/global_screenshot_preview"/> </androidx.constraintlayout.widget.ConstraintLayout> packages/SystemUI/src/com/android/systemui/screenshot/LongScreenshotActivity.java +8 −1 Original line number Diff line number Diff line Loading @@ -334,11 +334,18 @@ public class LongScreenshotActivity extends Activity { | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); mTransitionView.setImageBitmap(mOutputBitmap); mTransitionView.setVisibility(View.VISIBLE); mTransitionView.setTransitionName( ChooserActivity.FIRST_IMAGE_PREVIEW_TRANSITION_NAME); // TODO: listen for transition completing instead of finishing onStop mTransitionStarted = true; int[] locationOnScreen = new int[2]; mTransitionView.getLocationOnScreen(locationOnScreen); int[] locationInWindow = new int[2]; mTransitionView.getLocationInWindow(locationInWindow); int deltaX = locationOnScreen[0] - locationInWindow[0]; int deltaY = locationOnScreen[1] - locationInWindow[1]; mTransitionView.setX(mTransitionView.getX() - deltaX); mTransitionView.setY(mTransitionView.getY() - deltaY); startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(this, mTransitionView, ChooserActivity.FIRST_IMAGE_PREVIEW_TRANSITION_NAME).toBundle()); Loading packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java +3 −1 Original line number Diff line number Diff line Loading @@ -936,10 +936,12 @@ public class ScreenshotController { */ private Supplier<ActionTransition> getActionTransitionSupplier() { return () -> { View preview = mScreenshotView.getTransitionView(); preview.setX(preview.getX() - mScreenshotView.getStaticLeftMargin()); Pair<ActivityOptions, ExitTransitionCoordinator> transition = ActivityOptions.startSharedElementAnimation( mWindow, new ScreenshotExitTransitionCallbacksSupplier(true).get(), null, Pair.create(mScreenshotView.getScreenshotPreview(), null, Pair.create(mScreenshotView.getTransitionView(), ChooserActivity.FIRST_IMAGE_PREVIEW_TRANSITION_NAME)); transition.second.startExit(); Loading packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotView.java +10 −2 Original line number Diff line number Diff line Loading @@ -137,11 +137,13 @@ public class ScreenshotView extends FrameLayout implements private int mNavMode; private boolean mOrientationPortrait; private boolean mDirectionLTR; private int mStaticLeftMargin; private ScreenshotSelectorView mScreenshotSelectorView; private ImageView mScrollingScrim; private View mScreenshotStatic; private ImageView mScreenshotPreview; private View mTransitionView; private View mScreenshotPreviewBorder; private ImageView mScrollablePreview; private ImageView mScreenshotFlash; Loading Loading @@ -337,6 +339,7 @@ public class ScreenshotView extends FrameLayout implements mScrollingScrim = requireNonNull(findViewById(R.id.screenshot_scrolling_scrim)); mScreenshotStatic = requireNonNull(findViewById(R.id.global_screenshot_static)); mScreenshotPreview = requireNonNull(findViewById(R.id.global_screenshot_preview)); mTransitionView = requireNonNull(findViewById(R.id.screenshot_transition_view)); mScreenshotPreviewBorder = requireNonNull( findViewById(R.id.global_screenshot_preview_border)); mScreenshotPreview.setClipToOutline(true); Loading Loading @@ -382,8 +385,12 @@ public class ScreenshotView extends FrameLayout implements requestFocus(); } View getScreenshotPreview() { return mScreenshotPreview; View getTransitionView() { return mTransitionView; } int getStaticLeftMargin() { return mStaticLeftMargin; } /** Loading Loading @@ -424,6 +431,7 @@ public class ScreenshotView extends FrameLayout implements Math.max(cutout.getSafeInsetRight(), waterfall.right), waterfall.bottom); } } mStaticLeftMargin = p.leftMargin; mScreenshotStatic.setLayoutParams(p); mScreenshotStatic.requestLayout(); } Loading Loading
packages/SystemUI/res/layout/global_screenshot_static.xml +9 −0 Original line number Diff line number Diff line Loading @@ -131,4 +131,13 @@ app:layout_constraintStart_toStartOf="@id/global_screenshot_preview" app:layout_constraintTop_toTopOf="@id/global_screenshot_preview" android:elevation="@dimen/screenshot_preview_elevation"/> <View android:id="@+id/screenshot_transition_view" android:layout_width="0dp" android:layout_height="0dp" android:visibility="invisible" app:layout_constraintStart_toStartOf="@id/global_screenshot_preview" app:layout_constraintTop_toTopOf="@id/global_screenshot_preview" app:layout_constraintEnd_toEndOf="@id/global_screenshot_preview" app:layout_constraintBottom_toBottomOf="@id/global_screenshot_preview"/> </androidx.constraintlayout.widget.ConstraintLayout>
packages/SystemUI/src/com/android/systemui/screenshot/LongScreenshotActivity.java +8 −1 Original line number Diff line number Diff line Loading @@ -334,11 +334,18 @@ public class LongScreenshotActivity extends Activity { | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); mTransitionView.setImageBitmap(mOutputBitmap); mTransitionView.setVisibility(View.VISIBLE); mTransitionView.setTransitionName( ChooserActivity.FIRST_IMAGE_PREVIEW_TRANSITION_NAME); // TODO: listen for transition completing instead of finishing onStop mTransitionStarted = true; int[] locationOnScreen = new int[2]; mTransitionView.getLocationOnScreen(locationOnScreen); int[] locationInWindow = new int[2]; mTransitionView.getLocationInWindow(locationInWindow); int deltaX = locationOnScreen[0] - locationInWindow[0]; int deltaY = locationOnScreen[1] - locationInWindow[1]; mTransitionView.setX(mTransitionView.getX() - deltaX); mTransitionView.setY(mTransitionView.getY() - deltaY); startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(this, mTransitionView, ChooserActivity.FIRST_IMAGE_PREVIEW_TRANSITION_NAME).toBundle()); Loading
packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java +3 −1 Original line number Diff line number Diff line Loading @@ -936,10 +936,12 @@ public class ScreenshotController { */ private Supplier<ActionTransition> getActionTransitionSupplier() { return () -> { View preview = mScreenshotView.getTransitionView(); preview.setX(preview.getX() - mScreenshotView.getStaticLeftMargin()); Pair<ActivityOptions, ExitTransitionCoordinator> transition = ActivityOptions.startSharedElementAnimation( mWindow, new ScreenshotExitTransitionCallbacksSupplier(true).get(), null, Pair.create(mScreenshotView.getScreenshotPreview(), null, Pair.create(mScreenshotView.getTransitionView(), ChooserActivity.FIRST_IMAGE_PREVIEW_TRANSITION_NAME)); transition.second.startExit(); Loading
packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotView.java +10 −2 Original line number Diff line number Diff line Loading @@ -137,11 +137,13 @@ public class ScreenshotView extends FrameLayout implements private int mNavMode; private boolean mOrientationPortrait; private boolean mDirectionLTR; private int mStaticLeftMargin; private ScreenshotSelectorView mScreenshotSelectorView; private ImageView mScrollingScrim; private View mScreenshotStatic; private ImageView mScreenshotPreview; private View mTransitionView; private View mScreenshotPreviewBorder; private ImageView mScrollablePreview; private ImageView mScreenshotFlash; Loading Loading @@ -337,6 +339,7 @@ public class ScreenshotView extends FrameLayout implements mScrollingScrim = requireNonNull(findViewById(R.id.screenshot_scrolling_scrim)); mScreenshotStatic = requireNonNull(findViewById(R.id.global_screenshot_static)); mScreenshotPreview = requireNonNull(findViewById(R.id.global_screenshot_preview)); mTransitionView = requireNonNull(findViewById(R.id.screenshot_transition_view)); mScreenshotPreviewBorder = requireNonNull( findViewById(R.id.global_screenshot_preview_border)); mScreenshotPreview.setClipToOutline(true); Loading Loading @@ -382,8 +385,12 @@ public class ScreenshotView extends FrameLayout implements requestFocus(); } View getScreenshotPreview() { return mScreenshotPreview; View getTransitionView() { return mTransitionView; } int getStaticLeftMargin() { return mStaticLeftMargin; } /** Loading Loading @@ -424,6 +431,7 @@ public class ScreenshotView extends FrameLayout implements Math.max(cutout.getSafeInsetRight(), waterfall.right), waterfall.bottom); } } mStaticLeftMargin = p.leftMargin; mScreenshotStatic.setLayoutParams(p); mScreenshotStatic.requestLayout(); } Loading