Some cleanup in RecentsView

> Merging overview and all-apps scrims into a single View
> Decoupling TaskMenuView from taskView

Bug: 184676497
Test: Manual

Change-Id: I49f7249eaa2a800054385ab8e73a441d6a1b5e16
This commit is contained in:
Sunny Goyal
2021-04-06 13:03:54 -07:00
parent fc3bc6098f
commit c82916fecb
34 changed files with 127 additions and 685 deletions
@@ -27,6 +27,7 @@ import static android.view.Surface.ROTATION_270;
import static android.view.Surface.ROTATION_90;
import static android.widget.Toast.LENGTH_SHORT;
import static com.android.launcher3.AbstractFloatingView.TYPE_TASK_MENU;
import static com.android.launcher3.LauncherState.OVERVIEW_SPLIT_SELECT;
import static com.android.launcher3.QuickstepTransitionManager.RECENTS_LAUNCH_DURATION;
import static com.android.launcher3.Utilities.comp;
@@ -72,6 +73,7 @@ import android.widget.Toast;
import androidx.annotation.IntDef;
import androidx.annotation.NonNull;
import com.android.launcher3.AbstractFloatingView;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.LauncherSettings;
import com.android.launcher3.R;
@@ -102,8 +104,6 @@ import com.android.quickstep.TaskViewUtils;
import com.android.quickstep.util.CancellableTask;
import com.android.quickstep.util.RecentsOrientedState;
import com.android.quickstep.util.TaskCornerRadius;
import com.android.quickstep.views.RecentsView.PageCallbacks;
import com.android.quickstep.views.RecentsView.ScrollState;
import com.android.quickstep.views.TaskThumbnailView.PreviewPositionHelper;
import com.android.systemui.shared.recents.model.Task;
import com.android.systemui.shared.system.ActivityManagerWrapper;
@@ -118,7 +118,7 @@ import java.util.function.Consumer;
/**
* A task in the Recents view.
*/
public class TaskView extends FrameLayout implements PageCallbacks, Reusable {
public class TaskView extends FrameLayout implements Reusable {
private static final String TAG = TaskView.class.getSimpleName();
@@ -265,26 +265,10 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable {
}
};
private final OnAttachStateChangeListener mTaskMenuStateListener =
new OnAttachStateChangeListener() {
@Override
public void onViewAttachedToWindow(View view) {
}
@Override
public void onViewDetachedFromWindow(View view) {
if (mMenuView != null) {
mMenuView.removeOnAttachStateChangeListener(this);
mMenuView = null;
}
}
};
private final TaskOutlineProvider mOutlineProvider;
private Task mTask;
private TaskThumbnailView mSnapshotView;
private TaskMenuView mMenuView;
private IconView mIconView;
private final DigitalWellBeingToast mDigitalWellBeingToast;
private float mFullscreenProgress;
@@ -487,10 +471,6 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable {
+ mCurrentFullscreenParams.mCurrentDrawnInsets.bottom);
}
public TaskMenuView getMenuView() {
return mMenuView;
}
public DigitalWellBeingToast getDigitalWellBeingToast() {
return mDigitalWellBeingToast;
}
@@ -662,15 +642,12 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable {
if (!getRecentsView().isClearAllHidden()) {
getRecentsView().snapToPage(getRecentsView().indexOfChild(this));
return false;
} else {
mMenuView = TaskMenuView.showForTask(this);
mActivity.getStatsLogManager().logger().withItemInfo(getItemInfo())
.log(LAUNCHER_TASK_ICON_TAP_OR_LONGPRESS);
if (mMenuView != null) {
mMenuView.addOnAttachStateChangeListener(mTaskMenuStateListener);
}
return TaskMenuView.showForTask(this);
}
return mMenuView != null;
}
private void setIcon(Drawable icon) {
@@ -729,10 +706,6 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable {
mIconView.setRotation(orientationHandler.getDegreesRotated());
snapshotParams.topMargin = deviceProfile.overviewTaskThumbnailTopMarginPx;
mSnapshotView.setLayoutParams(snapshotParams);
if (mMenuView != null) {
mMenuView.onRotationChanged();
}
}
private void setIconAndDimTransitionProgress(float progress, boolean invert) {
@@ -817,27 +790,6 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable {
onTaskListVisibilityChanged(false);
}
@Override
public void onPageScroll(ScrollState scrollState, boolean gridEnabled) {
// Don't do anything if it's modal.
if (mModalness > 0) {
return;
}
float dwbBannerAlpha = Utilities.boundToRange(1.0f - 2 * scrollState.linearInterpolation,
0f, 1f);
mDigitalWellBeingToast.updateBannerAlpha(dwbBannerAlpha);
if (mMenuView != null) {
PagedOrientationHandler pagedOrientationHandler = getPagedOrientationHandler();
RecentsView recentsView = getRecentsView();
mMenuView.setPosition(getX() - recentsView.getScrollX(),
getY() - recentsView.getScrollY(), pagedOrientationHandler);
mMenuView.setScaleX(getScaleX());
mMenuView.setScaleY(getScaleY());
}
}
/**
* Sets the contextual chip.
*
@@ -1337,9 +1289,8 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable {
}
public void initiateSplitSelect(SplitPositionOption splitPositionOption) {
RecentsView rv = getRecentsView();
getMenuView().close(false);
rv.initiateSplitSelect(this, splitPositionOption);
AbstractFloatingView.closeOpenViews(mActivity, false, TYPE_TASK_MENU);
getRecentsView().initiateSplitSelect(this, splitPositionOption);
}
private void setColorTint(float amount) {