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

Commit 5ad849a9 authored by Miranda Kephart's avatar Miranda Kephart Committed by Automerger Merge Worker
Browse files

Merge "Fix shared transition offsets in landscape" into sc-dev am: 3196d0fa

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15189837

Change-Id: Id114e18a0c8a01d71e2538e05e93faeb14a9ec64
parents b1f2cc28 3196d0fa
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -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>
+8 −1
Original line number Diff line number Diff line
@@ -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());
+3 −1
Original line number Diff line number Diff line
@@ -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();

+10 −2
Original line number Diff line number Diff line
@@ -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;
@@ -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);
@@ -382,8 +385,12 @@ public class ScreenshotView extends FrameLayout implements
        requestFocus();
    }

    View getScreenshotPreview() {
        return mScreenshotPreview;
    View getTransitionView() {
        return mTransitionView;
    }

    int getStaticLeftMargin() {
        return mStaticLeftMargin;
    }

    /**
@@ -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();
    }