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