diff --git a/quickstep/res/layout/activity_allset.xml b/quickstep/res/layout/activity_allset.xml index 0cae733dbe..56e1d16281 100644 --- a/quickstep/res/layout/activity_allset.xml +++ b/quickstep/res/layout/activity_allset.xml @@ -26,7 +26,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/content_view" - android:fitsSystemWindows="true"> + android:fitsSystemWindows="false"> @@ -56,9 +56,6 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:orientation="horizontal" - android:paddingLeft="@dimen/taskbar_nav_buttons_spacing" - android:paddingRight="@dimen/taskbar_nav_buttons_spacing" - android:layout_marginEnd="@dimen/taskbar_contextual_button_margin" android:gravity="center_vertical" android:layout_gravity="end"/> @@ -66,8 +63,6 @@ android:id="@+id/end_contextual_buttons" android:layout_width="wrap_content" android:layout_height="match_parent" - android:paddingLeft="@dimen/taskbar_nav_buttons_spacing" - android:paddingRight="@dimen/taskbar_nav_buttons_spacing" android:paddingTop="@dimen/taskbar_contextual_padding_top" android:gravity="center_vertical" android:layout_gravity="end"/> diff --git a/quickstep/res/values-land/dimens.xml b/quickstep/res/values-land/dimens.xml index 732f511367..83680696ad 100644 --- a/quickstep/res/values-land/dimens.xml +++ b/quickstep/res/values-land/dimens.xml @@ -74,4 +74,10 @@ 218dp + + + 94.5dp + 94.5dp + 84dp + 79dp \ No newline at end of file diff --git a/quickstep/res/values/dimens.xml b/quickstep/res/values/dimens.xml index fa4eaedc88..0232f8652c 100644 --- a/quickstep/res/values/dimens.xml +++ b/quickstep/res/values/dimens.xml @@ -250,11 +250,11 @@ 48dp 54dp 16dp - 16dp + 16dp 8dp 44dp - 40dp - 42dp + 47dp + 24dp 35dp 24dp 220dp @@ -268,4 +268,12 @@ 48dp 48dp 32dp + + + 24dp + 26dp + 26dp + 47dp + 47dp + 47dp diff --git a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java index ec497ef1f9..e21dcbadf2 100644 --- a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java +++ b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java @@ -337,7 +337,7 @@ public abstract class BaseQuickstepLauncher extends Launcher { new SplitSelectStateController(this, mHandler, getStateManager(), getDepthController()); overviewPanel.init(mActionsView, controller); - mActionsView.updateDimension(getDeviceProfile()); + mActionsView.updateDimension(getDeviceProfile(), overviewPanel.getLastComputedTaskSize()); mActionsView.updateVerticalMargin(DisplayController.getNavigationMode(this)); mAppTransitionManager = new QuickstepTransitionManager(this); diff --git a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java index 17da0d944b..b01168d9af 100644 --- a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java @@ -46,6 +46,7 @@ import android.annotation.LayoutRes; import android.content.pm.ActivityInfo.Config; import android.content.res.ColorStateList; import android.content.res.Configuration; +import android.content.res.Resources; import android.graphics.Color; import android.graphics.Rect; import android.graphics.Region; @@ -67,6 +68,7 @@ import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; +import com.android.launcher3.DeviceProfile; import com.android.launcher3.LauncherAnimUtils; import com.android.launcher3.R; import com.android.launcher3.Utilities; @@ -94,7 +96,7 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT private final Rect mTempRect = new Rect(); - private static final int FLAG_SWITCHER_SUPPORTED = 1 << 0; + private static final int FLAG_SWITCHER_SHOWING = 1 << 0; private static final int FLAG_IME_VISIBLE = 1 << 1; private static final int FLAG_ROTATION_BUTTON_VISIBLE = 1 << 2; private static final int FLAG_A11Y_VISIBLE = 1 << 3; @@ -189,7 +191,7 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT isThreeButtonNav ? mStartContextualContainer : mEndContextualContainer, mControllers.navButtonController, R.id.ime_switcher); mPropertyHolders.add(new StatePropertyHolder(imeSwitcherButton, - flags -> ((flags & FLAG_SWITCHER_SUPPORTED) != 0) + flags -> ((flags & FLAG_SWITCHER_SHOWING) != 0) && ((flags & FLAG_ROTATION_BUTTON_VISIBLE) == 0))); } @@ -228,6 +230,7 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT if (alwaysShowButtons) { initButtons(mNavButtonContainer, mEndContextualContainer, mControllers.navButtonController); + updateButtonLayoutSpacing(); if (isInSetup) { // Since setup wizard only has back button enabled, it looks strange to be @@ -451,7 +454,7 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT // TODO(b/202218289) we're getting IME as not visible on lockscreen from system updateStateForFlag(FLAG_IME_VISIBLE, isImeVisible); - updateStateForFlag(FLAG_SWITCHER_SUPPORTED, isImeSwitcherShowing); + updateStateForFlag(FLAG_SWITCHER_SHOWING, isImeSwitcherShowing); updateStateForFlag(FLAG_A11Y_VISIBLE, a11yVisible); updateStateForFlag(FLAG_DISABLE_HOME, isHomeDisabled); updateStateForFlag(FLAG_DISABLE_RECENTS, isRecentsDisabled); @@ -465,6 +468,7 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT boolean a11yLongClickable = (sysUiStateFlags & SYSUI_STATE_A11Y_BUTTON_LONG_CLICKABLE) != 0; mA11yButton.setLongClickable(a11yLongClickable); + updateButtonLayoutSpacing(); } } @@ -479,6 +483,13 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT } } + /** + * @return {@code true} if A11y is showing in 3 button nav taskbar + */ + private boolean isContextualButtonShowing() { + return mContext.isThreeButtonNav() && (mState & FLAG_A11Y_VISIBLE) != 0; + } + /** * Should be called when we need to show back button for bouncer */ @@ -508,7 +519,7 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT * Returns true if IME switcher is visible */ public boolean isImeSwitcherVisible() { - return (mState & FLAG_SWITCHER_SUPPORTED) != 0; + return (mState & FLAG_SWITCHER_SHOWING) != 0; } /** @@ -662,6 +673,46 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT if (mFloatingRotationButton != null) { mFloatingRotationButton.onConfigurationChanged(configChanges); } + updateButtonLayoutSpacing(); + } + + /** Adds the correct spacing to 3 button nav container. No-op if using gesture nav */ + private void updateButtonLayoutSpacing() { + if (!mContext.isThreeButtonNav()) { + return; + } + DeviceProfile dp = mContext.getDeviceProfile(); + Resources res = mContext.getResources(); + + // Add spacing after the end of the last nav button + FrameLayout.LayoutParams navButtonParams = + (FrameLayout.LayoutParams) mNavButtonContainer.getLayoutParams(); + int navMarginEnd = (int) res.getDimension(dp.inv.inlineNavButtonsEndSpacing); + int contextualWidth = mEndContextualContainer.getWidth(); + // If contextual buttons are showing, we check if the end margin is enough for the + // contextual button to be showing - if not, move the nav buttons over a smidge + if (isContextualButtonShowing() && navMarginEnd < contextualWidth) { + // Additional spacing, eat up half of space between last icon and nav button + navMarginEnd += res.getDimensionPixelSize(R.dimen.taskbar_hotseat_nav_spacing) / 2; + } + navButtonParams.setMarginEnd(navMarginEnd); + mNavButtonContainer.setLayoutParams(navButtonParams); + + // Add the spaces in between the nav buttons + int spaceInBetween = res.getDimensionPixelSize(R.dimen.taskbar_button_space_inbetween); + for (int i = 0; i < mNavButtonContainer.getChildCount(); i++) { + View navButton = mNavButtonContainer.getChildAt(i); + LinearLayout.LayoutParams buttonLayoutParams = + (LinearLayout.LayoutParams) navButton.getLayoutParams(); + if (i == 0) { + buttonLayoutParams.setMarginEnd(spaceInBetween / 2); + } else if (i == mNavButtonContainer.getChildCount() - 1) { + buttonLayoutParams.setMarginStart(spaceInBetween / 2); + } else { + buttonLayoutParams.setMarginStart(spaceInBetween / 2); + buttonLayoutParams.setMarginEnd(spaceInBetween / 2); + } + } } public void onDestroy() { @@ -734,22 +785,17 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT public void dumpLogs(String prefix, PrintWriter pw) { pw.println(prefix + "NavbarButtonsViewController:"); - pw.println(String.format("%s\tmState=%s", prefix, getStateString(mState))); - pw.println(String.format( - "%s\tmLightIconColor=0x%s", prefix, Integer.toHexString(mLightIconColor))); - pw.println(String.format( - "%s\tmDarkIconColor=0x%s", prefix, Integer.toHexString(mDarkIconColor))); - pw.println(String.format( - "%s\tmFloatingRotationButtonBounds=%s", prefix, mFloatingRotationButtonBounds)); - pw.println(String.format( - "%s\tmSysuiStateFlags=%s", - prefix, - QuickStepContract.getSystemUiStateString(mSysuiStateFlags))); + pw.println(prefix + "\tmState=" + getStateString(mState)); + pw.println(prefix + "\tmLightIconColor=" + Integer.toHexString(mLightIconColor)); + pw.println(prefix + "\tmDarkIconColor=" + Integer.toHexString(mDarkIconColor)); + pw.println(prefix + "\tmFloatingRotationButtonBounds=" + mFloatingRotationButtonBounds); + pw.println(prefix + "\tmSysuiStateFlags=" + QuickStepContract.getSystemUiStateString( + mSysuiStateFlags)); } private static String getStateString(int flags) { StringJoiner str = new StringJoiner("|"); - appendFlag(str, flags, FLAG_SWITCHER_SUPPORTED, "FLAG_SWITCHER_SUPPORTED"); + appendFlag(str, flags, FLAG_SWITCHER_SHOWING, "FLAG_SWITCHER_SHOWING"); appendFlag(str, flags, FLAG_IME_VISIBLE, "FLAG_IME_VISIBLE"); appendFlag(str, flags, FLAG_ROTATION_BUTTON_VISIBLE, "FLAG_ROTATION_BUTTON_VISIBLE"); appendFlag(str, flags, FLAG_A11Y_VISIBLE, "FLAG_A11Y_VISIBLE"); diff --git a/quickstep/src/com/android/launcher3/taskbar/StashedHandleViewController.java b/quickstep/src/com/android/launcher3/taskbar/StashedHandleViewController.java index f472427520..800e1629f4 100644 --- a/quickstep/src/com/android/launcher3/taskbar/StashedHandleViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/StashedHandleViewController.java @@ -209,10 +209,9 @@ public class StashedHandleViewController implements TaskbarControllers.LoggableT public void dumpLogs(String prefix, PrintWriter pw) { pw.println(prefix + "StashedHandleViewController:"); - pw.println(String.format( - "%s\tisStashedHandleVisible=%b", prefix, isStashedHandleVisible())); - pw.println(String.format("%s\tmStashedHandleWidth=%dpx", prefix, mStashedHandleWidth)); - pw.println(String.format("%s\tmStashedHandleHeight=%dpx", prefix, mStashedHandleHeight)); + pw.println(prefix + "\tisStashedHandleVisible=" + isStashedHandleVisible()); + pw.println(prefix + "\tmStashedHandleWidth=" + mStashedHandleWidth); + pw.println(prefix + "\tmStashedHandleHeight=" + mStashedHandleHeight); mRegionSamplingHelper.dump(prefix, pw); } } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java index 6b12e9c164..439490e00c 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java @@ -839,6 +839,6 @@ public class TaskbarActivityContext extends BaseTaskbarContext { pw.println(String.format( "%s\tmBindInProgress=%b", prefix, mBindingItems)); mControllers.dumpLogs(prefix + "\t", pw); - mDeviceProfile.dump(this, prefix, pw); + mDeviceProfile.dump(prefix, pw); } } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarAutohideSuspendController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarAutohideSuspendController.java index c5615c7ba1..3cf9c997c9 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarAutohideSuspendController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarAutohideSuspendController.java @@ -71,8 +71,7 @@ public class TaskbarAutohideSuspendController implements public void dumpLogs(String prefix, PrintWriter pw) { pw.println(prefix + "TaskbarAutohideSuspendController:"); - pw.println(String.format( - "%s\tmAutohideSuspendFlags=%s", prefix, getStateString(mAutohideSuspendFlags))); + pw.println(prefix + "\tmAutohideSuspendFlags=" + getStateString(mAutohideSuspendFlags)); } private static String getStateString(int flags) { diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java index 04fcc44b55..3a0f3740a2 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java @@ -559,13 +559,11 @@ public class TaskbarDragController extends DragController im public void dumpLogs(String prefix, PrintWriter pw) { pw.println(prefix + "TaskbarDragController:"); - pw.println(String.format("%s\tmDragIconSize=%dpx", prefix, mDragIconSize)); - pw.println(String.format("%s\tmTempXY=%s", prefix, Arrays.toString(mTempXY))); - pw.println(String.format("%s\tmRegistrationX=%d", prefix, mRegistrationX)); - pw.println(String.format("%s\tmRegistrationY=%d", prefix, mRegistrationY)); - pw.println(String.format( - "%s\tmIsSystemDragInProgress=%b", prefix, mIsSystemDragInProgress)); - pw.println(String.format( - "%s\tisInternalDragInProgess=%b", prefix, super.isDragging())); + pw.println(prefix + "\tmDragIconSize=" + mDragIconSize); + pw.println(prefix + "\tmTempXY=" + Arrays.toString(mTempXY)); + pw.println(prefix + "\tmRegistrationX=" + mRegistrationX); + pw.println(prefix + "\tmRegistrationY=" + mRegistrationY); + pw.println(prefix + "\tmIsSystemDragInProgress=" + mIsSystemDragInProgress); + pw.println(prefix + "\tisInternalDragInProgess=" + super.isDragging()); } } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java index 99c59a8a98..77ef83cbe4 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java @@ -144,10 +144,9 @@ public class TaskbarDragLayerController implements TaskbarControllers.LoggableTa public void dumpLogs(String prefix, PrintWriter pw) { pw.println(prefix + "TaskbarDragLayerController:"); - pw.println(String.format("%s\tmBgOffset=%.2f", prefix, mBgOffset.value)); - pw.println(String.format("%s\tmFolderMargin=%dpx", prefix, mFolderMargin)); - pw.println(String.format( - "%s\tmLastSetBackgroundAlpha=%.2f", prefix, mLastSetBackgroundAlpha)); + pw.println(prefix + "\tmBgOffset=" + mBgOffset.value); + pw.println(prefix + "\tmFolderMargin=" + mFolderMargin); + pw.println(prefix + "\tmLastSetBackgroundAlpha=" + mLastSetBackgroundAlpha); } /** diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarEduController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarEduController.java index e29b14b76f..32a3c10d87 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarEduController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarEduController.java @@ -191,12 +191,10 @@ public class TaskbarEduController implements TaskbarControllers.LoggableTaskbarC public void dumpLogs(String prefix, PrintWriter pw) { pw.println(prefix + "TaskbarEduController:"); - pw.println(String.format("%s\tisShowingEdu=%b", prefix, mTaskbarEduView != null)); - pw.println(String.format("%s\tmWaveAnimTranslationY=%.2f", prefix, mWaveAnimTranslationY)); - pw.println(String.format( - "%s\tmWaveAnimTranslationYReturnOvershoot=%.2f", - prefix, - mWaveAnimTranslationYReturnOvershoot)); + pw.println(prefix + "\tisShowingEdu=" + (mTaskbarEduView != null)); + pw.println(prefix + "\tmWaveAnimTranslationY=" + mWaveAnimTranslationY); + pw.println(prefix + "\tmWaveAnimTranslationYReturnOvershoot=" + + mWaveAnimTranslationYReturnOvershoot); } /** diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarKeyguardController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarKeyguardController.java index 56648eac38..0808faba1c 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarKeyguardController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarKeyguardController.java @@ -111,11 +111,9 @@ public class TaskbarKeyguardController implements TaskbarControllers.LoggableTas public void dumpLogs(String prefix, PrintWriter pw) { pw.println(prefix + "TaskbarKeyguardController:"); - pw.println(String.format( - "%s\tmKeyguardSysuiFlags=%s", - prefix, - QuickStepContract.getSystemUiStateString(mKeyguardSysuiFlags))); - pw.println(String.format("%s\tmBouncerShowing=%b", prefix, mBouncerShowing)); - pw.println(String.format("%s\tmIsScreenOff=%b", prefix, mIsScreenOff)); + pw.println(prefix + "\tmKeyguardSysuiFlags=" + QuickStepContract.getSystemUiStateString( + mKeyguardSysuiFlags)); + pw.println(prefix + "\tmBouncerShowing=" + mBouncerShowing); + pw.println(prefix + "\tmIsScreenOff=" + mIsScreenOff); } } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java index ff11f67b3e..85e76b26d4 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java @@ -35,6 +35,7 @@ import com.android.launcher3.BaseQuickstepLauncher; import com.android.launcher3.LauncherState; import com.android.launcher3.QuickstepTransitionManager; import com.android.launcher3.Utilities; +import com.android.launcher3.anim.AnimatorListeners; import com.android.launcher3.statemanager.StateManager; import com.android.launcher3.util.MultiValueAlpha; import com.android.quickstep.AnimatedFloat; @@ -367,11 +368,14 @@ import java.util.function.Supplier; private void playStateTransitionAnim(AnimatorSet animatorSet, long duration, boolean committed) { boolean isInStashedState = mLauncherState.isTaskbarStashed(mLauncher); - float toAlignment = mLauncherState.isTaskbarAlignedWithHotseat(mLauncher) ? 1 : 0; + boolean willStashVisually = + isInStashedState && mControllers.taskbarStashController.supportsVisualStashing(); + float toAlignment = + mLauncherState.isTaskbarAlignedWithHotseat(mLauncher) && !willStashVisually ? 1 : 0; - TaskbarStashController controller = mControllers.taskbarStashController; - controller.updateStateForFlag(FLAG_IN_STASHED_LAUNCHER_STATE, isInStashedState); - Animator stashAnimator = controller.applyStateWithoutStart(duration); + TaskbarStashController stashController = mControllers.taskbarStashController; + stashController.updateStateForFlag(FLAG_IN_STASHED_LAUNCHER_STATE, isInStashedState); + Animator stashAnimator = stashController.applyStateWithoutStart(duration); if (stashAnimator != null) { stashAnimator.addListener(new AnimatorListenerAdapter() { @Override @@ -391,9 +395,13 @@ import java.util.function.Supplier; }); animatorSet.play(stashAnimator); } - - // If we're already animating to the value, just leave it be instead of restarting it. + if (mIconAlignmentForLauncherState.value == toAlignment) { + // Already at expected value, but make sure we run the callback at the end. + animatorSet.addListener(AnimatorListeners.forEndCallback( + this::onIconAlignmentRatioChangedForStateTransition)); + } if (!mIconAlignmentForLauncherState.isAnimatingToValue(toAlignment)) { + // If we're already animating to the value, just leave it be instead of restarting it. mIconAlignmentForLauncherState.finishAnimation(); animatorSet.play(mIconAlignmentForLauncherState.animateToValue(toAlignment) .setDuration(duration)); diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java index 3392b6b887..60f50a9689 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java @@ -18,7 +18,6 @@ package com.android.launcher3.taskbar; import static com.android.internal.app.AssistUtils.INVOCATION_TYPE_HOME_BUTTON_LONG_PRESS; import static com.android.internal.app.AssistUtils.INVOCATION_TYPE_KEY; -import static com.android.systemui.shared.system.ActivityManagerWrapper.CLOSE_SYSTEM_WINDOWS_REASON_RECENTS; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_TASKBAR_A11Y_BUTTON_LONGPRESS; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_TASKBAR_A11Y_BUTTON_TAP; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_TASKBAR_BACK_BUTTON_LONGPRESS; @@ -28,6 +27,7 @@ import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCH import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_TASKBAR_IME_SWITCHER_BUTTON_TAP; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_TASKBAR_OVERVIEW_BUTTON_LONGPRESS; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_TASKBAR_OVERVIEW_BUTTON_TAP; +import static com.android.systemui.shared.system.ActivityManagerWrapper.CLOSE_SYSTEM_WINDOWS_REASON_RECENTS; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_SCREEN_PINNING; import android.os.Bundle; @@ -72,9 +72,8 @@ public class TaskbarNavButtonController implements TaskbarControllers.LoggableTa public void dumpLogs(String prefix, PrintWriter pw) { pw.println(prefix + "TaskbarNavButtonController:"); - pw.println(String.format( - "%s\tmLastScreenPinLongPress=%dms", prefix, mLastScreenPinLongPress)); - pw.println(String.format("%s\tmScreenPinned=%b", prefix, mScreenPinned)); + pw.println(prefix + "\tmLastScreenPinLongPress=" + mLastScreenPinLongPress); + pw.println(prefix + "\tmScreenPinned=" + mScreenPinned); } @Retention(RetentionPolicy.SOURCE) diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarScrimViewController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarScrimViewController.java index 58ace17787..c3b0f57c2d 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarScrimViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarScrimViewController.java @@ -98,6 +98,6 @@ public class TaskbarScrimViewController implements TaskbarControllers.LoggableTa public void dumpLogs(String prefix, PrintWriter pw) { pw.println(prefix + "TaskbarScrimViewController:"); - pw.println(String.format("%s\tmScrimAlpha.value=%.2f", prefix, mScrimAlpha.value)); + pw.println(prefix + "\tmScrimAlpha.value=" + mScrimAlpha.value); } } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java index 2b8fdd102f..513f1bbed0 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java @@ -728,16 +728,14 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba public void dumpLogs(String prefix, PrintWriter pw) { pw.println(prefix + "TaskbarStashController:"); - pw.println(String.format("%s\tmStashedHeight=%dpx", prefix, mStashedHeight)); - pw.println(String.format("%s\tmUnstashedHeight=%dpx", prefix, mUnstashedHeight)); - pw.println(String.format("%s\tmIsStashed=%b", prefix, mIsStashed)); - pw.println(String.format( - "%s\tappliedState=%s", prefix, getStateString(mStatePropertyHolder.mPrevFlags))); - pw.println(String.format("%s\tmState=%s", prefix, getStateString(mState))); - pw.println(String.format( - "%s\tmIsSystemGestureInProgress=%b", prefix, mIsSystemGestureInProgress)); - pw.println(String.format("%s\tmIsImeShowing=%b", prefix, mIsImeShowing)); - pw.println(String.format("%s\tmIsImeSwitcherShowing=%b", prefix, mIsImeSwitcherShowing)); + pw.println(prefix + "\tmStashedHeight=" + mStashedHeight); + pw.println(prefix + "\tmUnstashedHeight=" + mUnstashedHeight); + pw.println(prefix + "\tmIsStashed=" + mIsStashed); + pw.println(prefix + "\tappliedState=" + getStateString(mStatePropertyHolder.mPrevFlags)); + pw.println(prefix + "\tmState=" + getStateString(mState)); + pw.println(prefix + "\tmIsSystemGestureInProgress=" + mIsSystemGestureInProgress); + pw.println(prefix + "\tmIsImeShowing=" + mIsImeShowing); + pw.println(prefix + "\tmIsImeSwitcherShowing=" + mIsImeSwitcherShowing); } private static String getStateString(int flags) { diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java index db7dc78f7b..6d45fd2d5c 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java @@ -373,6 +373,19 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar @Override public void dumpLogs(String prefix, PrintWriter pw) { pw.println(prefix + "TaskbarViewController:"); + + mTaskbarIconAlpha.dump( + prefix + "\t", + pw, + "mTaskbarIconAlpha", + "ALPHA_INDEX_HOME", + "ALPHA_INDEX_KEYGUARD", + "ALPHA_INDEX_STASH", + "ALPHA_INDEX_RECENTS_DISABLED", + "ALPHA_INDEX_NOTIFICATION_EXPANDED", + "ALPHA_INDEX_ASSISTANT_INVOKED", + "ALPHA_INDEX_IME_BUTTON_NAV"); + mModelCallbacks.dumpLogs(prefix + "\t", pw); } diff --git a/quickstep/src/com/android/launcher3/uioverrides/states/BackgroundAppState.java b/quickstep/src/com/android/launcher3/uioverrides/states/BackgroundAppState.java index 297a61a38d..b7330072d4 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/states/BackgroundAppState.java +++ b/quickstep/src/com/android/launcher3/uioverrides/states/BackgroundAppState.java @@ -50,7 +50,8 @@ public class BackgroundAppState extends OverviewState { return super.getVerticalProgress(launcher); } RecentsView recentsView = launcher.getOverviewPanel(); - int transitionLength = LayoutUtils.getShelfTrackingDistance(launcher.getDeviceProfile(), + int transitionLength = LayoutUtils.getShelfTrackingDistance(launcher, + launcher.getDeviceProfile(), recentsView.getPagedOrientationHandler()); AllAppsTransitionController controller = launcher.getAllAppsController(); float scrollRange = Math.max(controller.getShiftRange(), 1); diff --git a/quickstep/src/com/android/launcher3/uioverrides/states/OverviewModalTaskState.java b/quickstep/src/com/android/launcher3/uioverrides/states/OverviewModalTaskState.java index 0f02e2663e..0c49e5fc69 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/states/OverviewModalTaskState.java +++ b/quickstep/src/com/android/launcher3/uioverrides/states/OverviewModalTaskState.java @@ -18,6 +18,8 @@ package com.android.launcher3.uioverrides.states; import static com.android.launcher3.logging.StatsLogManager.LAUNCHER_STATE_OVERVIEW; import android.content.Context; +import android.graphics.Point; +import android.graphics.Rect; import com.android.launcher3.BaseDraggingActivity; import com.android.launcher3.Launcher; @@ -69,6 +71,13 @@ public class OverviewModalTaskState extends OverviewState { } public static float[] getOverviewScaleAndOffsetForModalState(BaseDraggingActivity activity) { - return new float[] {activity.getDeviceProfile().overviewModalTaskScale, NO_OFFSET}; + Point taskSize = activity.getOverviewPanel().getSelectedTaskSize(); + Rect modalTaskSize = new Rect(); + activity.getOverviewPanel().getModalTaskSize(modalTaskSize); + + float scale = Math.min((float) modalTaskSize.height() / taskSize.y, + (float) modalTaskSize.width() / taskSize.x); + + return new float[] {scale, NO_OFFSET}; } } diff --git a/quickstep/src/com/android/launcher3/uioverrides/states/OverviewState.java b/quickstep/src/com/android/launcher3/uioverrides/states/OverviewState.java index c0810b929e..c4c903815e 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/states/OverviewState.java +++ b/quickstep/src/com/android/launcher3/uioverrides/states/OverviewState.java @@ -22,12 +22,10 @@ import android.content.Context; import android.graphics.Rect; import android.os.SystemProperties; -import com.android.launcher3.BaseQuickstepLauncher; import com.android.launcher3.DeviceProfile; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherState; import com.android.launcher3.R; -import com.android.launcher3.taskbar.LauncherTaskbarUIController; import com.android.launcher3.util.DisplayController; import com.android.launcher3.util.Themes; import com.android.quickstep.util.LayoutUtils; @@ -65,9 +63,12 @@ public class OverviewState extends LauncherState { @Override public ScaleAndTranslation getWorkspaceScaleAndTranslation(Launcher launcher) { + RecentsView recentsView = launcher.getOverviewPanel(); + float workspacePageHeight = launcher.getDeviceProfile().getCellLayoutHeight(); + recentsView.getTaskSize(sTempRect); + float scale = (float) sTempRect.height() / workspacePageHeight; float parallaxFactor = 0.5f; - return new ScaleAndTranslation(launcher.getDeviceProfile().overviewTaskWorkspaceScale, 0, - -getDefaultSwipeHeight(launcher) * parallaxFactor); + return new ScaleAndTranslation(scale, 0, -getDefaultSwipeHeight(launcher) * parallaxFactor); } @Override @@ -92,13 +93,7 @@ public class OverviewState extends LauncherState { @Override public boolean isTaskbarStashed(Launcher launcher) { - if (launcher instanceof BaseQuickstepLauncher) { - LauncherTaskbarUIController uiController = - ((BaseQuickstepLauncher) launcher).getTaskbarUIController(); - - return uiController != null && uiController.supportsVisualStashing(); - } - return super.isTaskbarStashed(launcher); + return true; } @Override diff --git a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/NoButtonQuickSwitchTouchController.java b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/NoButtonQuickSwitchTouchController.java index d06f64a1be..f294986fa3 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/NoButtonQuickSwitchTouchController.java +++ b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/NoButtonQuickSwitchTouchController.java @@ -120,8 +120,8 @@ public class NoButtonQuickSwitchTouchController implements TouchController, mSwipeDetector = new BothAxesSwipeDetector(mLauncher, this); mRecentsView = mLauncher.getOverviewPanel(); mXRange = mLauncher.getDeviceProfile().widthPx / 2f; - mYRange = LayoutUtils.getShelfTrackingDistance(mLauncher.getDeviceProfile(), - mRecentsView.getPagedOrientationHandler()); + mYRange = LayoutUtils.getShelfTrackingDistance( + mLauncher, mLauncher.getDeviceProfile(), mRecentsView.getPagedOrientationHandler()); mMaxYProgress = mLauncher.getDeviceProfile().heightPx / mYRange; mMotionPauseDetector = new MotionPauseDetector(mLauncher); mMotionPauseMinDisplacement = mLauncher.getResources().getDimension( @@ -232,6 +232,7 @@ public class NoButtonQuickSwitchTouchController implements TouchController, mRecentsView.setFullscreenProgress(fromState.getOverviewFullscreenProgress()); mLauncher.getActionsView().getVisibilityAlpha().setValue( (fromState.getVisibleElements(mLauncher) & OVERVIEW_ACTIONS) != 0 ? 1f : 0f); + mRecentsView.setTaskIconScaledDown(true); float[] scaleAndOffset = toState.getOverviewScaleAndOffset(mLauncher); // As we drag right, animate the following properties: @@ -321,6 +322,7 @@ public class NoButtonQuickSwitchTouchController implements TouchController, boolean verticalFling = mSwipeDetector.isFling(velocity.y); boolean noFling = !horizontalFling && !verticalFling; if (mMotionPauseDetector.isPaused() && noFling) { + // Going to Overview. cancelAnimations(); StateAnimationConfig config = new StateAnimationConfig(); @@ -331,6 +333,8 @@ public class NoButtonQuickSwitchTouchController implements TouchController, @Override public void onAnimationEnd(Animator animation) { onAnimationToStateCompleted(OVERVIEW); + // Animate the icon after onAnimationToStateCompleted() so it doesn't clobber. + mRecentsView.animateUpTaskIconScale(); } }); overviewAnim.start(); diff --git a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java index 73949457b6..9efbc34a17 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java +++ b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java @@ -144,8 +144,8 @@ public class PortraitStatesTouchController extends AbstractStateChangeTouchContr .createPlaybackController(); mLauncher.getStateManager().setCurrentUserControlledAnimation(mCurrentAnimation); RecentsView recentsView = mLauncher.getOverviewPanel(); - totalShift = LayoutUtils.getShelfTrackingDistance(mLauncher.getDeviceProfile(), - recentsView.getPagedOrientationHandler()); + totalShift = LayoutUtils.getShelfTrackingDistance(mLauncher, + mLauncher.getDeviceProfile(), recentsView.getPagedOrientationHandler()); } else { mCurrentAnimation = mLauncher.getStateManager() .createAnimationToNewWorkspace(mToState, config); diff --git a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java index 045530c441..8f1872b11e 100644 --- a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java +++ b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java @@ -2049,8 +2049,8 @@ public abstract class AbsSwipeUpHandler, float scrollOffset = Math.abs(mRecentsView.getScrollOffset(mRecentsView.getCurrentPage())); int maxScrollOffset = mRecentsView.getPagedOrientationHandler().getPrimaryValue( - mActivity.getDeviceProfile().overviewTaskRect.width(), - mActivity.getDeviceProfile().overviewTaskRect.height()); + mRecentsView.getLastComputedTaskSize().width(), + mRecentsView.getLastComputedTaskSize().height()); maxScrollOffset += mRecentsView.getPageSpacing(); float maxScaleProgress = diff --git a/quickstep/src/com/android/quickstep/BaseActivityInterface.java b/quickstep/src/com/android/quickstep/BaseActivityInterface.java index a922f58993..6354282d47 100644 --- a/quickstep/src/com/android/quickstep/BaseActivityInterface.java +++ b/quickstep/src/com/android/quickstep/BaseActivityInterface.java @@ -33,9 +33,12 @@ import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.annotation.TargetApi; import android.content.Context; +import android.content.res.Resources; import android.graphics.Color; +import android.graphics.PointF; import android.graphics.Rect; import android.os.Build; +import android.view.Gravity; import android.view.MotionEvent; import android.view.View; @@ -43,6 +46,7 @@ import androidx.annotation.Nullable; import androidx.annotation.UiThread; import com.android.launcher3.DeviceProfile; +import com.android.launcher3.R; import com.android.launcher3.anim.AnimatorPlaybackController; import com.android.launcher3.anim.PendingAnimation; import com.android.launcher3.statehandlers.DepthController; @@ -105,8 +109,8 @@ public abstract class BaseActivityInterface PendingAnimation createRecentsResistanceAnim( RecentsParams params) { - Rect startRect = new Rect(params.dp.overviewTaskRect); + Rect startRect = new Rect(); PagedOrientationHandler orientationHandler = params.recentsOrientedState .getOrientationHandler(); + LauncherActivityInterface.INSTANCE.calculateTaskSize(params.context, params.dp, startRect); long distanceToCover = startRect.bottom; PendingAnimation resistAnim = params.resistAnim != null ? params.resistAnim diff --git a/quickstep/src/com/android/quickstep/util/LayoutUtils.java b/quickstep/src/com/android/quickstep/util/LayoutUtils.java index d4eb880c61..d0856bed20 100644 --- a/quickstep/src/com/android/quickstep/util/LayoutUtils.java +++ b/quickstep/src/com/android/quickstep/util/LayoutUtils.java @@ -16,6 +16,7 @@ package com.android.quickstep.util; import android.content.Context; +import android.graphics.Rect; import android.view.View; import android.view.ViewGroup; @@ -23,6 +24,7 @@ import com.android.launcher3.DeviceProfile; import com.android.launcher3.touch.PagedOrientationHandler; import com.android.launcher3.util.DisplayController; import com.android.launcher3.util.DisplayController.NavigationMode; +import com.android.quickstep.LauncherActivityInterface; public class LayoutUtils { @@ -37,12 +39,12 @@ public class LayoutUtils { return swipeHeight; } - /** - * Returns the shelf tracking distance. - */ - public static int getShelfTrackingDistance(DeviceProfile dp, + public static int getShelfTrackingDistance(Context context, DeviceProfile dp, PagedOrientationHandler orientationHandler) { - return orientationHandler.getDistanceToBottomOfRect(dp, dp.overviewTaskRect); + // Track the bottom of the window. + Rect taskSize = new Rect(); + LauncherActivityInterface.INSTANCE.calculateTaskSize(context, dp, taskSize); + return orientationHandler.getDistanceToBottomOfRect(dp, taskSize); } /** diff --git a/quickstep/src/com/android/quickstep/util/RecentsOrientedState.java b/quickstep/src/com/android/quickstep/util/RecentsOrientedState.java index 39e379771a..dec934a87b 100644 --- a/quickstep/src/com/android/quickstep/util/RecentsOrientedState.java +++ b/quickstep/src/com/android/quickstep/util/RecentsOrientedState.java @@ -25,6 +25,7 @@ import static android.view.Surface.ROTATION_90; import static com.android.launcher3.states.RotationHelper.ALLOW_ROTATION_PREFERENCE_KEY; import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR; import static com.android.launcher3.util.SettingsCache.ROTATION_SETTING_URI; +import static com.android.quickstep.BaseActivityInterface.getTaskDimension; import static java.lang.annotation.RetentionPolicy.SOURCE; @@ -397,8 +398,8 @@ public class RecentsOrientedState implements * Returns the scale and pivot so that the provided taskRect can fit the provided full size */ public float getFullScreenScaleAndPivot(Rect taskView, DeviceProfile dp, PointF outPivot) { - float scale = Math.min(dp.taskDimension.x / taskView.width(), - dp.taskDimension.y / taskView.height()); + getTaskDimension(dp, outPivot); + float scale = Math.min(outPivot.x / taskView.width(), outPivot.y / taskView.height()); if (scale == 1) { outPivot.set(taskView.centerX(), taskView.centerY()); } else { diff --git a/quickstep/src/com/android/quickstep/util/TaskViewSimulator.java b/quickstep/src/com/android/quickstep/util/TaskViewSimulator.java index c626b0ac81..d37300c7eb 100644 --- a/quickstep/src/com/android/quickstep/util/TaskViewSimulator.java +++ b/quickstep/src/com/android/quickstep/util/TaskViewSimulator.java @@ -22,6 +22,7 @@ import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITIO import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_TOP_OR_LEFT; import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_UNDEFINED; import static com.android.launcher3.util.SplitConfigurationOptions.StagePosition; +import static com.android.quickstep.TaskAnimationManager.ENABLE_SHELL_TRANSITIONS; import static com.android.quickstep.util.RecentsOrientedState.postDisplayRotation; import static com.android.quickstep.util.RecentsOrientedState.preDisplayRotation; import static com.android.systemui.shared.system.WindowManagerWrapper.WINDOWING_MODE_FULLSCREEN; @@ -144,8 +145,12 @@ public class TaskViewSimulator implements TransformParams.BuilderProxy { if (mDp == null) { return 1; } - mTaskRect.set( - mIsGridTask ? mDp.getOverviewGridTaskRect(mIsRecentsRtl) : mDp.overviewTaskRect); + if (mIsGridTask) { + mSizeStrategy.calculateGridTaskSize(mContext, mDp, mTaskRect, + mOrientationState.getOrientationHandler()); + } else { + mSizeStrategy.calculateTaskSize(mContext, mDp, mTaskRect); + } Rect fullTaskSize; if (mSplitBounds != null) { @@ -387,7 +392,14 @@ public class TaskViewSimulator implements TransformParams.BuilderProxy { .withCornerRadius(getCurrentCornerRadius()); if (ENABLE_QUICKSTEP_LIVE_TILE.get()) { - builder.withLayer(mDrawsBelowRecents ? Integer.MIN_VALUE + 1 : Integer.MAX_VALUE); + // In legacy transitions, the animation leashes remain in same hierarchy in the + // TaskDisplayArea, so we don't want to bump the layer too high otherwise it will + // conflict with layers that WM core positions (ie. the input consumers). For shell + // transitions, the animation leashes are reparented to an animation container so we + // can bump layers as needed. + builder.withLayer(mDrawsBelowRecents + ? Integer.MIN_VALUE + 1 + : ENABLE_SHELL_TRANSITIONS ? Integer.MAX_VALUE : 0); } } diff --git a/quickstep/src/com/android/quickstep/views/OverviewActionsView.java b/quickstep/src/com/android/quickstep/views/OverviewActionsView.java index c178175c7b..62ec0ef1df 100644 --- a/quickstep/src/com/android/quickstep/views/OverviewActionsView.java +++ b/quickstep/src/com/android/quickstep/views/OverviewActionsView.java @@ -93,6 +93,7 @@ public class OverviewActionsView extends FrameLayo @Nullable protected DeviceProfile mDp; + private final Rect mTaskSize = new Rect(); public OverviewActionsView(Context context) { this(context, null); @@ -243,15 +244,16 @@ public class OverviewActionsView extends FrameLayo } // Align to bottom of task Rect. - return mDp.heightPx - mDp.overviewTaskRect.bottom - mDp.overviewActionsTopMarginPx + return mDp.heightPx - mTaskSize.bottom - mDp.overviewActionsTopMarginPx - mDp.overviewActionsHeight; } /** - * Updates device profile for this view to draw with. + * Updates device profile and task size for this view to draw with. */ - public void updateDimension(DeviceProfile dp) { + public void updateDimension(DeviceProfile dp, Rect taskSize) { mDp = dp; + mTaskSize.set(taskSize); updateVerticalMargin(DisplayController.getNavigationMode(getContext())); requestLayout(); diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java index dc886f6151..cf93857cfd 100644 --- a/quickstep/src/com/android/quickstep/views/RecentsView.java +++ b/quickstep/src/com/android/quickstep/views/RecentsView.java @@ -428,6 +428,9 @@ public abstract class RecentsView= 0) { taskView = getTaskViewAt(--targetPage); } - DeviceProfile dp = mActivity.getDeviceProfile(); - Rect gridTaskRect = dp.getOverviewGridTaskRect(mIsRtl); // Target a scroll where targetPage is on left of screen but still fully visible. - int lastTaskEnd = (mIsRtl ? dp.overviewGridRect.left : dp.overviewGridRect.right) + int lastTaskEnd = (mIsRtl + ? mLastComputedGridSize.left + : mLastComputedGridSize.right) + (mIsRtl ? mPageSpacing : -mPageSpacing); - int normalTaskEnd = mIsRtl ? gridTaskRect.left : gridTaskRect.right; + int normalTaskEnd = mIsRtl + ? mLastComputedGridTaskSize.left + : mLastComputedGridTaskSize.right; int targetScroll = getScrollForPage(targetPage) + normalTaskEnd - lastTaskEnd; // Find a page that is close to targetScroll while not over it. while (targetPage - 1 >= 0 diff --git a/quickstep/src/com/android/quickstep/views/TaskView.java b/quickstep/src/com/android/quickstep/views/TaskView.java index ba56af13d3..5602d8889c 100644 --- a/quickstep/src/com/android/quickstep/views/TaskView.java +++ b/quickstep/src/com/android/quickstep/views/TaskView.java @@ -1391,8 +1391,9 @@ public class TaskView extends FrameLayout implements Reusable { DeviceProfile deviceProfile = mActivity.getDeviceProfile(); if (deviceProfile.isTablet) { final int thumbnailPadding = deviceProfile.overviewTaskThumbnailTopMarginPx; - final int taskWidth = deviceProfile.overviewTaskRect.width(); - final int taskHeight = deviceProfile.overviewTaskRect.height(); + final Rect lastComputedTaskSize = getRecentsView().getLastComputedTaskSize(); + final int taskWidth = lastComputedTaskSize.width(); + final int taskHeight = lastComputedTaskSize.height(); int boxWidth; int boxHeight; @@ -1403,9 +1404,10 @@ public class TaskView extends FrameLayout implements Reusable { boxWidth = taskWidth; boxHeight = taskHeight; } else { - // Otherwise task is in grid. - boxWidth = deviceProfile.overviewGridTaskDimension.x; - boxHeight = deviceProfile.overviewGridTaskDimension.y; + // Otherwise task is in grid, and should use lastComputedGridTaskSize. + Rect lastComputedGridTaskSize = getRecentsView().getLastComputedGridTaskSize(); + boxWidth = lastComputedGridTaskSize.width(); + boxHeight = lastComputedGridTaskSize.height(); } // Bound width/height to the box size. diff --git a/quickstep/tests/src/com/android/quickstep/DeviceProfilePhone3ButtonTest.kt b/quickstep/tests/src/com/android/quickstep/DeviceProfilePhone3ButtonTest.kt index 588e346a79..3daf81d8a6 100644 --- a/quickstep/tests/src/com/android/quickstep/DeviceProfilePhone3ButtonTest.kt +++ b/quickstep/tests/src/com/android/quickstep/DeviceProfilePhone3ButtonTest.kt @@ -483,114 +483,4 @@ class DeviceProfilePhone3ButtonTest : DeviceProfileBaseTest() { fun hotseatBarEndOffset() { assertThat(dp.hotseatBarEndOffset).isEqualTo(0) } - - @Test - fun overviewGridRectLeft() { - assertThat(dp.overviewGridRect.left).isEqualTo(0) - } - - @Test - fun overviewGridRectTop() { - assertThat(dp.overviewGridRect.top).isEqualTo(280) - } - - @Test - fun overviewGridRectRight() { - assertThat(dp.overviewGridRect.right).isEqualTo(1440) - } - - @Test - fun overviewGridRectBottom() { - assertThat(dp.overviewGridRect.bottom).isEqualTo(2768) - } - - @Test - fun taskDimensionX() { - assertThat(dp.taskDimension.x).isEqualTo(1440) - } - - @Test - fun taskDimensionY() { - assertThat(dp.taskDimension.y).isEqualTo(3120) - } - - @Test - fun overviewTaskRectLeft() { - assertThat(dp.overviewTaskRect.left).isEqualTo(231) - } - - @Test - fun overviewTaskRectTop() { - assertThat(dp.overviewTaskRect.top).isEqualTo(414) - } - - @Test - fun overviewTaskRectRight() { - assertThat(dp.overviewTaskRect.right).isEqualTo(1209) - } - - @Test - fun overviewTaskRectBottom() { - assertThat(dp.overviewTaskRect.bottom).isEqualTo(2533) - } - - @Test - fun overviewGridTaskDimensionX() { - assertThat(dp.overviewGridTaskDimension.x).isEqualTo(450) - } - - @Test - fun overviewGridTaskDimensionY() { - assertThat(dp.overviewGridTaskDimension.y).isEqualTo(976) - } - - @Test - fun overviewModalTaskRectLeft() { - assertThat(dp.overviewModalTaskRect.left).isEqualTo(182) - } - - @Test - fun overviewModalTaskRectTop() { - assertThat(dp.overviewModalTaskRect.top).isEqualTo(202) - } - - @Test - fun overviewModalTaskRectRight() { - assertThat(dp.overviewModalTaskRect.right).isEqualTo(1258) - } - - @Test - fun overviewModalTaskRectBottom() { - assertThat(dp.overviewModalTaskRect.bottom).isEqualTo(2533) - } - - @Test - fun getGridTaskRectLeft() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).left).isEqualTo(759) - } - - @Test - fun getGridTaskRectTop() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).top).isEqualTo(414) - } - - @Test - fun getGridTaskRectRight() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).right).isEqualTo(1209) - } - - @Test - fun getGridTaskRectBottom() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).bottom).isEqualTo(1390) - } - - @Test - fun overviewTaskScale() { - assertThat(dp.overviewTaskWorkspaceScale).isEqualTo(0.86595833f) - } - - @Test - fun overviewModalTaskScale() { - assertThat(dp.overviewModalTaskScale).isEqualTo(1.1000472f) - } } \ No newline at end of file diff --git a/quickstep/tests/src/com/android/quickstep/DeviceProfilePhoneTest.kt b/quickstep/tests/src/com/android/quickstep/DeviceProfilePhoneTest.kt index f91d03d50c..e588c71277 100644 --- a/quickstep/tests/src/com/android/quickstep/DeviceProfilePhoneTest.kt +++ b/quickstep/tests/src/com/android/quickstep/DeviceProfilePhoneTest.kt @@ -483,114 +483,4 @@ class DeviceProfilePhoneTest : DeviceProfileBaseTest() { fun hotseatBarEndOffset() { assertThat(dp.hotseatBarEndOffset).isEqualTo(0) } - - @Test - fun overviewGridRectLeft() { - assertThat(dp.overviewGridRect.left).isEqualTo(0) - } - - @Test - fun overviewGridRectTop() { - assertThat(dp.overviewGridRect.top).isEqualTo(280) - } - - @Test - fun overviewGridRectRight() { - assertThat(dp.overviewGridRect.right).isEqualTo(1440) - } - - @Test - fun overviewGridRectBottom() { - assertThat(dp.overviewGridRect.bottom).isEqualTo(2768) - } - - @Test - fun taskDimensionX() { - assertThat(dp.taskDimension.x).isEqualTo(1440) - } - - @Test - fun taskDimensionY() { - assertThat(dp.taskDimension.y).isEqualTo(3120) - } - - @Test - fun overviewTaskRectLeft() { - assertThat(dp.overviewTaskRect.left).isEqualTo(231) - } - - @Test - fun overviewTaskRectTop() { - assertThat(dp.overviewTaskRect.top).isEqualTo(414) - } - - @Test - fun overviewTaskRectRight() { - assertThat(dp.overviewTaskRect.right).isEqualTo(1209) - } - - @Test - fun overviewTaskRectBottom() { - assertThat(dp.overviewTaskRect.bottom).isEqualTo(2533) - } - - @Test - fun overviewGridTaskDimensionX() { - assertThat(dp.overviewGridTaskDimension.x).isEqualTo(450) - } - - @Test - fun overviewGridTaskDimensionY() { - assertThat(dp.overviewGridTaskDimension.y).isEqualTo(976) - } - - @Test - fun overviewModalTaskRectLeft() { - assertThat(dp.overviewModalTaskRect.left).isEqualTo(182) - } - - @Test - fun overviewModalTaskRectTop() { - assertThat(dp.overviewModalTaskRect.top).isEqualTo(202) - } - - @Test - fun overviewModalTaskRectRight() { - assertThat(dp.overviewModalTaskRect.right).isEqualTo(1258) - } - - @Test - fun overviewModalTaskRectBottom() { - assertThat(dp.overviewModalTaskRect.bottom).isEqualTo(2533) - } - - @Test - fun getGridTaskRectLeft() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).left).isEqualTo(759) - } - - @Test - fun getGridTaskRectTop() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).top).isEqualTo(414) - } - - @Test - fun getGridTaskRectRight() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).right).isEqualTo(1209) - } - - @Test - fun getGridTaskRectBottom() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).bottom).isEqualTo(1390) - } - - @Test - fun overviewTaskScale() { - assertThat(dp.overviewTaskWorkspaceScale).isEqualTo(0.86595833f) - } - - @Test - fun overviewModalTaskScale() { - assertThat(dp.overviewModalTaskScale).isEqualTo(1.1000472f) - } } \ No newline at end of file diff --git a/quickstep/tests/src/com/android/quickstep/DeviceProfileTabletLandscape3ButtonTest.kt b/quickstep/tests/src/com/android/quickstep/DeviceProfileTabletLandscape3ButtonTest.kt index 2d9e263a93..d0c9346e5a 100644 --- a/quickstep/tests/src/com/android/quickstep/DeviceProfileTabletLandscape3ButtonTest.kt +++ b/quickstep/tests/src/com/android/quickstep/DeviceProfileTabletLandscape3ButtonTest.kt @@ -461,7 +461,7 @@ class DeviceProfileTabletLandscape3ButtonTest : DeviceProfileBaseTest() { @Test fun getHotseatLayoutPaddingLeft() { - assertThat(dp.getHotseatLayoutPadding(context).left).isEqualTo(1443) + assertThat(dp.getHotseatLayoutPadding(context).left).isEqualTo(1305) } @Test @@ -471,7 +471,7 @@ class DeviceProfileTabletLandscape3ButtonTest : DeviceProfileBaseTest() { @Test fun getHotseatLayoutPaddingRight() { - assertThat(dp.getHotseatLayoutPadding(context).right).isEqualTo(428) + assertThat(dp.getHotseatLayoutPadding(context).right).isEqualTo(566) } @Test @@ -481,116 +481,6 @@ class DeviceProfileTabletLandscape3ButtonTest : DeviceProfileBaseTest() { @Test fun hotseatBarEndOffset() { - assertThat(dp.hotseatBarEndOffset).isEqualTo(428) - } - - @Test - fun overviewGridRectLeft() { - assertThat(dp.overviewGridRect.left).isEqualTo(128) - } - - @Test - fun overviewGridRectTop() { - assertThat(dp.overviewGridRect.top).isEqualTo(160) - } - - @Test - fun overviewGridRectRight() { - assertThat(dp.overviewGridRect.right).isEqualTo(2432) - } - - @Test - fun overviewGridRectBottom() { - assertThat(dp.overviewGridRect.bottom).isEqualTo(1340) - } - - @Test - fun taskDimensionX() { - assertThat(dp.taskDimension.x).isEqualTo(2560) - } - - @Test - fun taskDimensionY() { - assertThat(dp.taskDimension.y).isEqualTo(1480) - } - - @Test - fun overviewTaskRectLeft() { - assertThat(dp.overviewTaskRect.left).isEqualTo(384) - } - - @Test - fun overviewTaskRectTop() { - assertThat(dp.overviewTaskRect.top).isEqualTo(232) - } - - @Test - fun overviewTaskRectRight() { - assertThat(dp.overviewTaskRect.right).isEqualTo(2176) - } - - @Test - fun overviewTaskRectBottom() { - assertThat(dp.overviewTaskRect.bottom).isEqualTo(1268) - } - - @Test - fun overviewGridTaskDimensionX() { - assertThat(dp.overviewGridTaskDimension.x).isEqualTo(723) - } - - @Test - fun overviewGridTaskDimensionY() { - assertThat(dp.overviewGridTaskDimension.y).isEqualTo(418) - } - - @Test - fun overviewModalTaskRectLeft() { - assertThat(dp.overviewModalTaskRect.left).isEqualTo(294) - } - - @Test - fun overviewModalTaskRectTop() { - assertThat(dp.overviewModalTaskRect.top).isEqualTo(128) - } - - @Test - fun overviewModalTaskRectRight() { - assertThat(dp.overviewModalTaskRect.right).isEqualTo(2266) - } - - @Test - fun overviewModalTaskRectBottom() { - assertThat(dp.overviewModalTaskRect.bottom).isEqualTo(1268) - } - - @Test - fun getGridTaskRectLeft() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).left).isEqualTo(1453) - } - - @Test - fun getGridTaskRectTop() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).top).isEqualTo(232) - } - - @Test - fun getGridTaskRectRight() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).right).isEqualTo(2176) - } - - @Test - fun getGridTaskRectBottom() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).bottom).isEqualTo(650) - } - - @Test - fun overviewTaskScale() { - assertThat(dp.overviewTaskWorkspaceScale).isEqualTo(0.7363184f) - } - - @Test - fun overviewModalTaskScale() { - assertThat(dp.overviewModalTaskScale).isEqualTo(1.1003861f) + assertThat(dp.hotseatBarEndOffset).isEqualTo(566) } } \ No newline at end of file diff --git a/quickstep/tests/src/com/android/quickstep/DeviceProfileTabletLandscapeTest.kt b/quickstep/tests/src/com/android/quickstep/DeviceProfileTabletLandscapeTest.kt index 3add2c7269..456ed2cfc0 100644 --- a/quickstep/tests/src/com/android/quickstep/DeviceProfileTabletLandscapeTest.kt +++ b/quickstep/tests/src/com/android/quickstep/DeviceProfileTabletLandscapeTest.kt @@ -483,114 +483,4 @@ class DeviceProfileTabletLandscapeTest : DeviceProfileBaseTest() { fun hotseatBarEndOffset() { assertThat(dp.hotseatBarEndOffset).isEqualTo(0) } - - @Test - fun overviewGridRectLeft() { - assertThat(dp.overviewGridRect.left).isEqualTo(128) - } - - @Test - fun overviewGridRectTop() { - assertThat(dp.overviewGridRect.top).isEqualTo(160) - } - - @Test - fun overviewGridRectRight() { - assertThat(dp.overviewGridRect.right).isEqualTo(2432) - } - - @Test - fun overviewGridRectBottom() { - assertThat(dp.overviewGridRect.bottom).isEqualTo(1416) - } - - @Test - fun taskDimensionX() { - assertThat(dp.taskDimension.x).isEqualTo(2560) - } - - @Test - fun taskDimensionY() { - assertThat(dp.taskDimension.y).isEqualTo(1480) - } - - @Test - fun overviewTaskRectLeft() { - assertThat(dp.overviewTaskRect.left).isEqualTo(384) - } - - @Test - fun overviewTaskRectTop() { - assertThat(dp.overviewTaskRect.top).isEqualTo(270) - } - - @Test - fun overviewTaskRectRight() { - assertThat(dp.overviewTaskRect.right).isEqualTo(2176) - } - - @Test - fun overviewTaskRectBottom() { - assertThat(dp.overviewTaskRect.bottom).isEqualTo(1306) - } - - @Test - fun overviewGridTaskDimensionX() { - assertThat(dp.overviewGridTaskDimension.x).isEqualTo(723) - } - - @Test - fun overviewGridTaskDimensionY() { - assertThat(dp.overviewGridTaskDimension.y).isEqualTo(418) - } - - @Test - fun overviewModalTaskRectLeft() { - assertThat(dp.overviewModalTaskRect.left).isEqualTo(294) - } - - @Test - fun overviewModalTaskRectTop() { - assertThat(dp.overviewModalTaskRect.top).isEqualTo(166) - } - - @Test - fun overviewModalTaskRectRight() { - assertThat(dp.overviewModalTaskRect.right).isEqualTo(2266) - } - - @Test - fun overviewModalTaskRectBottom() { - assertThat(dp.overviewModalTaskRect.bottom).isEqualTo(1306) - } - - @Test - fun getGridTaskRectLeft() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).left).isEqualTo(1453) - } - - @Test - fun getGridTaskRectTop() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).top).isEqualTo(270) - } - - @Test - fun getGridTaskRectRight() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).right).isEqualTo(2176) - } - - @Test - fun getGridTaskRectBottom() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).bottom).isEqualTo(688) - } - - @Test - fun overviewTaskScale() { - assertThat(dp.overviewTaskWorkspaceScale).isEqualTo(0.7363184f) - } - - @Test - fun overviewModalTaskScale() { - assertThat(dp.overviewModalTaskScale).isEqualTo(1.1003861f) - } } \ No newline at end of file diff --git a/quickstep/tests/src/com/android/quickstep/DeviceProfileTabletPortrait3ButtonTest.kt b/quickstep/tests/src/com/android/quickstep/DeviceProfileTabletPortrait3ButtonTest.kt index 7f0d6ca022..eed359896f 100644 --- a/quickstep/tests/src/com/android/quickstep/DeviceProfileTabletPortrait3ButtonTest.kt +++ b/quickstep/tests/src/com/android/quickstep/DeviceProfileTabletPortrait3ButtonTest.kt @@ -481,116 +481,6 @@ class DeviceProfileTabletPortrait3ButtonTest : DeviceProfileBaseTest() { @Test fun hotseatBarEndOffset() { - assertThat(dp.hotseatBarEndOffset).isEqualTo(428) - } - - @Test - fun overviewGridRectLeft() { - assertThat(dp.overviewGridRect.left).isEqualTo(128) - } - - @Test - fun overviewGridRectTop() { - assertThat(dp.overviewGridRect.top).isEqualTo(160) - } - - @Test - fun overviewGridRectRight() { - assertThat(dp.overviewGridRect.right).isEqualTo(1472) - } - - @Test - fun overviewGridRectBottom() { - assertThat(dp.overviewGridRect.bottom).isEqualTo(2292) - } - - @Test - fun taskDimensionX() { - assertThat(dp.taskDimension.x).isEqualTo(1600) - } - - @Test - fun taskDimensionY() { - assertThat(dp.taskDimension.y).isEqualTo(2440) - } - - @Test - fun overviewTaskRectLeft() { - assertThat(dp.overviewTaskRect.left).isEqualTo(240) - } - - @Test - fun overviewTaskRectTop() { - assertThat(dp.overviewTaskRect.top).isEqualTo(372) - } - - @Test - fun overviewTaskRectRight() { - assertThat(dp.overviewTaskRect.right).isEqualTo(1360) - } - - @Test - fun overviewTaskRectBottom() { - assertThat(dp.overviewTaskRect.bottom).isEqualTo(2080) - } - - @Test - fun overviewGridTaskDimensionX() { - assertThat(dp.overviewGridTaskDimension.x).isEqualTo(494) - } - - @Test - fun overviewGridTaskDimensionY() { - assertThat(dp.overviewGridTaskDimension.y).isEqualTo(754) - } - - @Test - fun overviewModalTaskRectLeft() { - assertThat(dp.overviewModalTaskRect.left).isEqualTo(184) - } - - @Test - fun overviewModalTaskRectTop() { - assertThat(dp.overviewModalTaskRect.top).isEqualTo(201) - } - - @Test - fun overviewModalTaskRectRight() { - assertThat(dp.overviewModalTaskRect.right).isEqualTo(1416) - } - - @Test - fun overviewModalTaskRectBottom() { - assertThat(dp.overviewModalTaskRect.bottom).isEqualTo(2080) - } - - @Test - fun getGridTaskRectLeft() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).left).isEqualTo(866) - } - - @Test - fun getGridTaskRectTop() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).top).isEqualTo(372) - } - - @Test - fun getGridTaskRectRight() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).right).isEqualTo(1360) - } - - @Test - fun getGridTaskRectBottom() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).bottom).isEqualTo(1126) - } - - @Test - fun overviewTaskScale() { - assertThat(dp.overviewTaskWorkspaceScale).isEqualTo(0.7686769f) - } - - @Test - fun overviewModalTaskScale() { - assertThat(dp.overviewModalTaskScale).isEqualTo(1.1f) + assertThat(dp.hotseatBarEndOffset).isEqualTo(502) } } \ No newline at end of file diff --git a/quickstep/tests/src/com/android/quickstep/DeviceProfileTabletPortraitTest.kt b/quickstep/tests/src/com/android/quickstep/DeviceProfileTabletPortraitTest.kt index 1a709e6f7a..4be3e45dce 100644 --- a/quickstep/tests/src/com/android/quickstep/DeviceProfileTabletPortraitTest.kt +++ b/quickstep/tests/src/com/android/quickstep/DeviceProfileTabletPortraitTest.kt @@ -483,114 +483,4 @@ class DeviceProfileTabletPortraitTest : DeviceProfileBaseTest() { fun hotseatBarEndOffset() { assertThat(dp.hotseatBarEndOffset).isEqualTo(0) } - - @Test - fun overviewGridRectLeft() { - assertThat(dp.overviewGridRect.left).isEqualTo(128) - } - - @Test - fun overviewGridRectTop() { - assertThat(dp.overviewGridRect.top).isEqualTo(160) - } - - @Test - fun overviewGridRectRight() { - assertThat(dp.overviewGridRect.right).isEqualTo(1472) - } - - @Test - fun overviewGridRectBottom() { - assertThat(dp.overviewGridRect.bottom).isEqualTo(2368) - } - - @Test - fun taskDimensionX() { - assertThat(dp.taskDimension.x).isEqualTo(1600) - } - - @Test - fun taskDimensionY() { - assertThat(dp.taskDimension.y).isEqualTo(2440) - } - - @Test - fun overviewTaskRectLeft() { - assertThat(dp.overviewTaskRect.left).isEqualTo(240) - } - - @Test - fun overviewTaskRectTop() { - assertThat(dp.overviewTaskRect.top).isEqualTo(410) - } - - @Test - fun overviewTaskRectRight() { - assertThat(dp.overviewTaskRect.right).isEqualTo(1360) - } - - @Test - fun overviewTaskRectBottom() { - assertThat(dp.overviewTaskRect.bottom).isEqualTo(2118) - } - - @Test - fun overviewGridTaskDimensionX() { - assertThat(dp.overviewGridTaskDimension.x).isEqualTo(494) - } - - @Test - fun overviewGridTaskDimensionY() { - assertThat(dp.overviewGridTaskDimension.y).isEqualTo(754) - } - - @Test - fun overviewModalTaskRectLeft() { - assertThat(dp.overviewModalTaskRect.left).isEqualTo(184) - } - - @Test - fun overviewModalTaskRectTop() { - assertThat(dp.overviewModalTaskRect.top).isEqualTo(239) - } - - @Test - fun overviewModalTaskRectRight() { - assertThat(dp.overviewModalTaskRect.right).isEqualTo(1416) - } - - @Test - fun overviewModalTaskRectBottom() { - assertThat(dp.overviewModalTaskRect.bottom).isEqualTo(2118) - } - - @Test - fun getGridTaskRectLeft() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).left).isEqualTo(866) - } - - @Test - fun getGridTaskRectTop() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).top).isEqualTo(410) - } - - @Test - fun getGridTaskRectRight() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).right).isEqualTo(1360) - } - - @Test - fun getGridTaskRectBottom() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).bottom).isEqualTo(1164) - } - - @Test - fun overviewTaskScale() { - assertThat(dp.overviewTaskWorkspaceScale).isEqualTo(0.7686769f) - } - - @Test - fun overviewModalTaskScale() { - assertThat(dp.overviewModalTaskScale).isEqualTo(1.1f) - } } \ No newline at end of file diff --git a/quickstep/tests/src/com/android/quickstep/DeviceProfileTwoPanelLandscape3ButtonTest.kt b/quickstep/tests/src/com/android/quickstep/DeviceProfileTwoPanelLandscape3ButtonTest.kt index 0eeb23dede..6728540f71 100644 --- a/quickstep/tests/src/com/android/quickstep/DeviceProfileTwoPanelLandscape3ButtonTest.kt +++ b/quickstep/tests/src/com/android/quickstep/DeviceProfileTwoPanelLandscape3ButtonTest.kt @@ -481,116 +481,6 @@ class DeviceProfileTwoPanelLandscape3ButtonTest : DeviceProfileBaseTest() { @Test fun hotseatBarEndOffset() { - assertThat(dp.hotseatBarEndOffset).isEqualTo(428) - } - - @Test - fun overviewGridRectLeft() { - assertThat(dp.overviewGridRect.left).isEqualTo(128) - } - - @Test - fun overviewGridRectTop() { - assertThat(dp.overviewGridRect.top).isEqualTo(160) - } - - @Test - fun overviewGridRectRight() { - assertThat(dp.overviewGridRect.right).isEqualTo(2432) - } - - @Test - fun overviewGridRectBottom() { - assertThat(dp.overviewGridRect.bottom).isEqualTo(1340) - } - - @Test - fun taskDimensionX() { - assertThat(dp.taskDimension.x).isEqualTo(2560) - } - - @Test - fun taskDimensionY() { - assertThat(dp.taskDimension.y).isEqualTo(1480) - } - - @Test - fun overviewTaskRectLeft() { - assertThat(dp.overviewTaskRect.left).isEqualTo(384) - } - - @Test - fun overviewTaskRectTop() { - assertThat(dp.overviewTaskRect.top).isEqualTo(232) - } - - @Test - fun overviewTaskRectRight() { - assertThat(dp.overviewTaskRect.right).isEqualTo(2176) - } - - @Test - fun overviewTaskRectBottom() { - assertThat(dp.overviewTaskRect.bottom).isEqualTo(1268) - } - - @Test - fun overviewGridTaskDimensionX() { - assertThat(dp.overviewGridTaskDimension.x).isEqualTo(723) - } - - @Test - fun overviewGridTaskDimensionY() { - assertThat(dp.overviewGridTaskDimension.y).isEqualTo(418) - } - - @Test - fun overviewModalTaskRectLeft() { - assertThat(dp.overviewModalTaskRect.left).isEqualTo(294) - } - - @Test - fun overviewModalTaskRectTop() { - assertThat(dp.overviewModalTaskRect.top).isEqualTo(128) - } - - @Test - fun overviewModalTaskRectRight() { - assertThat(dp.overviewModalTaskRect.right).isEqualTo(2266) - } - - @Test - fun overviewModalTaskRectBottom() { - assertThat(dp.overviewModalTaskRect.bottom).isEqualTo(1268) - } - - @Test - fun getGridTaskRectLeft() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).left).isEqualTo(1453) - } - - @Test - fun getGridTaskRectTop() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).top).isEqualTo(232) - } - - @Test - fun getGridTaskRectRight() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).right).isEqualTo(2176) - } - - @Test - fun getGridTaskRectBottom() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).bottom).isEqualTo(650) - } - - @Test - fun overviewTaskScale() { - assertThat(dp.overviewTaskWorkspaceScale).isEqualTo(0.8526749f) - } - - @Test - fun overviewModalTaskScale() { - assertThat(dp.overviewModalTaskScale).isEqualTo(1.1003861f) + assertThat(dp.hotseatBarEndOffset).isEqualTo(566) } } \ No newline at end of file diff --git a/quickstep/tests/src/com/android/quickstep/DeviceProfileTwoPanelLandscapeTest.kt b/quickstep/tests/src/com/android/quickstep/DeviceProfileTwoPanelLandscapeTest.kt index 7bf53d7453..ba3ef55e3c 100644 --- a/quickstep/tests/src/com/android/quickstep/DeviceProfileTwoPanelLandscapeTest.kt +++ b/quickstep/tests/src/com/android/quickstep/DeviceProfileTwoPanelLandscapeTest.kt @@ -483,114 +483,4 @@ class DeviceProfileTwoPanelLandscapeTest : DeviceProfileBaseTest() { fun hotseatBarEndOffset() { assertThat(dp.hotseatBarEndOffset).isEqualTo(0) } - - @Test - fun overviewGridRectLeft() { - assertThat(dp.overviewGridRect.left).isEqualTo(128) - } - - @Test - fun overviewGridRectTop() { - assertThat(dp.overviewGridRect.top).isEqualTo(160) - } - - @Test - fun overviewGridRectRight() { - assertThat(dp.overviewGridRect.right).isEqualTo(2432) - } - - @Test - fun overviewGridRectBottom() { - assertThat(dp.overviewGridRect.bottom).isEqualTo(1416) - } - - @Test - fun taskDimensionX() { - assertThat(dp.taskDimension.x).isEqualTo(2560) - } - - @Test - fun taskDimensionY() { - assertThat(dp.taskDimension.y).isEqualTo(1480) - } - - @Test - fun overviewTaskRectLeft() { - assertThat(dp.overviewTaskRect.left).isEqualTo(384) - } - - @Test - fun overviewTaskRectTop() { - assertThat(dp.overviewTaskRect.top).isEqualTo(270) - } - - @Test - fun overviewTaskRectRight() { - assertThat(dp.overviewTaskRect.right).isEqualTo(2176) - } - - @Test - fun overviewTaskRectBottom() { - assertThat(dp.overviewTaskRect.bottom).isEqualTo(1306) - } - - @Test - fun overviewGridTaskDimensionX() { - assertThat(dp.overviewGridTaskDimension.x).isEqualTo(723) - } - - @Test - fun overviewGridTaskDimensionY() { - assertThat(dp.overviewGridTaskDimension.y).isEqualTo(418) - } - - @Test - fun overviewModalTaskRectLeft() { - assertThat(dp.overviewModalTaskRect.left).isEqualTo(294) - } - - @Test - fun overviewModalTaskRectTop() { - assertThat(dp.overviewModalTaskRect.top).isEqualTo(166) - } - - @Test - fun overviewModalTaskRectRight() { - assertThat(dp.overviewModalTaskRect.right).isEqualTo(2266) - } - - @Test - fun overviewModalTaskRectBottom() { - assertThat(dp.overviewModalTaskRect.bottom).isEqualTo(1306) - } - - @Test - fun getGridTaskRectLeft() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).left).isEqualTo(1453) - } - - @Test - fun getGridTaskRectTop() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).top).isEqualTo(270) - } - - @Test - fun getGridTaskRectRight() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).right).isEqualTo(2176) - } - - @Test - fun getGridTaskRectBottom() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).bottom).isEqualTo(688) - } - - @Test - fun overviewTaskScale() { - assertThat(dp.overviewTaskWorkspaceScale).isEqualTo(0.8526749f) - } - - @Test - fun overviewModalTaskScale() { - assertThat(dp.overviewModalTaskScale).isEqualTo(1.1003861f) - } } \ No newline at end of file diff --git a/quickstep/tests/src/com/android/quickstep/DeviceProfileTwoPanelPortrait3ButtonTest.kt b/quickstep/tests/src/com/android/quickstep/DeviceProfileTwoPanelPortrait3ButtonTest.kt index 9b6d7d55f2..a4b446aea1 100644 --- a/quickstep/tests/src/com/android/quickstep/DeviceProfileTwoPanelPortrait3ButtonTest.kt +++ b/quickstep/tests/src/com/android/quickstep/DeviceProfileTwoPanelPortrait3ButtonTest.kt @@ -461,7 +461,7 @@ class DeviceProfileTwoPanelPortrait3ButtonTest : DeviceProfileBaseTest() { @Test fun getHotseatLayoutPaddingLeft() { - assertThat(dp.getHotseatLayoutPadding(context).left).isEqualTo(340) + assertThat(dp.getHotseatLayoutPadding(context).left).isEqualTo(266) } @Test @@ -471,7 +471,7 @@ class DeviceProfileTwoPanelPortrait3ButtonTest : DeviceProfileBaseTest() { @Test fun getHotseatLayoutPaddingRight() { - assertThat(dp.getHotseatLayoutPadding(context).right).isEqualTo(428) + assertThat(dp.getHotseatLayoutPadding(context).right).isEqualTo(502) } @Test @@ -481,116 +481,6 @@ class DeviceProfileTwoPanelPortrait3ButtonTest : DeviceProfileBaseTest() { @Test fun hotseatBarEndOffset() { - assertThat(dp.hotseatBarEndOffset).isEqualTo(428) - } - - @Test - fun overviewGridRectLeft() { - assertThat(dp.overviewGridRect.left).isEqualTo(128) - } - - @Test - fun overviewGridRectTop() { - assertThat(dp.overviewGridRect.top).isEqualTo(160) - } - - @Test - fun overviewGridRectRight() { - assertThat(dp.overviewGridRect.right).isEqualTo(1472) - } - - @Test - fun overviewGridRectBottom() { - assertThat(dp.overviewGridRect.bottom).isEqualTo(2292) - } - - @Test - fun taskDimensionX() { - assertThat(dp.taskDimension.x).isEqualTo(1600) - } - - @Test - fun taskDimensionY() { - assertThat(dp.taskDimension.y).isEqualTo(2440) - } - - @Test - fun overviewTaskRectLeft() { - assertThat(dp.overviewTaskRect.left).isEqualTo(240) - } - - @Test - fun overviewTaskRectTop() { - assertThat(dp.overviewTaskRect.top).isEqualTo(372) - } - - @Test - fun overviewTaskRectRight() { - assertThat(dp.overviewTaskRect.right).isEqualTo(1360) - } - - @Test - fun overviewTaskRectBottom() { - assertThat(dp.overviewTaskRect.bottom).isEqualTo(2080) - } - - @Test - fun overviewGridTaskDimensionX() { - assertThat(dp.overviewGridTaskDimension.x).isEqualTo(494) - } - - @Test - fun overviewGridTaskDimensionY() { - assertThat(dp.overviewGridTaskDimension.y).isEqualTo(754) - } - - @Test - fun overviewModalTaskRectLeft() { - assertThat(dp.overviewModalTaskRect.left).isEqualTo(184) - } - - @Test - fun overviewModalTaskRectTop() { - assertThat(dp.overviewModalTaskRect.top).isEqualTo(201) - } - - @Test - fun overviewModalTaskRectRight() { - assertThat(dp.overviewModalTaskRect.right).isEqualTo(1416) - } - - @Test - fun overviewModalTaskRectBottom() { - assertThat(dp.overviewModalTaskRect.bottom).isEqualTo(2080) - } - - @Test - fun getGridTaskRectLeft() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).left).isEqualTo(866) - } - - @Test - fun getGridTaskRectTop() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).top).isEqualTo(372) - } - - @Test - fun getGridTaskRectRight() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).right).isEqualTo(1360) - } - - @Test - fun getGridTaskRectBottom() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).bottom).isEqualTo(1126) - } - - @Test - fun overviewTaskScale() { - assertThat(dp.overviewTaskWorkspaceScale).isEqualTo(0.7874597f) - } - - @Test - fun overviewModalTaskScale() { - assertThat(dp.overviewModalTaskScale).isEqualTo(1.1f) + assertThat(dp.hotseatBarEndOffset).isEqualTo(502) } } \ No newline at end of file diff --git a/quickstep/tests/src/com/android/quickstep/DeviceProfileTwoPanelPortraitTest.kt b/quickstep/tests/src/com/android/quickstep/DeviceProfileTwoPanelPortraitTest.kt index 6702eb5d46..0c5968e1ef 100644 --- a/quickstep/tests/src/com/android/quickstep/DeviceProfileTwoPanelPortraitTest.kt +++ b/quickstep/tests/src/com/android/quickstep/DeviceProfileTwoPanelPortraitTest.kt @@ -483,114 +483,4 @@ class DeviceProfileTwoPanelPortraitTest : DeviceProfileBaseTest() { fun hotseatBarEndOffset() { assertThat(dp.hotseatBarEndOffset).isEqualTo(0) } - - @Test - fun overviewGridRectLeft() { - assertThat(dp.overviewGridRect.left).isEqualTo(128) - } - - @Test - fun overviewGridRectTop() { - assertThat(dp.overviewGridRect.top).isEqualTo(160) - } - - @Test - fun overviewGridRectRight() { - assertThat(dp.overviewGridRect.right).isEqualTo(1472) - } - - @Test - fun overviewGridRectBottom() { - assertThat(dp.overviewGridRect.bottom).isEqualTo(2368) - } - - @Test - fun taskDimensionX() { - assertThat(dp.taskDimension.x).isEqualTo(1600) - } - - @Test - fun taskDimensionY() { - assertThat(dp.taskDimension.y).isEqualTo(2440) - } - - @Test - fun overviewTaskRectLeft() { - assertThat(dp.overviewTaskRect.left).isEqualTo(240) - } - - @Test - fun overviewTaskRectTop() { - assertThat(dp.overviewTaskRect.top).isEqualTo(410) - } - - @Test - fun overviewTaskRectRight() { - assertThat(dp.overviewTaskRect.right).isEqualTo(1360) - } - - @Test - fun overviewTaskRectBottom() { - assertThat(dp.overviewTaskRect.bottom).isEqualTo(2118) - } - - @Test - fun overviewGridTaskDimensionX() { - assertThat(dp.overviewGridTaskDimension.x).isEqualTo(494) - } - - @Test - fun overviewGridTaskDimensionY() { - assertThat(dp.overviewGridTaskDimension.y).isEqualTo(754) - } - - @Test - fun overviewModalTaskRectLeft() { - assertThat(dp.overviewModalTaskRect.left).isEqualTo(184) - } - - @Test - fun overviewModalTaskRectTop() { - assertThat(dp.overviewModalTaskRect.top).isEqualTo(239) - } - - @Test - fun overviewModalTaskRectRight() { - assertThat(dp.overviewModalTaskRect.right).isEqualTo(1416) - } - - @Test - fun overviewModalTaskRectBottom() { - assertThat(dp.overviewModalTaskRect.bottom).isEqualTo(2118) - } - - @Test - fun getGridTaskRectLeft() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).left).isEqualTo(866) - } - - @Test - fun getGridTaskRectTop() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).top).isEqualTo(410) - } - - @Test - fun getGridTaskRectRight() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).right).isEqualTo(1360) - } - - @Test - fun getGridTaskRectBottom() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).bottom).isEqualTo(1164) - } - - @Test - fun overviewTaskScale() { - assertThat(dp.overviewTaskWorkspaceScale).isEqualTo(0.7874597f) - } - - @Test - fun overviewModalTaskScale() { - assertThat(dp.overviewModalTaskScale).isEqualTo(1.1f) - } } \ No newline at end of file diff --git a/quickstep/tests/src/com/android/quickstep/DeviceProfileVerticalBar3ButtonTest.kt b/quickstep/tests/src/com/android/quickstep/DeviceProfileVerticalBar3ButtonTest.kt index 7e0c5f3b9b..2bad6bb20b 100644 --- a/quickstep/tests/src/com/android/quickstep/DeviceProfileVerticalBar3ButtonTest.kt +++ b/quickstep/tests/src/com/android/quickstep/DeviceProfileVerticalBar3ButtonTest.kt @@ -483,114 +483,4 @@ class DeviceProfileVerticalBar3ButtonTest : DeviceProfileBaseTest() { fun hotseatBarEndOffset() { assertThat(dp.hotseatBarEndOffset).isEqualTo(0) } - - @Test - fun overviewGridRectLeft() { - assertThat(dp.overviewGridRect.left).isEqualTo(0) - } - - @Test - fun overviewGridRectTop() { - assertThat(dp.overviewGridRect.top).isEqualTo(280) - } - - @Test - fun overviewGridRectRight() { - assertThat(dp.overviewGridRect.right).isEqualTo(3120) - } - - @Test - fun overviewGridRectBottom() { - assertThat(dp.overviewGridRect.bottom).isEqualTo(1130) - } - - @Test - fun taskDimensionX() { - assertThat(dp.taskDimension.x).isEqualTo(3120) - } - - @Test - fun taskDimensionY() { - assertThat(dp.taskDimension.y).isEqualTo(1440) - } - - @Test - fun overviewTaskRectLeft() { - assertThat(dp.overviewTaskRect.left).isEqualTo(747) - } - - @Test - fun overviewTaskRectTop() { - assertThat(dp.overviewTaskRect.top).isEqualTo(280) - } - - @Test - fun overviewTaskRectRight() { - assertThat(dp.overviewTaskRect.right).isEqualTo(2372) - } - - @Test - fun overviewTaskRectBottom() { - assertThat(dp.overviewTaskRect.bottom).isEqualTo(1030) - } - - @Test - fun overviewGridTaskDimensionX() { - assertThat(dp.overviewGridTaskDimension.x).isEqualTo(631) - } - - @Test - fun overviewGridTaskDimensionY() { - assertThat(dp.overviewGridTaskDimension.y).isEqualTo(291) - } - - @Test - fun overviewModalTaskRectLeft() { - assertThat(dp.overviewModalTaskRect.left).isEqualTo(666) - } - - @Test - fun overviewModalTaskRectTop() { - assertThat(dp.overviewModalTaskRect.top).isEqualTo(205) - } - - @Test - fun overviewModalTaskRectRight() { - assertThat(dp.overviewModalTaskRect.right).isEqualTo(2454) - } - - @Test - fun overviewModalTaskRectBottom() { - assertThat(dp.overviewModalTaskRect.bottom).isEqualTo(1030) - } - - @Test - fun getGridTaskRectLeft() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).left).isEqualTo(1741) - } - - @Test - fun getGridTaskRectTop() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).top).isEqualTo(280) - } - - @Test - fun getGridTaskRectRight() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).right).isEqualTo(2372) - } - - @Test - fun getGridTaskRectBottom() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).bottom).isEqualTo(571) - } - - @Test - fun overviewTaskScale() { - assertThat(dp.overviewTaskWorkspaceScale).isEqualTo(0.5597015f) - } - - @Test - fun overviewModalTaskScale() { - assertThat(dp.overviewModalTaskScale).isEqualTo(1.1f) - } } \ No newline at end of file diff --git a/quickstep/tests/src/com/android/quickstep/DeviceProfileVerticalBarTest.kt b/quickstep/tests/src/com/android/quickstep/DeviceProfileVerticalBarTest.kt index 9580458a13..6256a43f75 100644 --- a/quickstep/tests/src/com/android/quickstep/DeviceProfileVerticalBarTest.kt +++ b/quickstep/tests/src/com/android/quickstep/DeviceProfileVerticalBarTest.kt @@ -483,114 +483,4 @@ class DeviceProfileVerticalBarTest : DeviceProfileBaseTest() { fun hotseatBarEndOffset() { assertThat(dp.hotseatBarEndOffset).isEqualTo(0) } - - @Test - fun overviewGridRectLeft() { - assertThat(dp.overviewGridRect.left).isEqualTo(0) - } - - @Test - fun overviewGridRectTop() { - assertThat(dp.overviewGridRect.top).isEqualTo(280) - } - - @Test - fun overviewGridRectRight() { - assertThat(dp.overviewGridRect.right).isEqualTo(3120) - } - - @Test - fun overviewGridRectBottom() { - assertThat(dp.overviewGridRect.bottom).isEqualTo(1130) - } - - @Test - fun taskDimensionX() { - assertThat(dp.taskDimension.x).isEqualTo(3120) - } - - @Test - fun taskDimensionY() { - assertThat(dp.taskDimension.y).isEqualTo(1440) - } - - @Test - fun overviewTaskRectLeft() { - assertThat(dp.overviewTaskRect.left).isEqualTo(747) - } - - @Test - fun overviewTaskRectTop() { - assertThat(dp.overviewTaskRect.top).isEqualTo(280) - } - - @Test - fun overviewTaskRectRight() { - assertThat(dp.overviewTaskRect.right).isEqualTo(2372) - } - - @Test - fun overviewTaskRectBottom() { - assertThat(dp.overviewTaskRect.bottom).isEqualTo(1030) - } - - @Test - fun overviewGridTaskDimensionX() { - assertThat(dp.overviewGridTaskDimension.x).isEqualTo(631) - } - - @Test - fun overviewGridTaskDimensionY() { - assertThat(dp.overviewGridTaskDimension.y).isEqualTo(291) - } - - @Test - fun overviewModalTaskRectLeft() { - assertThat(dp.overviewModalTaskRect.left).isEqualTo(666) - } - - @Test - fun overviewModalTaskRectTop() { - assertThat(dp.overviewModalTaskRect.top).isEqualTo(205) - } - - @Test - fun overviewModalTaskRectRight() { - assertThat(dp.overviewModalTaskRect.right).isEqualTo(2454) - } - - @Test - fun overviewModalTaskRectBottom() { - assertThat(dp.overviewModalTaskRect.bottom).isEqualTo(1030) - } - - @Test - fun getGridTaskRectLeft() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).left).isEqualTo(1741) - } - - @Test - fun getGridTaskRectTop() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).top).isEqualTo(280) - } - - @Test - fun getGridTaskRectRight() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).right).isEqualTo(2372) - } - - @Test - fun getGridTaskRectBottom() { - assertThat(dp.getOverviewGridTaskRect(isRecentsRtl).bottom).isEqualTo(571) - } - - @Test - fun overviewTaskScale() { - assertThat(dp.overviewTaskWorkspaceScale).isEqualTo(0.5597015f) - } - - @Test - fun overviewModalTaskScale() { - assertThat(dp.overviewModalTaskScale).isEqualTo(1.1f) - } } \ No newline at end of file diff --git a/res/values/attrs.xml b/res/values/attrs.xml index e5b588ccf8..3b7158547c 100644 --- a/res/values/attrs.xml +++ b/res/values/attrs.xml @@ -176,6 +176,10 @@ + + + diff --git a/res/values/dimens.xml b/res/values/dimens.xml index dc80bc3df0..b19e73920b 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -363,6 +363,12 @@ 0dp 0dp 0dp + 0dp + 0dp + 0dp + 0dp + 0dp + 0dp 16dp @@ -383,9 +389,6 @@ 0dp 0dp 0dp - 0dp - 0.0 - 0.0 72dp 16dp 44dp diff --git a/res/xml/device_profiles.xml b/res/xml/device_profiles.xml index 5ee291b08e..0238e7d972 100644 --- a/res/xml/device_profiles.xml +++ b/res/xml/device_profiles.xml @@ -26,7 +26,7 @@ launcher:numHotseatIcons="3" launcher:dbFile="launcher_3_by_3.db" launcher:defaultLayoutId="@xml/default_workspace_3x3" - launcher:deviceCategory="phone|multi_display" > + launcher:deviceCategory="phone" > @@ -121,6 +122,7 @@ launcher:numFolderColumns="4" launcher:numHotseatIcons="5" launcher:dbFile="launcher.db" + launcher:inlineNavButtonsEndSpacing="@dimen/taskbar_button_margin_5_5" launcher:defaultLayoutId="@xml/default_workspace_5x5" launcher:deviceCategory="phone|multi_display" > @@ -167,6 +169,7 @@ launcher:hotseatColumnSpanLandscape="4" launcher:numAllAppsColumns="6" launcher:isScalable="true" + launcher:inlineNavButtonsEndSpacing="@dimen/taskbar_button_margin_6_5" launcher:devicePaddingId="@xml/paddings_6x5" launcher:dbFile="launcher_6_by_5.db" launcher:defaultLayoutId="@xml/default_workspace_6x5" diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java index d09642a225..3a2227afe4 100644 --- a/src/com/android/launcher3/DeviceProfile.java +++ b/src/com/android/launcher3/DeviceProfile.java @@ -34,7 +34,6 @@ import android.graphics.Point; import android.graphics.PointF; import android.graphics.Rect; import android.util.DisplayMetrics; -import android.view.Gravity; import android.view.Surface; import com.android.launcher3.CellLayout.ContainerType; @@ -42,7 +41,6 @@ import com.android.launcher3.DevicePaddings.DevicePadding; import com.android.launcher3.icons.DotRenderer; import com.android.launcher3.icons.GraphicsUtils; import com.android.launcher3.icons.IconNormalizer; -import com.android.launcher3.touch.PortraitPagedViewHandler; import com.android.launcher3.uioverrides.ApiWrapper; import com.android.launcher3.util.DisplayController; import com.android.launcher3.util.DisplayController.Info; @@ -204,12 +202,6 @@ public class DeviceProfile { public int overviewPageSpacing; public int overviewRowSpacing; public int overviewGridSideMargin; - public final Rect overviewGridRect = new Rect(); - public final Rect overviewTaskRect = new Rect(); - public final float overviewTaskWorkspaceScale; - public final Point overviewGridTaskDimension = new Point(); - public final Rect overviewModalTaskRect = new Rect(); - public final float overviewModalTaskScale; // Widgets public final PointF appWidgetScale = new PointF(1.0f, 1.0f); @@ -236,9 +228,6 @@ public class DeviceProfile { public DotRenderer mDotRendererWorkSpace; public DotRenderer mDotRendererAllApps; - // Tasks - public final PointF taskDimension = new PointF(); - // Taskbar public boolean isTaskbarPresent; // Whether Taskbar will inset the bottom of apps by taskbarSize. @@ -424,11 +413,13 @@ public class DeviceProfile { if (areNavButtonsInline) { /* * 3 nav buttons + + * Spacing between nav buttons + * Little space at the end for contextual buttons + * Little space between icons and nav buttons */ hotseatBarEndOffset = 3 * res.getDimensionPixelSize(R.dimen.taskbar_nav_buttons_size) - + res.getDimensionPixelSize(R.dimen.taskbar_contextual_button_margin) + + 2 * res.getDimensionPixelSize(R.dimen.taskbar_button_space_inbetween) + + res.getDimensionPixelSize(inv.inlineNavButtonsEndSpacing) + res.getDimensionPixelSize(R.dimen.taskbar_hotseat_nav_spacing); } else { hotseatBarEndOffset = 0; @@ -492,104 +483,6 @@ public class DeviceProfile { mDotRendererWorkSpace = new DotRenderer(iconSizePx, dotPath, DEFAULT_DOT_SIZE); mDotRendererAllApps = iconSizePx == allAppsIconSizePx ? mDotRendererWorkSpace : new DotRenderer(allAppsIconSizePx, dotPath, DEFAULT_DOT_SIZE); - - // Grid and Task size calculations - calculateGridSize(); - getTaskDimension(); - calculateTaskSize(res); - calculateGridTaskSize(); - calculateModalTaskSize(res); - overviewModalTaskScale = - Math.min(overviewModalTaskRect.height() / (float) overviewTaskRect.height(), - overviewModalTaskRect.width() / (float) overviewTaskRect.width()); - overviewTaskWorkspaceScale = (float) overviewTaskRect.height() / getCellLayoutHeight(); - } - - private void calculateGridSize() { - int topMargin = overviewTaskThumbnailTopMarginPx; - int bottomMargin = getOverviewActionsClaimedSpace(); - int sideMargin = overviewGridSideMargin; - - overviewGridRect.set(0, 0, widthPx, heightPx); - overviewGridRect.inset(Math.max(mInsets.left, sideMargin), mInsets.top + topMargin, - Math.max(mInsets.right, sideMargin), Math.max(mInsets.bottom, bottomMargin)); - } - - private void calculateTaskSize(Resources res) { - int overviewMinNextPrevSize = - res.getDimensionPixelSize(R.dimen.overview_minimum_next_prev_size); - float overviewMaxScale = res.getFloat(R.dimen.overview_max_scale); - Rect containerRect = new Rect(); - if (isTablet) { - containerRect.set(overviewGridRect); - } else { - int taskMargin = overviewTaskMarginPx; - containerRect.set(0, 0, widthPx, heightPx); - containerRect.inset(mInsets.left, mInsets.top, mInsets.right, mInsets.bottom); - int minimumHorizontalPadding = overviewMinNextPrevSize + taskMargin; - containerRect.inset(minimumHorizontalPadding, overviewTaskThumbnailTopMarginPx, - minimumHorizontalPadding, getOverviewActionsClaimedSpace()); - } - float scale = Math.min( - containerRect.width() / taskDimension.x, - containerRect.height() / taskDimension.y); - scale = Math.min(scale, overviewMaxScale); - int outWidth = Math.round(scale * taskDimension.x); - int outHeight = Math.round(scale * taskDimension.y); - Gravity.apply(Gravity.CENTER, outWidth, outHeight, containerRect, overviewTaskRect); - } - - private void calculateGridTaskSize() { - float rowHeight = - (overviewTaskRect.height() + overviewTaskThumbnailTopMarginPx - overviewRowSpacing) - / 2f; - - float scale = (rowHeight - overviewTaskThumbnailTopMarginPx) / taskDimension.y; - overviewGridTaskDimension.set( - Math.round(scale * taskDimension.x), Math.round(scale * taskDimension.y)); - } - - /** - * Returns a Rect the size of a grid task with the correct positioning within the screen. - * - * @param isRecentsRtl is true when device is in LTR, false when in RTL, as grid tasks are only - * supported on tablets, which use PortraitPagedViewHandler. - */ - public Rect getOverviewGridTaskRect(boolean isRecentsRtl) { - Rect outRect = new Rect(); - int gravity = Gravity.TOP; - gravity |= isRecentsRtl ? Gravity.RIGHT : Gravity.LEFT; - Gravity.apply(gravity, overviewGridTaskDimension.x, overviewGridTaskDimension.y, - overviewTaskRect, outRect); - return outRect; - } - - private void calculateModalTaskSize(Resources res) { - float overviewModalMaxScale = res.getFloat(R.dimen.overview_modal_max_scale); - Rect potentialTaskRect = new Rect(0, 0, widthPx, heightPx); - potentialTaskRect.inset(mInsets.left, mInsets.top, mInsets.right, mInsets.bottom); - int minimumHorizontalPadding = Math.round( - (availableWidthPx - overviewTaskRect.width() * overviewModalMaxScale) / 2); - potentialTaskRect.inset( - minimumHorizontalPadding, - overviewTaskMarginPx, - minimumHorizontalPadding, - heightPx - overviewTaskRect.bottom - mInsets.bottom); - float scale = Math.min( - potentialTaskRect.width() / taskDimension.x, - potentialTaskRect.height() / taskDimension.y); - int outWidth = Math.round(scale * taskDimension.x); - int outHeight = Math.round(scale * taskDimension.y); - Gravity.apply(Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM, outWidth, outHeight, - potentialTaskRect, overviewModalTaskRect); - } - - private void getTaskDimension() { - float taskHeight = heightPx; - if (isTablet) { - taskHeight -= taskbarSize; - } - taskDimension.set(widthPx, taskHeight); } /** @@ -1354,8 +1247,7 @@ public class DeviceProfile { } // LINT.IfChange - /** Dumps various DeviceProfile variables to the specified writer. */ - public void dump(Context context, String prefix, PrintWriter writer) { + public void dump(String prefix, PrintWriter writer) { writer.println(prefix + "DeviceProfile:"); writer.println(prefix + "\t1 dp = " + mMetrics.density + " px"); @@ -1401,12 +1293,9 @@ public class DeviceProfile { cellLayoutBorderSpacePx.x)); writer.println(prefix + pxToDpStr("cellLayoutBorderSpacePx Vertical", cellLayoutBorderSpacePx.y)); - writer.println( - prefix + pxToDpStr("cellLayoutPaddingPx.left", cellLayoutPaddingPx.left)); - writer.println( - prefix + pxToDpStr("cellLayoutPaddingPx.top", cellLayoutPaddingPx.top)); - writer.println( - prefix + pxToDpStr("cellLayoutPaddingPx.right", cellLayoutPaddingPx.right)); + writer.println(prefix + pxToDpStr("cellLayoutPaddingPx.left", cellLayoutPaddingPx.left)); + writer.println(prefix + pxToDpStr("cellLayoutPaddingPx.top", cellLayoutPaddingPx.top)); + writer.println(prefix + pxToDpStr("cellLayoutPaddingPx.right", cellLayoutPaddingPx.right)); writer.println( prefix + pxToDpStr("cellLayoutPaddingPx.bottom", cellLayoutPaddingPx.bottom)); @@ -1440,15 +1329,13 @@ public class DeviceProfile { writer.println(prefix + pxToDpStr("allAppsBorderSpacePxX", allAppsBorderSpacePx.x)); writer.println(prefix + pxToDpStr("allAppsBorderSpacePxY", allAppsBorderSpacePx.y)); writer.println(prefix + "\tnumShownAllAppsColumns: " + numShownAllAppsColumns); - writer.println( - prefix + pxToDpStr("allAppsLeftRightPadding", allAppsLeftRightPadding)); + writer.println(prefix + pxToDpStr("allAppsLeftRightPadding", allAppsLeftRightPadding)); writer.println(prefix + pxToDpStr("allAppsLeftRightMargin", allAppsLeftRightMargin)); writer.println(prefix + pxToDpStr("hotseatBarSizePx", hotseatBarSizePx)); writer.println(prefix + "\tinv.hotseatColumnSpan: " + inv.hotseatColumnSpan[mTypeIndex]); writer.println(prefix + pxToDpStr("hotseatCellHeightPx", hotseatCellHeightPx)); - writer.println( - prefix + pxToDpStr("hotseatBarBottomSpacePx", hotseatBarBottomSpacePx)); + writer.println(prefix + pxToDpStr("hotseatBarBottomSpacePx", hotseatBarBottomSpacePx)); writer.println(prefix + pxToDpStr("hotseatBarSidePaddingStartPx", hotseatBarSidePaddingStartPx)); writer.println(prefix + pxToDpStr("hotseatBarSidePaddingEndPx", @@ -1459,12 +1346,9 @@ public class DeviceProfile { writer.println(prefix + pxToDpStr("springLoadedHotseatBarTopMarginPx", springLoadedHotseatBarTopMarginPx)); writer.println(prefix + pxToDpStr("mHotseatBarPadding.top", mHotseatBarPadding.top)); - writer.println( - prefix + pxToDpStr("mHotseatBarPadding.bottom", mHotseatBarPadding.bottom)); - writer.println( - prefix + pxToDpStr("mHotseatBarPadding.left", mHotseatBarPadding.left)); - writer.println( - prefix + pxToDpStr("mHotseatBarPadding.right", mHotseatBarPadding.right)); + writer.println(prefix + pxToDpStr("mHotseatBarPadding.bottom", mHotseatBarPadding.bottom)); + writer.println(prefix + pxToDpStr("mHotseatBarPadding.left", mHotseatBarPadding.left)); + writer.println(prefix + pxToDpStr("mHotseatBarPadding.right", mHotseatBarPadding.right)); writer.println(prefix + "\tnumShownHotseatIcons: " + numShownHotseatIcons); writer.println(prefix + pxToDpStr("hotseatBorderSpace", hotseatBorderSpace)); writer.println(prefix + "\tisQsbInline: " + isQsbInline); @@ -1479,14 +1363,12 @@ public class DeviceProfile { writer.println(prefix + pxToDpStr("workspacePadding.left", workspacePadding.left)); writer.println(prefix + pxToDpStr("workspacePadding.top", workspacePadding.top)); writer.println(prefix + pxToDpStr("workspacePadding.right", workspacePadding.right)); - writer.println( - prefix + pxToDpStr("workspacePadding.bottom", workspacePadding.bottom)); + writer.println(prefix + pxToDpStr("workspacePadding.bottom", workspacePadding.bottom)); writer.println(prefix + pxToDpStr("iconScale", iconScale)); writer.println(prefix + pxToDpStr("cellScaleToFit ", cellScaleToFit)); writer.println(prefix + pxToDpStr("extraSpace", extraSpace)); - writer.println( - prefix + pxToDpStr("unscaled extraSpace", extraSpace / iconScale)); + writer.println(prefix + pxToDpStr("unscaled extraSpace", extraSpace / iconScale)); if (inv.devicePaddings != null) { int unscaledExtraSpace = (int) (extraSpace / iconScale); @@ -1497,8 +1379,7 @@ public class DeviceProfile { writer.println(prefix + pxToDpStr("workspaceBottomPadding", workspaceBottomPadding)); writer.println(prefix + pxToDpStr("overviewTaskMarginPx", overviewTaskMarginPx)); - writer.println( - prefix + pxToDpStr("overviewTaskMarginGridPx", overviewTaskMarginGridPx)); + writer.println(prefix + pxToDpStr("overviewTaskMarginGridPx", overviewTaskMarginGridPx)); writer.println(prefix + pxToDpStr("overviewTaskIconSizePx", overviewTaskIconSizePx)); writer.println(prefix + pxToDpStr("overviewTaskIconDrawableSizePx", overviewTaskIconDrawableSizePx)); @@ -1516,64 +1397,21 @@ public class DeviceProfile { writer.println(prefix + pxToDpStr("overviewRowSpacing", overviewRowSpacing)); writer.println(prefix + pxToDpStr("overviewGridSideMargin", overviewGridSideMargin)); - writer.println( - prefix + pxToDpStr("dropTargetBarTopMarginPx", dropTargetBarTopMarginPx)); + writer.println(prefix + pxToDpStr("dropTargetBarTopMarginPx", dropTargetBarTopMarginPx)); writer.println(prefix + pxToDpStr("dropTargetBarSizePx", dropTargetBarSizePx)); - writer.println(prefix - + pxToDpStr("dropTargetBarBottomMarginPx", dropTargetBarBottomMarginPx)); + writer.println( + prefix + pxToDpStr("dropTargetBarBottomMarginPx", dropTargetBarBottomMarginPx)); - writer.println(prefix - + pxToDpStr("workspaceSpringLoadShrunkTop", mWorkspaceSpringLoadShrunkTop)); + writer.println( + prefix + pxToDpStr("workspaceSpringLoadShrunkTop", mWorkspaceSpringLoadShrunkTop)); writer.println(prefix + pxToDpStr("workspaceSpringLoadShrunkBottom", mWorkspaceSpringLoadShrunkBottom)); writer.println(prefix + pxToDpStr("workspaceSpringLoadedMinNextPageVisiblePx", workspaceSpringLoadedMinNextPageVisiblePx)); - writer.println(prefix - + pxToDpStr("getWorkspaceSpringLoadScale()", getWorkspaceSpringLoadScale())); + writer.println( + prefix + pxToDpStr("getWorkspaceSpringLoadScale()", getWorkspaceSpringLoadScale())); writer.println(prefix + pxToDpStr("getCellLayoutHeight()", getCellLayoutHeight())); writer.println(prefix + pxToDpStr("getCellLayoutWidth()", getCellLayoutWidth())); - - writer.println(prefix + pxToDpStr("overviewGridRect.left", overviewGridRect.left)); - writer.println(prefix + pxToDpStr("overviewGridRect.top", overviewGridRect.top)); - writer.println(prefix + pxToDpStr("overviewGridRect.right", overviewGridRect.right)); - writer.println(prefix - + pxToDpStr("overviewGridRect.bottom", overviewGridRect.bottom)); - writer.println(prefix + pxToDpStr("taskDimension.x", taskDimension.x)); - writer.println(prefix + pxToDpStr("taskDimension.y", taskDimension.y)); - writer.println(prefix + pxToDpStr("overviewTaskRect.left", overviewTaskRect.left)); - writer.println(prefix + pxToDpStr("overviewTaskRect.top", overviewTaskRect.top)); - writer.println(prefix + pxToDpStr("overviewTaskRect.right", overviewTaskRect.right)); - writer.println(prefix - + pxToDpStr("overviewTaskRect.bottom", overviewTaskRect.bottom)); - writer.println(prefix - + pxToDpStr("overviewGridTaskDimension.x", overviewGridTaskDimension.x)); - writer.println(prefix - + pxToDpStr("overviewGridTaskDimension.y", overviewGridTaskDimension.y)); - writer.println(prefix - + pxToDpStr("overviewModalTaskRect.left", overviewModalTaskRect.left)); - writer.println(prefix - + pxToDpStr("overviewModalTaskRect.top", overviewModalTaskRect.top)); - writer.println(prefix - + pxToDpStr("overviewModalTaskRect.right", overviewModalTaskRect.right)); - writer.println(prefix - + pxToDpStr("overviewModalTaskRect.bottom", overviewModalTaskRect.bottom)); - boolean isRecentsRtl = - PortraitPagedViewHandler.PORTRAIT.getRecentsRtlSetting(context.getResources()); - writer.println(prefix - + pxToDpStr("getOverviewGridTaskRect(" + isRecentsRtl + ").left", - getOverviewGridTaskRect(isRecentsRtl).left)); - writer.println(prefix - + pxToDpStr("getOverviewGridTaskRect(" + isRecentsRtl + ").top", - getOverviewGridTaskRect(isRecentsRtl).top)); - writer.println(prefix - + pxToDpStr("getOverviewGridTaskRect(" + isRecentsRtl + ").right", - getOverviewGridTaskRect(isRecentsRtl).right)); - writer.println(prefix - + pxToDpStr("getOverviewGridTaskRect(" + isRecentsRtl + ").bottom", - getOverviewGridTaskRect(isRecentsRtl).bottom)); - writer.println( - prefix + pxToDpStr("overviewTaskWorkspaceScale", overviewTaskWorkspaceScale)); - writer.println(prefix + pxToDpStr("overviewModalTaskScale", overviewModalTaskScale)); } // LINT.ThenChange( // packages/apps/Launcher3/quickstep/tests/src/com/android/quickstep/DeviceProfilePhoneTest.kt, diff --git a/src/com/android/launcher3/InvariantDeviceProfile.java b/src/com/android/launcher3/InvariantDeviceProfile.java index 2085b84ac5..c051292512 100644 --- a/src/com/android/launcher3/InvariantDeviceProfile.java +++ b/src/com/android/launcher3/InvariantDeviceProfile.java @@ -127,6 +127,7 @@ public class InvariantDeviceProfile { public PointF[] borderSpaces; public float folderBorderSpace; public float[] hotseatBorderSpaces; + public int inlineNavButtonsEndSpacing; public float[] horizontalMargin; @@ -339,6 +340,8 @@ public class InvariantDeviceProfile { devicePaddingId = closestProfile.devicePaddingId; this.deviceType = deviceType; + inlineNavButtonsEndSpacing = closestProfile.inlineNavButtonsEndSpacing; + mExtraAttrs = closestProfile.extraAttrs; iconSize = displayOption.iconSizes; @@ -735,6 +738,7 @@ public class InvariantDeviceProfile { private final int[] hotseatColumnSpan = new int[COUNT_SIZES]; + private int inlineNavButtonsEndSpacing; private final String dbFile; private final int defaultLayoutId; @@ -785,6 +789,9 @@ public class InvariantDeviceProfile { R.styleable.GridDisplayOption_hotseatColumnSpanTwoPanelPortrait, numColumns); + inlineNavButtonsEndSpacing = + a.getResourceId(R.styleable.GridDisplayOption_inlineNavButtonsEndSpacing, + R.dimen.taskbar_button_margin_default); numFolderRows = a.getInt( R.styleable.GridDisplayOption_numFolderRows, numRows); numFolderColumns = a.getInt( diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 528613c032..9c622512a4 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -3024,7 +3024,7 @@ public class Launcher extends StatefulActivity mDragLayer.dump(prefix, writer); mStateManager.dump(prefix, writer); mPopupDataProvider.dump(prefix, writer); - mDeviceProfile.dump(this, prefix, writer); + mDeviceProfile.dump(prefix, writer); try { FileLog.flushAll(writer); diff --git a/src/com/android/launcher3/LauncherState.java b/src/com/android/launcher3/LauncherState.java index ea6a9199d7..8b5cdbd9e2 100644 --- a/src/com/android/launcher3/LauncherState.java +++ b/src/com/android/launcher3/LauncherState.java @@ -208,14 +208,18 @@ public abstract class LauncherState implements BaseState { return (getVisibleElements(launcher) & elements) == elements; } - /** Returns whether taskbar is stashed and thus should replace hotseat with a handle */ + /** + * Returns whether taskbar is stashed and thus should either: + * 1) replace hotseat or taskbar icons with a handle in gesture navigation mode or + * 2) fade out the hotseat or taskbar icons in 3-button navigation mode. + */ public boolean isTaskbarStashed(Launcher launcher) { return false; } /** Returns whether taskbar is aligned with the hotseat vs position inside apps */ public boolean isTaskbarAlignedWithHotseat(Launcher launcher) { - return !isTaskbarStashed(launcher); + return true; } /** diff --git a/src/com/android/launcher3/util/MultiValueAlpha.java b/src/com/android/launcher3/util/MultiValueAlpha.java index 11cd07c838..4b46a0a04c 100644 --- a/src/com/android/launcher3/util/MultiValueAlpha.java +++ b/src/com/android/launcher3/util/MultiValueAlpha.java @@ -23,6 +23,7 @@ import android.view.View; import com.android.launcher3.anim.AlphaUpdateListener; +import java.io.PrintWriter; import java.util.Arrays; import java.util.function.Consumer; @@ -78,6 +79,29 @@ public class MultiValueAlpha { mUpdateVisibility = updateVisibility; } + /** + * Dumps the alpha channel values to the given PrintWriter + * + * @param prefix String to be used before every line + * @param pw PrintWriter where the logs should be dumped + * @param label String used to help identify this object + * @param alphaIndexLabels Strings that represent each alpha channel, these should be entered + * in the order of the indexes they represent, starting from 0. + */ + public void dump(String prefix, PrintWriter pw, String label, String... alphaIndexLabels) { + pw.println(prefix + label); + + String innerPrefix = prefix + '\t'; + for (int i = 0; i < alphaIndexLabels.length; i++) { + if (i >= mMyProperties.length) { + pw.println(innerPrefix + alphaIndexLabels[i] + " given for alpha index " + i + + " however there are only " + mMyProperties.length + " alpha channels."); + continue; + } + pw.println(innerPrefix + alphaIndexLabels[i] + "=" + getProperty(i).getValue()); + } + } + public class AlphaProperty { private final int mMyMask; diff --git a/src_ui_overrides/com/android/launcher3/uioverrides/ApiWrapper.java b/src_ui_overrides/com/android/launcher3/uioverrides/ApiWrapper.java index 67157494d8..c8b5e2fa37 100644 --- a/src_ui_overrides/com/android/launcher3/uioverrides/ApiWrapper.java +++ b/src_ui_overrides/com/android/launcher3/uioverrides/ApiWrapper.java @@ -17,7 +17,6 @@ package com.android.launcher3.uioverrides; import android.app.Person; -import android.content.Context; import android.content.pm.ShortcutInfo; import com.android.launcher3.Utilities; @@ -29,11 +28,4 @@ public class ApiWrapper { public static Person[] getPersons(ShortcutInfo si) { return Utilities.EMPTY_PERSON_ARRAY; } - - /** - * Returns the minimum space that should be left empty at the end of hotseat - */ - public static int getHotseatEndOffset(Context context) { - return 0; - } } diff --git a/tests/src/com/android/launcher3/DeviceProfileBaseTest.kt b/tests/src/com/android/launcher3/DeviceProfileBaseTest.kt index ba813c0d4a..7465db5e34 100644 --- a/tests/src/com/android/launcher3/DeviceProfileBaseTest.kt +++ b/tests/src/com/android/launcher3/DeviceProfileBaseTest.kt @@ -37,7 +37,6 @@ abstract class DeviceProfileBaseTest { protected var transposeLayoutWithOrientation: Boolean = false protected var useTwoPanels: Boolean = false protected var isGestureMode: Boolean = true - protected var isRecentsRtl: Boolean = true @Before fun setUp() { @@ -136,6 +135,7 @@ abstract class DeviceProfileBaseTest { hotseatBorderSpaces = FloatArray(4) { 16f } hotseatColumnSpan = IntArray(4) { 4 } hotseatBarBottomSpace = FloatArray(4) { 48f } + inlineNavButtonsEndSpacing = R.dimen.taskbar_button_margin_4_4 hotseatQsbSpace = FloatArray(4) { 36f } iconSize = FloatArray(4) { 56f } allAppsIconSize = FloatArray(4) { 56f } @@ -164,7 +164,7 @@ abstract class DeviceProfileBaseTest { fun dump(dp: DeviceProfile): StringWriter { val stringWriter = StringWriter() val printWriter = PrintWriter(stringWriter) - dp.dump(context, "", printWriter) + dp.dump("", printWriter) printWriter.flush() return stringWriter }