Loading quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java +6 −2 Original line number Diff line number Diff line Loading @@ -713,11 +713,15 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl int currentIndex = indexOfChild(taskView); TaskView previousTask = getTaskViewAt(currentIndex - 1); TaskView nextTask = getTaskViewAt(currentIndex + 1); float alpha = isTaskOverlayModal ? 0.0f : 1.0f; if (previousTask != null) { previousTask.setVisibility(isTaskOverlayModal ? View.INVISIBLE : View.VISIBLE); previousTask.animate().alpha(alpha) .translationX(isTaskOverlayModal ? previousTask.getWidth() / 2 : 0); } if (nextTask != null) { nextTask.setVisibility(isTaskOverlayModal ? View.INVISIBLE : View.VISIBLE); nextTask.animate().alpha(alpha) .translationX(isTaskOverlayModal ? -nextTask.getWidth() / 2 : 0); } } Loading quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskView.java +31 −3 Original line number Diff line number Diff line Loading @@ -167,6 +167,7 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { private float mStableAlpha = 1; private boolean mShowScreenshot; private boolean mRunningModalAnimation = false; // The current background requests to load the task thumbnail and icon private TaskThumbnailCache.ThumbnailLoadRequest mThumbnailLoadRequest; Loading Loading @@ -249,17 +250,40 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { /** Updates UI based on whether the task is modal. */ public void updateUiForModalTask() { boolean isOverlayModal = isTaskOverlayModal(); mRunningModalAnimation = true; if (getRecentsView() != null) { getRecentsView().updateUiForModalTask(this, isOverlayModal); } // Hide footers when overlay is modal. // Hides footers and icon when overlay is modal. if (isOverlayModal) { for (FooterWrapper footer : mFooters) { if (footer != null) { footer.animateHide(); } } mIconView.animate().alpha(0.0f); } else { mIconView.animate().alpha(1.0f); } // Sets animations for modal UI. We will remove the margins to zoom in the snapshot. float topMargin = getResources().getDimension(R.dimen.task_thumbnail_top_margin_with_actions); float bottomMargin = getResources().getDimension(R.dimen.task_thumbnail_bottom_margin_with_actions); float newHeight = mSnapshotView.getHeight() + topMargin + bottomMargin; float scale = isOverlayModal ? newHeight / mSnapshotView.getHeight() : 1.0f; float centerDifference = (bottomMargin - topMargin) / 2; float translationY = isOverlayModal ? centerDifference : 0; this.animate().scaleX(scale).scaleY(scale).translationY(translationY) .withEndAction(new Runnable() { @Override public void run() { setCurveScale(scale); mRunningModalAnimation = false; } }); } public TaskMenuView getMenuView() { Loading Loading @@ -567,11 +591,15 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { @Override public void onPageScroll(ScrollState scrollState) { // Don't do anything if it's modal. if (mRunningModalAnimation || isTaskOverlayModal()) { return; } float curveInterpolation = CURVE_INTERPOLATOR.getInterpolation(scrollState.linearInterpolation); float curveScaleForCurveInterpolation = getCurveScaleForCurveInterpolation( curveInterpolation); mSnapshotView.setDimAlpha(curveInterpolation * MAX_PAGE_SCRIM_ALPHA); setCurveScale(curveScaleForCurveInterpolation); Loading quickstep/res/values/dimens.xml +2 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ <resources> <dimen name="task_thumbnail_top_margin">24dp</dimen> <dimen name="task_thumbnail_top_margin_with_actions">60dp</dimen> <dimen name="task_thumbnail_bottom_margin_with_actions">76dp</dimen> <dimen name="task_thumbnail_half_top_margin">12dp</dimen> <dimen name="task_thumbnail_icon_size">48dp</dimen> <!-- For screens without rounded corners --> Loading quickstep/src/com/android/quickstep/util/LayoutUtils.java +3 −1 Original line number Diff line number Diff line Loading @@ -122,7 +122,9 @@ public class LayoutUtils { paddingHorz = res.getDimension(paddingResId); } float topIconMargin = res.getDimension(R.dimen.task_thumbnail_top_margin); float topIconMargin = overviewActionsEnabled ? res.getDimension(R.dimen.task_thumbnail_top_margin_with_actions) : res.getDimension(R.dimen.task_thumbnail_top_margin); float bottomMargin = thumbnailBottomMargin(context); float paddingVert = overviewActionsEnabled && removeShelfFromOverview(context) Loading Loading
quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java +6 −2 Original line number Diff line number Diff line Loading @@ -713,11 +713,15 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl int currentIndex = indexOfChild(taskView); TaskView previousTask = getTaskViewAt(currentIndex - 1); TaskView nextTask = getTaskViewAt(currentIndex + 1); float alpha = isTaskOverlayModal ? 0.0f : 1.0f; if (previousTask != null) { previousTask.setVisibility(isTaskOverlayModal ? View.INVISIBLE : View.VISIBLE); previousTask.animate().alpha(alpha) .translationX(isTaskOverlayModal ? previousTask.getWidth() / 2 : 0); } if (nextTask != null) { nextTask.setVisibility(isTaskOverlayModal ? View.INVISIBLE : View.VISIBLE); nextTask.animate().alpha(alpha) .translationX(isTaskOverlayModal ? -nextTask.getWidth() / 2 : 0); } } Loading
quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskView.java +31 −3 Original line number Diff line number Diff line Loading @@ -167,6 +167,7 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { private float mStableAlpha = 1; private boolean mShowScreenshot; private boolean mRunningModalAnimation = false; // The current background requests to load the task thumbnail and icon private TaskThumbnailCache.ThumbnailLoadRequest mThumbnailLoadRequest; Loading Loading @@ -249,17 +250,40 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { /** Updates UI based on whether the task is modal. */ public void updateUiForModalTask() { boolean isOverlayModal = isTaskOverlayModal(); mRunningModalAnimation = true; if (getRecentsView() != null) { getRecentsView().updateUiForModalTask(this, isOverlayModal); } // Hide footers when overlay is modal. // Hides footers and icon when overlay is modal. if (isOverlayModal) { for (FooterWrapper footer : mFooters) { if (footer != null) { footer.animateHide(); } } mIconView.animate().alpha(0.0f); } else { mIconView.animate().alpha(1.0f); } // Sets animations for modal UI. We will remove the margins to zoom in the snapshot. float topMargin = getResources().getDimension(R.dimen.task_thumbnail_top_margin_with_actions); float bottomMargin = getResources().getDimension(R.dimen.task_thumbnail_bottom_margin_with_actions); float newHeight = mSnapshotView.getHeight() + topMargin + bottomMargin; float scale = isOverlayModal ? newHeight / mSnapshotView.getHeight() : 1.0f; float centerDifference = (bottomMargin - topMargin) / 2; float translationY = isOverlayModal ? centerDifference : 0; this.animate().scaleX(scale).scaleY(scale).translationY(translationY) .withEndAction(new Runnable() { @Override public void run() { setCurveScale(scale); mRunningModalAnimation = false; } }); } public TaskMenuView getMenuView() { Loading Loading @@ -567,11 +591,15 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { @Override public void onPageScroll(ScrollState scrollState) { // Don't do anything if it's modal. if (mRunningModalAnimation || isTaskOverlayModal()) { return; } float curveInterpolation = CURVE_INTERPOLATOR.getInterpolation(scrollState.linearInterpolation); float curveScaleForCurveInterpolation = getCurveScaleForCurveInterpolation( curveInterpolation); mSnapshotView.setDimAlpha(curveInterpolation * MAX_PAGE_SCRIM_ALPHA); setCurveScale(curveScaleForCurveInterpolation); Loading
quickstep/res/values/dimens.xml +2 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ <resources> <dimen name="task_thumbnail_top_margin">24dp</dimen> <dimen name="task_thumbnail_top_margin_with_actions">60dp</dimen> <dimen name="task_thumbnail_bottom_margin_with_actions">76dp</dimen> <dimen name="task_thumbnail_half_top_margin">12dp</dimen> <dimen name="task_thumbnail_icon_size">48dp</dimen> <!-- For screens without rounded corners --> Loading
quickstep/src/com/android/quickstep/util/LayoutUtils.java +3 −1 Original line number Diff line number Diff line Loading @@ -122,7 +122,9 @@ public class LayoutUtils { paddingHorz = res.getDimension(paddingResId); } float topIconMargin = res.getDimension(R.dimen.task_thumbnail_top_margin); float topIconMargin = overviewActionsEnabled ? res.getDimension(R.dimen.task_thumbnail_top_margin_with_actions) : res.getDimension(R.dimen.task_thumbnail_top_margin); float bottomMargin = thumbnailBottomMargin(context); float paddingVert = overviewActionsEnabled && removeShelfFromOverview(context) Loading