Loading quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskView.java +41 −1 Original line number Diff line number Diff line Loading @@ -145,11 +145,13 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { }; private final TaskOutlineProvider mOutlineProvider; private final FooterOutlineProvider mFooterOutlineProvider; private Task mTask; private TaskThumbnailView mSnapshotView; private TaskMenuView mMenuView; private IconView mIconView; private View mTaskFooterContainer; private DigitalWellBeingToast mDigitalWellBeingToast; private float mCurveScale; private float mFullscreenProgress; Loading Loading @@ -203,6 +205,7 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { mWindowCornerRadius = QuickStepContract.getWindowCornerRadius(context.getResources()); mCurrentFullscreenParams = new FullscreenDrawParams(mCornerRadius); mOutlineProvider = new TaskOutlineProvider(getResources(), mCurrentFullscreenParams); mFooterOutlineProvider = new FooterOutlineProvider(mCurrentFullscreenParams); setOutlineProvider(mOutlineProvider); } Loading @@ -212,6 +215,9 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { mSnapshotView = findViewById(R.id.snapshot); mIconView = findViewById(R.id.icon); mDigitalWellBeingToast = findViewById(R.id.digital_well_being_toast); mTaskFooterContainer = findViewById(R.id.task_footer_container); mTaskFooterContainer.setOutlineProvider(mFooterOutlineProvider); mTaskFooterContainer.setClipToOutline(true); } public TaskMenuView getMenuView() { Loading Loading @@ -410,6 +416,15 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { .getInterpolation(progress); mIconView.setScaleX(scale); mIconView.setScaleY(scale); int footerVerticalOffset = (int) (mTaskFooterContainer.getHeight() * (1.0f - scale)); mTaskFooterContainer.setTranslationY( mCurrentFullscreenParams.mCurrentDrawnInsets.bottom + mCurrentFullscreenParams.mCurrentDrawnInsets.top + footerVerticalOffset); mFooterOutlineProvider.setFullscreenDrawParams( mCurrentFullscreenParams, footerVerticalOffset); mTaskFooterContainer.invalidateOutline(); } public void setIconScaleAnimStartProgress(float startProgress) { Loading Loading @@ -550,6 +565,29 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { } } private static final class FooterOutlineProvider extends ViewOutlineProvider { private FullscreenDrawParams mFullscreenDrawParams; private int mVerticalOffset; private final Rect mOutlineRect = new Rect(); FooterOutlineProvider(FullscreenDrawParams params) { mFullscreenDrawParams = params; } void setFullscreenDrawParams(FullscreenDrawParams params, int verticalOffset) { mFullscreenDrawParams = params; mVerticalOffset = verticalOffset; } @Override public void getOutline(View view, Outline outline) { mOutlineRect.set(0, 0, view.getWidth(), view.getHeight()); mOutlineRect.offset(0, -mVerticalOffset); outline.setRoundRect(mOutlineRect, mFullscreenDrawParams.mCurrentDrawnCornerRadius); } } @Override public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); Loading Loading @@ -639,7 +677,6 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { } mFullscreenProgress = progress; boolean isFullscreen = mFullscreenProgress > 0; setIconScaleAndDim(progress, true /* invert */); mIconView.setVisibility(progress < 1 ? VISIBLE : INVISIBLE); setClipChildren(!isFullscreen); setClipToPadding(!isFullscreen); Loading @@ -663,6 +700,9 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { / (getWidth() + currentInsetsLeft + currentInsetsRight)); } // Some of the items in here are dependent on the current fullscreen params setIconScaleAndDim(progress, true /* invert */); thumbnail.setFullscreenParams(mCurrentFullscreenParams); mOutlineProvider.setFullscreenParams(mCurrentFullscreenParams); invalidateOutline(); Loading Loading
quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskView.java +41 −1 Original line number Diff line number Diff line Loading @@ -145,11 +145,13 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { }; private final TaskOutlineProvider mOutlineProvider; private final FooterOutlineProvider mFooterOutlineProvider; private Task mTask; private TaskThumbnailView mSnapshotView; private TaskMenuView mMenuView; private IconView mIconView; private View mTaskFooterContainer; private DigitalWellBeingToast mDigitalWellBeingToast; private float mCurveScale; private float mFullscreenProgress; Loading Loading @@ -203,6 +205,7 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { mWindowCornerRadius = QuickStepContract.getWindowCornerRadius(context.getResources()); mCurrentFullscreenParams = new FullscreenDrawParams(mCornerRadius); mOutlineProvider = new TaskOutlineProvider(getResources(), mCurrentFullscreenParams); mFooterOutlineProvider = new FooterOutlineProvider(mCurrentFullscreenParams); setOutlineProvider(mOutlineProvider); } Loading @@ -212,6 +215,9 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { mSnapshotView = findViewById(R.id.snapshot); mIconView = findViewById(R.id.icon); mDigitalWellBeingToast = findViewById(R.id.digital_well_being_toast); mTaskFooterContainer = findViewById(R.id.task_footer_container); mTaskFooterContainer.setOutlineProvider(mFooterOutlineProvider); mTaskFooterContainer.setClipToOutline(true); } public TaskMenuView getMenuView() { Loading Loading @@ -410,6 +416,15 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { .getInterpolation(progress); mIconView.setScaleX(scale); mIconView.setScaleY(scale); int footerVerticalOffset = (int) (mTaskFooterContainer.getHeight() * (1.0f - scale)); mTaskFooterContainer.setTranslationY( mCurrentFullscreenParams.mCurrentDrawnInsets.bottom + mCurrentFullscreenParams.mCurrentDrawnInsets.top + footerVerticalOffset); mFooterOutlineProvider.setFullscreenDrawParams( mCurrentFullscreenParams, footerVerticalOffset); mTaskFooterContainer.invalidateOutline(); } public void setIconScaleAnimStartProgress(float startProgress) { Loading Loading @@ -550,6 +565,29 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { } } private static final class FooterOutlineProvider extends ViewOutlineProvider { private FullscreenDrawParams mFullscreenDrawParams; private int mVerticalOffset; private final Rect mOutlineRect = new Rect(); FooterOutlineProvider(FullscreenDrawParams params) { mFullscreenDrawParams = params; } void setFullscreenDrawParams(FullscreenDrawParams params, int verticalOffset) { mFullscreenDrawParams = params; mVerticalOffset = verticalOffset; } @Override public void getOutline(View view, Outline outline) { mOutlineRect.set(0, 0, view.getWidth(), view.getHeight()); mOutlineRect.offset(0, -mVerticalOffset); outline.setRoundRect(mOutlineRect, mFullscreenDrawParams.mCurrentDrawnCornerRadius); } } @Override public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); Loading Loading @@ -639,7 +677,6 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { } mFullscreenProgress = progress; boolean isFullscreen = mFullscreenProgress > 0; setIconScaleAndDim(progress, true /* invert */); mIconView.setVisibility(progress < 1 ? VISIBLE : INVISIBLE); setClipChildren(!isFullscreen); setClipToPadding(!isFullscreen); Loading @@ -663,6 +700,9 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { / (getWidth() + currentInsetsLeft + currentInsetsRight)); } // Some of the items in here are dependent on the current fullscreen params setIconScaleAndDim(progress, true /* invert */); thumbnail.setFullscreenParams(mCurrentFullscreenParams); mOutlineProvider.setFullscreenParams(mCurrentFullscreenParams); invalidateOutline(); Loading