diff options
3 files changed, 24 insertions, 67 deletions
diff --git a/packages/SystemUI/res/layout/global_screenshot.xml b/packages/SystemUI/res/layout/global_screenshot.xml index e0333eb82d51..1b5f9c1ced8f 100644 --- a/packages/SystemUI/res/layout/global_screenshot.xml +++ b/packages/SystemUI/res/layout/global_screenshot.xml @@ -27,14 +27,6 @@ android:alpha="0.0" android:src="@drawable/screenshot_actions_background_protection"/> <ImageView - android:id="@+id/global_screenshot_animated_view" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="top|start" - android:visibility="gone" - android:elevation="@dimen/screenshot_preview_elevation" - android:background="@drawable/screenshot_rounded_corners" /> - <ImageView android:id="@+id/global_screenshot_flash" android:layout_width="match_parent" android:layout_height="match_parent" diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java index 5d8f70c4e460..f063fbe7a384 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java +++ b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java @@ -108,7 +108,7 @@ public class ScreenshotController { abstract void onActionsReady(ScreenshotController.SavedImageData imageData); } - private static final String TAG = "GlobalScreenshotController"; + private static final String TAG = "ScreenshotController"; // These strings are used for communicating the action invoked to // ScreenshotNotificationSmartActionsProvider. diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotView.java b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotView.java index 03fe2920405f..29f6e8b0db00 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotView.java +++ b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotView.java @@ -49,7 +49,6 @@ import android.util.Log; import android.util.MathUtils; import android.view.LayoutInflater; import android.view.View; -import android.view.ViewGroup; import android.view.ViewOutlineProvider; import android.view.ViewTreeObserver; import android.view.WindowInsets; @@ -73,7 +72,7 @@ import java.util.function.Consumer; public class ScreenshotView extends FrameLayout implements ViewTreeObserver.OnComputeInternalInsetsListener { - private static final String TAG = "GlobalScreenshotView"; + private static final String TAG = "ScreenshotView"; private static final long SCREENSHOT_FLASH_IN_DURATION_MS = 133; private static final long SCREENSHOT_FLASH_OUT_DURATION_MS = 217; @@ -105,7 +104,6 @@ public class ScreenshotView extends FrameLayout implements private boolean mDirectionLTR; private ScreenshotSelectorView mScreenshotSelectorView; - private ImageView mScreenshotAnimatedView; private ImageView mScreenshotPreview; private ImageView mScreenshotFlash; private ImageView mActionsContainerBackground; @@ -116,7 +114,7 @@ public class ScreenshotView extends FrameLayout implements private ScreenshotActionChip mShareChip; private ScreenshotActionChip mEditChip; - private ArrayList<ScreenshotActionChip> mSmartChips = new ArrayList<>(); + private final ArrayList<ScreenshotActionChip> mSmartChips = new ArrayList<>(); private PendingInteraction mPendingInteraction; private enum PendingInteraction { @@ -183,8 +181,6 @@ public class ScreenshotView extends FrameLayout implements @Override // View protected void onFinishInflate() { - mScreenshotAnimatedView = requireNonNull( - findViewById(R.id.global_screenshot_animated_view)); mScreenshotPreview = requireNonNull(findViewById(R.id.global_screenshot_preview)); mActionsContainerBackground = requireNonNull(findViewById( R.id.global_screenshot_actions_container_background)); @@ -198,14 +194,6 @@ public class ScreenshotView extends FrameLayout implements mShareChip = requireNonNull(mActionsContainer.findViewById(R.id.screenshot_share_chip)); mEditChip = requireNonNull(mActionsContainer.findViewById(R.id.screenshot_edit_chip)); - mScreenshotAnimatedView.setClipToOutline(true); - mScreenshotAnimatedView.setOutlineProvider(new ViewOutlineProvider() { - @Override - public void getOutline(View view, Outline outline) { - outline.setRoundRect(new Rect(0, 0, view.getWidth(), view.getHeight()), - ROUNDED_CORNER_RADIUS * view.getWidth()); - } - }); mScreenshotPreview.setClipToOutline(true); mScreenshotPreview.setOutlineProvider(new ViewOutlineProvider() { @Override @@ -218,8 +206,6 @@ public class ScreenshotView extends FrameLayout implements setFocusable(true); mScreenshotSelectorView.setFocusable(true); mScreenshotSelectorView.setFocusableInTouchMode(true); - mScreenshotAnimatedView.setPivotX(0); - mScreenshotAnimatedView.setPivotY(0); mActionsContainer.setScrollX(0); mNavMode = getResources().getInteger( @@ -253,13 +239,6 @@ public class ScreenshotView extends FrameLayout implements } void prepareForAnimation(Bitmap bitmap, Rect screenRect, Insets screenInsets) { - mScreenshotAnimatedView.setImageDrawable( - createScreenDrawable(mResources, bitmap, screenInsets)); - setAnimatedViewSize(screenRect.width(), screenRect.height()); - - // will show when the animation starts - mScreenshotAnimatedView.setVisibility(View.GONE); - mScreenshotPreview.setImageDrawable(createScreenDrawable(mResources, bitmap, screenInsets)); // make static preview invisible (from gone) so we can query its location on screen mScreenshotPreview.setVisibility(View.INVISIBLE); @@ -275,10 +254,10 @@ public class ScreenshotView extends FrameLayout implements float cornerScale = mCornerSizeX / (mOrientationPortrait ? bounds.width() : bounds.height()); - final float currentScale = 1f; + final float currentScale = 1 / cornerScale; - mScreenshotAnimatedView.setScaleX(currentScale); - mScreenshotAnimatedView.setScaleY(currentScale); + mScreenshotPreview.setScaleX(currentScale); + mScreenshotPreview.setScaleY(currentScale); mDismissButton.setAlpha(0); mDismissButton.setVisibility(View.VISIBLE); @@ -312,36 +291,33 @@ public class ScreenshotView extends FrameLayout implements float t = animation.getAnimatedFraction(); if (t < scalePct) { float scale = MathUtils.lerp( - currentScale, cornerScale, mFastOutSlowIn.getInterpolation(t / scalePct)); - mScreenshotAnimatedView.setScaleX(scale); - mScreenshotAnimatedView.setScaleY(scale); + currentScale, 1, mFastOutSlowIn.getInterpolation(t / scalePct)); + mScreenshotPreview.setScaleX(scale); + mScreenshotPreview.setScaleY(scale); } else { - mScreenshotAnimatedView.setScaleX(cornerScale); - mScreenshotAnimatedView.setScaleY(cornerScale); + mScreenshotPreview.setScaleX(1); + mScreenshotPreview.setScaleY(1); } - float currentScaleX = mScreenshotAnimatedView.getScaleX(); - float currentScaleY = mScreenshotAnimatedView.getScaleY(); - if (t < xPositionPct) { float xCenter = MathUtils.lerp(startPos.x, finalPos.x, mFastOutSlowIn.getInterpolation(t / xPositionPct)); - mScreenshotAnimatedView.setX(xCenter - bounds.width() * currentScaleX / 2f); + mScreenshotPreview.setX(xCenter - mScreenshotPreview.getWidth() / 2f); } else { - mScreenshotAnimatedView.setX(finalPos.x - bounds.width() * currentScaleX / 2f); + mScreenshotPreview.setX(finalPos.x - mScreenshotPreview.getWidth() / 2f); } float yCenter = MathUtils.lerp( startPos.y, finalPos.y, mFastOutSlowIn.getInterpolation(t)); - mScreenshotAnimatedView.setY(yCenter - bounds.height() * currentScaleY / 2f); + mScreenshotPreview.setY(yCenter - mScreenshotPreview.getHeight() / 2f); if (t >= dismissPct) { mDismissButton.setAlpha((t - dismissPct) / (1 - dismissPct)); - float currentX = mScreenshotAnimatedView.getX(); - float currentY = mScreenshotAnimatedView.getY(); + float currentX = mScreenshotPreview.getX(); + float currentY = mScreenshotPreview.getY(); mDismissButton.setY(currentY - mDismissButton.getHeight() / 2f); if (mDirectionLTR) { - mDismissButton.setX(currentX - + bounds.width() * currentScaleX - mDismissButton.getWidth() / 2f); + mDismissButton.setX(currentX + mScreenshotPreview.getWidth() + - mDismissButton.getWidth() / 2f); } else { mDismissButton.setX(currentX - mDismissButton.getWidth() / 2f); } @@ -352,7 +328,7 @@ public class ScreenshotView extends FrameLayout implements @Override public void onAnimationStart(Animator animation) { super.onAnimationStart(animation); - mScreenshotAnimatedView.setVisibility(View.VISIBLE); + mScreenshotPreview.setVisibility(View.VISIBLE); } }); @@ -380,13 +356,11 @@ public class ScreenshotView extends FrameLayout implements mDismissButton.setX(finalDismissX); mDismissButton.setY( finalPos.y - dismissOffset - bounds.height() * cornerScale / 2f); - mScreenshotAnimatedView.setScaleX(1); - mScreenshotAnimatedView.setScaleY(1); - mScreenshotAnimatedView.setX(finalPos.x - bounds.width() * cornerScale / 2f); - mScreenshotAnimatedView.setY(finalPos.y - bounds.height() * cornerScale / 2f); - mScreenshotAnimatedView.setVisibility(View.GONE); - mScreenshotPreview.setVisibility(View.VISIBLE); - forceLayout(); + mScreenshotPreview.setScaleX(1); + mScreenshotPreview.setScaleY(1); + mScreenshotPreview.setX(finalPos.x - bounds.width() * cornerScale / 2f); + mScreenshotPreview.setY(finalPos.y - bounds.height() * cornerScale / 2f); + requestLayout(); createScreenshotActionsShadeAnimation().start(); } }); @@ -540,8 +514,6 @@ public class ScreenshotView extends FrameLayout implements void reset() { // Clear any references to the bitmap mScreenshotPreview.setImageDrawable(null); - mScreenshotAnimatedView.setImageDrawable(null); - mScreenshotAnimatedView.setVisibility(View.GONE); mActionsContainerBackground.setVisibility(View.GONE); mActionsContainer.setVisibility(View.GONE); mBackgroundProtection.setAlpha(0f); @@ -568,13 +540,6 @@ public class ScreenshotView extends FrameLayout implements mScreenshotSelectorView.stop(); } - private void setAnimatedViewSize(int width, int height) { - ViewGroup.LayoutParams layoutParams = mScreenshotAnimatedView.getLayoutParams(); - layoutParams.width = width; - layoutParams.height = height; - mScreenshotAnimatedView.setLayoutParams(layoutParams); - } - /** * Create a drawable using the size of the bitmap and insets as the fractional inset parameters. */ |