Loading quickstep/recents_ui_overrides/src/com/android/quickstep/util/ClipAnimationHelper.java +5 −4 Original line number Diff line number Diff line Loading @@ -31,11 +31,12 @@ import android.graphics.RectF; import android.os.Build; import android.os.RemoteException; import androidx.annotation.Nullable; import com.android.launcher3.BaseDraggingActivity; import com.android.launcher3.DeviceProfile; import com.android.launcher3.R; import com.android.launcher3.Utilities; import com.android.launcher3.util.Themes; import com.android.launcher3.views.BaseDragLayer; import com.android.quickstep.RecentsModel; import com.android.quickstep.views.RecentsView; Loading @@ -50,8 +51,6 @@ import com.android.systemui.shared.system.WindowManagerWrapper; import java.util.function.BiFunction; import androidx.annotation.Nullable; /** * Utility class to handle window clip animation */ Loading Loading @@ -327,12 +326,14 @@ public class ClipAnimationHelper { float scale = mTargetRect.width() / mSourceRect.width(); float insetProgress = (1 - progress); float windowCornerRadius = mUseRoundedCornersOnWindows ? mWindowCornerRadius : 0; ttv.drawOnCanvas(canvas, -mSourceWindowClipInsets.left * insetProgress, -mSourceWindowClipInsets.top * insetProgress, ttv.getMeasuredWidth() + mSourceWindowClipInsets.right * insetProgress, ttv.getMeasuredHeight() + mSourceWindowClipInsets.bottom * insetProgress, Utilities.mapRange(progress, mWindowCornerRadius * scale, ttv.getCornerRadius())); Utilities.mapRange(progress, windowCornerRadius * scale, ttv.getCornerRadius())); } public RectF getTargetRect() { Loading quickstep/recents_ui_overrides/src/com/android/quickstep/util/TaskViewDrawable.java +3 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.graphics.drawable.Drawable; import android.util.FloatProperty; import android.view.View; import com.android.launcher3.BaseActivity; import com.android.launcher3.Utilities; import com.android.quickstep.views.RecentsView; import com.android.quickstep.views.TaskThumbnailView; Loading Loading @@ -75,6 +76,8 @@ public class TaskViewDrawable extends Drawable { mThumbnailView = tv.getThumbnail(); mClipAnimationHelper = new ClipAnimationHelper(parent.getContext()); mClipAnimationHelper.fromTaskThumbnailView(mThumbnailView, parent); mClipAnimationHelper.prepareAnimation( BaseActivity.fromContext(tv.getContext()).getDeviceProfile(), true /* isOpening */); } public void setProgress(float progress) { Loading quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskThumbnailView.java +3 −3 Original line number Diff line number Diff line Loading @@ -210,9 +210,9 @@ public class TaskThumbnailView extends View { mCurrentDrawnCornerRadius); } public Rect getInsetsToDrawInFullscreen() { // Don't show insets in the wrong orientation. return mIsRotated ? EMPTY_RECT : mScaledInsets; public Rect getInsetsToDrawInFullscreen(boolean isMultiWindowMode) { // Don't show insets in the wrong orientation or in multi window mode. return mIsRotated || isMultiWindowMode ? EMPTY_RECT : mScaledInsets; } public void setCurrentDrawnInsetsAndRadius(Rect insets, float radius) { Loading quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskView.java +14 −13 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ package com.android.quickstep.views; import static android.widget.Toast.LENGTH_SHORT; import static com.android.launcher3.BaseActivity.fromContext; import static com.android.launcher3.QuickstepAppTransitionManagerImpl.RECENTS_LAUNCH_DURATION; import static com.android.launcher3.anim.Interpolators.FAST_OUT_SLOW_IN; import static com.android.launcher3.anim.Interpolators.LINEAR; Loading Loading @@ -167,8 +167,9 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { private float mZoomScale; private float mFullscreenProgress; private final Rect mCurrentDrawnInsets = new Rect(); private float mCornerRadius; private float mWindowCornerRadius; private final float mCornerRadius; private final float mWindowCornerRadius; private final BaseDraggingActivity mActivity; private ObjectAnimator mIconAndDimAnimator; private float mIconScaleAnimStartProgress = 0; Loading @@ -190,6 +191,7 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { public TaskView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); mActivity = BaseDraggingActivity.fromContext(context); setOnClickListener((view) -> { if (getTask() == null) { return; Loading @@ -204,10 +206,10 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { launchTask(true /* animate */); } fromContext(context).getUserEventDispatcher().logTaskLaunchOrDismiss( mActivity.getUserEventDispatcher().logTaskLaunchOrDismiss( Touch.TAP, Direction.NONE, getRecentsView().indexOfChild(this), TaskUtils.getLaunchComponentKeyForTask(getTask().key)); fromContext(context).getStatsLogManager().logTaskLaunch(getRecentsView(), mActivity.getStatsLogManager().logTaskLaunch(getRecentsView(), TaskUtils.getLaunchComponentKeyForTask(getTask().key)); }); mCornerRadius = TaskCornerRadius.get(context); Loading Loading @@ -306,8 +308,7 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { if (mTask != null) { final ActivityOptions opts; if (animate) { opts = ((BaseDraggingActivity) fromContext(getContext())) .getActivityLaunchOptions(this); opts = mActivity.getActivityLaunchOptions(this); if (freezeTaskList) { ActivityOptionsCompat.setFreezeRecentTasksList(opts); } Loading Loading @@ -571,13 +572,12 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { getContext().getText(R.string.accessibility_close_task))); final Context context = getContext(); final BaseDraggingActivity activity = fromContext(context); final List<TaskSystemShortcut> shortcuts = mSnapshotView.getTaskOverlay().getEnabledShortcuts(this); final int count = shortcuts.size(); for (int i = 0; i < count; ++i) { final TaskSystemShortcut menuOption = shortcuts.get(i); OnClickListener onClickListener = menuOption.getOnClickListener(activity, this); OnClickListener onClickListener = menuOption.getOnClickListener(mActivity, this); if (onClickListener != null) { info.addAction(menuOption.createAccessibilityAction(context)); } Loading Loading @@ -617,8 +617,7 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { for (int i = 0; i < count; ++i) { final TaskSystemShortcut menuOption = shortcuts.get(i); if (menuOption.hasHandlerForAction(action)) { OnClickListener onClickListener = menuOption.getOnClickListener( fromContext(getContext()), this); OnClickListener onClickListener = menuOption.getOnClickListener(mActivity, this); if (onClickListener != null) { onClickListener.onClick(this); } Loading Loading @@ -658,13 +657,15 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { setClipToPadding(!isFullscreen); TaskThumbnailView thumbnail = getThumbnail(); Rect insets = thumbnail.getInsetsToDrawInFullscreen(); boolean isMultiWindowMode = mActivity.getDeviceProfile().isMultiWindowMode; Rect insets = thumbnail.getInsetsToDrawInFullscreen(isMultiWindowMode); mCurrentDrawnInsets.set((int) (insets.left * mFullscreenProgress), (int) (insets.top * mFullscreenProgress), (int) (insets.right * mFullscreenProgress), (int) (insets.bottom * mFullscreenProgress)); float fullscreenCornerRadius = isMultiWindowMode ? 0 : mWindowCornerRadius; float cornerRadius = Utilities.mapRange(mFullscreenProgress, mCornerRadius, mWindowCornerRadius) / getRecentsView().getScaleX(); fullscreenCornerRadius) / getRecentsView().getScaleX(); thumbnail.setCurrentDrawnInsetsAndRadius(mCurrentDrawnInsets, cornerRadius); mOutlineProvider.setCurrentDrawnInsetsAndRadius(mCurrentDrawnInsets, cornerRadius); Loading Loading
quickstep/recents_ui_overrides/src/com/android/quickstep/util/ClipAnimationHelper.java +5 −4 Original line number Diff line number Diff line Loading @@ -31,11 +31,12 @@ import android.graphics.RectF; import android.os.Build; import android.os.RemoteException; import androidx.annotation.Nullable; import com.android.launcher3.BaseDraggingActivity; import com.android.launcher3.DeviceProfile; import com.android.launcher3.R; import com.android.launcher3.Utilities; import com.android.launcher3.util.Themes; import com.android.launcher3.views.BaseDragLayer; import com.android.quickstep.RecentsModel; import com.android.quickstep.views.RecentsView; Loading @@ -50,8 +51,6 @@ import com.android.systemui.shared.system.WindowManagerWrapper; import java.util.function.BiFunction; import androidx.annotation.Nullable; /** * Utility class to handle window clip animation */ Loading Loading @@ -327,12 +326,14 @@ public class ClipAnimationHelper { float scale = mTargetRect.width() / mSourceRect.width(); float insetProgress = (1 - progress); float windowCornerRadius = mUseRoundedCornersOnWindows ? mWindowCornerRadius : 0; ttv.drawOnCanvas(canvas, -mSourceWindowClipInsets.left * insetProgress, -mSourceWindowClipInsets.top * insetProgress, ttv.getMeasuredWidth() + mSourceWindowClipInsets.right * insetProgress, ttv.getMeasuredHeight() + mSourceWindowClipInsets.bottom * insetProgress, Utilities.mapRange(progress, mWindowCornerRadius * scale, ttv.getCornerRadius())); Utilities.mapRange(progress, windowCornerRadius * scale, ttv.getCornerRadius())); } public RectF getTargetRect() { Loading
quickstep/recents_ui_overrides/src/com/android/quickstep/util/TaskViewDrawable.java +3 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.graphics.drawable.Drawable; import android.util.FloatProperty; import android.view.View; import com.android.launcher3.BaseActivity; import com.android.launcher3.Utilities; import com.android.quickstep.views.RecentsView; import com.android.quickstep.views.TaskThumbnailView; Loading Loading @@ -75,6 +76,8 @@ public class TaskViewDrawable extends Drawable { mThumbnailView = tv.getThumbnail(); mClipAnimationHelper = new ClipAnimationHelper(parent.getContext()); mClipAnimationHelper.fromTaskThumbnailView(mThumbnailView, parent); mClipAnimationHelper.prepareAnimation( BaseActivity.fromContext(tv.getContext()).getDeviceProfile(), true /* isOpening */); } public void setProgress(float progress) { Loading
quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskThumbnailView.java +3 −3 Original line number Diff line number Diff line Loading @@ -210,9 +210,9 @@ public class TaskThumbnailView extends View { mCurrentDrawnCornerRadius); } public Rect getInsetsToDrawInFullscreen() { // Don't show insets in the wrong orientation. return mIsRotated ? EMPTY_RECT : mScaledInsets; public Rect getInsetsToDrawInFullscreen(boolean isMultiWindowMode) { // Don't show insets in the wrong orientation or in multi window mode. return mIsRotated || isMultiWindowMode ? EMPTY_RECT : mScaledInsets; } public void setCurrentDrawnInsetsAndRadius(Rect insets, float radius) { Loading
quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskView.java +14 −13 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ package com.android.quickstep.views; import static android.widget.Toast.LENGTH_SHORT; import static com.android.launcher3.BaseActivity.fromContext; import static com.android.launcher3.QuickstepAppTransitionManagerImpl.RECENTS_LAUNCH_DURATION; import static com.android.launcher3.anim.Interpolators.FAST_OUT_SLOW_IN; import static com.android.launcher3.anim.Interpolators.LINEAR; Loading Loading @@ -167,8 +167,9 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { private float mZoomScale; private float mFullscreenProgress; private final Rect mCurrentDrawnInsets = new Rect(); private float mCornerRadius; private float mWindowCornerRadius; private final float mCornerRadius; private final float mWindowCornerRadius; private final BaseDraggingActivity mActivity; private ObjectAnimator mIconAndDimAnimator; private float mIconScaleAnimStartProgress = 0; Loading @@ -190,6 +191,7 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { public TaskView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); mActivity = BaseDraggingActivity.fromContext(context); setOnClickListener((view) -> { if (getTask() == null) { return; Loading @@ -204,10 +206,10 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { launchTask(true /* animate */); } fromContext(context).getUserEventDispatcher().logTaskLaunchOrDismiss( mActivity.getUserEventDispatcher().logTaskLaunchOrDismiss( Touch.TAP, Direction.NONE, getRecentsView().indexOfChild(this), TaskUtils.getLaunchComponentKeyForTask(getTask().key)); fromContext(context).getStatsLogManager().logTaskLaunch(getRecentsView(), mActivity.getStatsLogManager().logTaskLaunch(getRecentsView(), TaskUtils.getLaunchComponentKeyForTask(getTask().key)); }); mCornerRadius = TaskCornerRadius.get(context); Loading Loading @@ -306,8 +308,7 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { if (mTask != null) { final ActivityOptions opts; if (animate) { opts = ((BaseDraggingActivity) fromContext(getContext())) .getActivityLaunchOptions(this); opts = mActivity.getActivityLaunchOptions(this); if (freezeTaskList) { ActivityOptionsCompat.setFreezeRecentTasksList(opts); } Loading Loading @@ -571,13 +572,12 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { getContext().getText(R.string.accessibility_close_task))); final Context context = getContext(); final BaseDraggingActivity activity = fromContext(context); final List<TaskSystemShortcut> shortcuts = mSnapshotView.getTaskOverlay().getEnabledShortcuts(this); final int count = shortcuts.size(); for (int i = 0; i < count; ++i) { final TaskSystemShortcut menuOption = shortcuts.get(i); OnClickListener onClickListener = menuOption.getOnClickListener(activity, this); OnClickListener onClickListener = menuOption.getOnClickListener(mActivity, this); if (onClickListener != null) { info.addAction(menuOption.createAccessibilityAction(context)); } Loading Loading @@ -617,8 +617,7 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { for (int i = 0; i < count; ++i) { final TaskSystemShortcut menuOption = shortcuts.get(i); if (menuOption.hasHandlerForAction(action)) { OnClickListener onClickListener = menuOption.getOnClickListener( fromContext(getContext()), this); OnClickListener onClickListener = menuOption.getOnClickListener(mActivity, this); if (onClickListener != null) { onClickListener.onClick(this); } Loading Loading @@ -658,13 +657,15 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { setClipToPadding(!isFullscreen); TaskThumbnailView thumbnail = getThumbnail(); Rect insets = thumbnail.getInsetsToDrawInFullscreen(); boolean isMultiWindowMode = mActivity.getDeviceProfile().isMultiWindowMode; Rect insets = thumbnail.getInsetsToDrawInFullscreen(isMultiWindowMode); mCurrentDrawnInsets.set((int) (insets.left * mFullscreenProgress), (int) (insets.top * mFullscreenProgress), (int) (insets.right * mFullscreenProgress), (int) (insets.bottom * mFullscreenProgress)); float fullscreenCornerRadius = isMultiWindowMode ? 0 : mWindowCornerRadius; float cornerRadius = Utilities.mapRange(mFullscreenProgress, mCornerRadius, mWindowCornerRadius) / getRecentsView().getScaleX(); fullscreenCornerRadius) / getRecentsView().getScaleX(); thumbnail.setCurrentDrawnInsetsAndRadius(mCurrentDrawnInsets, cornerRadius); mOutlineProvider.setCurrentDrawnInsetsAndRadius(mCurrentDrawnInsets, cornerRadius); Loading