Snap for 8872621 from bb76b99c56 to tm-qpr1-release
Change-Id: I1983e55a08432b744f34ba1e8aff68f3a7d3b69c
This commit is contained in:
@@ -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">
|
||||
|
||||
<com.airbnb.lottie.LottieAnimationView
|
||||
android:id="@+id/animated_background"
|
||||
|
||||
@@ -45,8 +45,8 @@
|
||||
android:id="@+id/start_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:paddingStart="@dimen/taskbar_contextual_button_padding"
|
||||
android:paddingEnd="@dimen/taskbar_contextual_button_padding"
|
||||
android:paddingTop="@dimen/taskbar_contextual_padding_top"
|
||||
android:gravity="center_vertical"
|
||||
android:layout_gravity="start"/>
|
||||
@@ -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"/>
|
||||
|
||||
@@ -74,4 +74,10 @@
|
||||
|
||||
<!-- Gesture Tutorial mock taskbar -->
|
||||
<dimen name="gesture_tutorial_taskbar_padding_start_end">218dp</dimen>
|
||||
|
||||
<!-- Taskbar 3 button spacing -->
|
||||
<dimen name="taskbar_button_margin_5_5">94.5dp</dimen>
|
||||
<dimen name="taskbar_button_margin_6_5">94.5dp</dimen>
|
||||
<dimen name="taskbar_button_margin_4_5">84dp</dimen>
|
||||
<dimen name="taskbar_button_margin_4_4">79dp</dimen>
|
||||
</resources>
|
||||
@@ -250,11 +250,11 @@
|
||||
<dimen name="taskbar_icon_touch_size">48dp</dimen>
|
||||
<dimen name="taskbar_icon_drag_icon_size">54dp</dimen>
|
||||
<dimen name="taskbar_folder_margin">16dp</dimen>
|
||||
<dimen name="taskbar_nav_buttons_spacing">16dp</dimen>
|
||||
<dimen name="taskbar_contextual_button_padding">16dp</dimen>
|
||||
<dimen name="taskbar_contextual_padding_top">8dp</dimen>
|
||||
<dimen name="taskbar_nav_buttons_size">44dp</dimen>
|
||||
<dimen name="taskbar_contextual_button_margin">40dp</dimen>
|
||||
<dimen name="taskbar_hotseat_nav_spacing">42dp</dimen>
|
||||
<dimen name="taskbar_contextual_button_margin">47dp</dimen>
|
||||
<dimen name="taskbar_hotseat_nav_spacing">24dp</dimen>
|
||||
<dimen name="taskbar_contextual_buttons_size">35dp</dimen>
|
||||
<dimen name="taskbar_stashed_size">24dp</dimen>
|
||||
<dimen name="taskbar_stashed_handle_width">220dp</dimen>
|
||||
@@ -268,4 +268,12 @@
|
||||
<dimen name="taskbar_back_button_left_margin_kids">48dp</dimen>
|
||||
<dimen name="taskbar_home_button_left_margin_kids">48dp</dimen>
|
||||
<dimen name="taskbar_icon_size_kids">32dp</dimen>
|
||||
|
||||
<!-- Taskbar 3 button spacing -->
|
||||
<dimen name="taskbar_button_space_inbetween">24dp</dimen>
|
||||
<dimen name="taskbar_button_margin_5_5">26dp</dimen>
|
||||
<dimen name="taskbar_button_margin_6_5">26dp</dimen>
|
||||
<dimen name="taskbar_button_margin_4_5">47dp</dimen>
|
||||
<dimen name="taskbar_button_margin_4_4">47dp</dimen>
|
||||
<dimen name="taskbar_button_margin_default">47dp</dimen>
|
||||
</resources>
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -559,13 +559,11 @@ public class TaskbarDragController extends DragController<BaseTaskbarContext> 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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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.<RecentsView>getOverviewPanel().getSelectedTaskSize();
|
||||
Rect modalTaskSize = new Rect();
|
||||
activity.<RecentsView>getOverviewPanel().getModalTaskSize(modalTaskSize);
|
||||
|
||||
float scale = Math.min((float) modalTaskSize.height() / taskSize.y,
|
||||
(float) modalTaskSize.width() / taskSize.x);
|
||||
|
||||
return new float[] {scale, NO_OFFSET};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
+6
-2
@@ -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();
|
||||
|
||||
+2
-2
@@ -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);
|
||||
|
||||
@@ -2049,8 +2049,8 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
|
||||
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 =
|
||||
|
||||
@@ -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<STATE_TYPE extends BaseState<STATE_T
|
||||
activity.getStateManager().goToState(startState, activityVisible);
|
||||
}
|
||||
|
||||
/** Gets swipe-up destination and length. */
|
||||
public abstract int getSwipeUpDestinationAndLength(DeviceProfile dp, Context context,
|
||||
public abstract int getSwipeUpDestinationAndLength(
|
||||
DeviceProfile dp, Context context, Rect outRect,
|
||||
PagedOrientationHandler orientationHandler);
|
||||
|
||||
/** Called when the animation to home has fully settled. */
|
||||
@@ -210,6 +214,129 @@ public abstract class BaseActivityInterface<STATE_TYPE extends BaseState<STATE_T
|
||||
recentsView.switchToScreenshot(thumbnailDatas, runnable);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates the taskView size for the provided device configuration.
|
||||
*/
|
||||
public final void calculateTaskSize(Context context, DeviceProfile dp, Rect outRect) {
|
||||
Resources res = context.getResources();
|
||||
float maxScale = res.getFloat(R.dimen.overview_max_scale);
|
||||
if (dp.isTablet) {
|
||||
Rect gridRect = new Rect();
|
||||
calculateGridSize(dp, gridRect);
|
||||
|
||||
calculateTaskSizeInternal(context, dp, gridRect, maxScale, Gravity.CENTER, outRect);
|
||||
} else {
|
||||
int taskMargin = dp.overviewTaskMarginPx;
|
||||
calculateTaskSizeInternal(context, dp,
|
||||
dp.overviewTaskThumbnailTopMarginPx,
|
||||
dp.getOverviewActionsClaimedSpace(),
|
||||
res.getDimensionPixelSize(R.dimen.overview_minimum_next_prev_size) + taskMargin,
|
||||
maxScale,
|
||||
Gravity.CENTER,
|
||||
outRect);
|
||||
}
|
||||
}
|
||||
|
||||
private void calculateTaskSizeInternal(Context context, DeviceProfile dp, int claimedSpaceAbove,
|
||||
int claimedSpaceBelow, int minimumHorizontalPadding, float maxScale, int gravity,
|
||||
Rect outRect) {
|
||||
Rect insets = dp.getInsets();
|
||||
|
||||
Rect potentialTaskRect = new Rect(0, 0, dp.widthPx, dp.heightPx);
|
||||
potentialTaskRect.inset(insets.left, insets.top, insets.right, insets.bottom);
|
||||
potentialTaskRect.inset(
|
||||
minimumHorizontalPadding,
|
||||
claimedSpaceAbove,
|
||||
minimumHorizontalPadding,
|
||||
claimedSpaceBelow);
|
||||
|
||||
calculateTaskSizeInternal(context, dp, potentialTaskRect, maxScale, gravity, outRect);
|
||||
}
|
||||
|
||||
private void calculateTaskSizeInternal(Context context, DeviceProfile dp,
|
||||
Rect potentialTaskRect, float maxScale, int gravity, Rect outRect) {
|
||||
PointF taskDimension = getTaskDimension(dp);
|
||||
|
||||
float scale = Math.min(
|
||||
potentialTaskRect.width() / taskDimension.x,
|
||||
potentialTaskRect.height() / taskDimension.y);
|
||||
scale = Math.min(scale, maxScale);
|
||||
int outWidth = Math.round(scale * taskDimension.x);
|
||||
int outHeight = Math.round(scale * taskDimension.y);
|
||||
|
||||
Gravity.apply(gravity, outWidth, outHeight, potentialTaskRect, outRect);
|
||||
}
|
||||
|
||||
private static PointF getTaskDimension(DeviceProfile dp) {
|
||||
PointF dimension = new PointF();
|
||||
getTaskDimension(dp, dimension);
|
||||
return dimension;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the dimension of the task in the current system state.
|
||||
*/
|
||||
public static void getTaskDimension(DeviceProfile dp, PointF out) {
|
||||
out.x = dp.widthPx;
|
||||
out.y = dp.heightPx;
|
||||
if (dp.isTablet) {
|
||||
out.y -= dp.taskbarSize;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates the overview grid size for the provided device configuration.
|
||||
*/
|
||||
public final void calculateGridSize(DeviceProfile dp, Rect outRect) {
|
||||
Rect insets = dp.getInsets();
|
||||
int topMargin = dp.overviewTaskThumbnailTopMarginPx;
|
||||
int bottomMargin = dp.getOverviewActionsClaimedSpace();
|
||||
int sideMargin = dp.overviewGridSideMargin;
|
||||
|
||||
outRect.set(0, 0, dp.widthPx, dp.heightPx);
|
||||
outRect.inset(Math.max(insets.left, sideMargin), insets.top + topMargin,
|
||||
Math.max(insets.right, sideMargin), Math.max(insets.bottom, bottomMargin));
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates the overview grid non-focused task size for the provided device configuration.
|
||||
*/
|
||||
public final void calculateGridTaskSize(Context context, DeviceProfile dp, Rect outRect,
|
||||
PagedOrientationHandler orientedState) {
|
||||
Resources res = context.getResources();
|
||||
Rect taskRect = new Rect();
|
||||
calculateTaskSize(context, dp, taskRect);
|
||||
|
||||
float rowHeight =
|
||||
(taskRect.height() + dp.overviewTaskThumbnailTopMarginPx - dp.overviewRowSpacing)
|
||||
/ 2f;
|
||||
|
||||
PointF taskDimension = getTaskDimension(dp);
|
||||
float scale = (rowHeight - dp.overviewTaskThumbnailTopMarginPx) / taskDimension.y;
|
||||
int outWidth = Math.round(scale * taskDimension.x);
|
||||
int outHeight = Math.round(scale * taskDimension.y);
|
||||
|
||||
int gravity = Gravity.TOP;
|
||||
gravity |= orientedState.getRecentsRtlSetting(res) ? Gravity.RIGHT : Gravity.LEFT;
|
||||
Gravity.apply(gravity, outWidth, outHeight, taskRect, outRect);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates the modal taskView size for the provided device configuration
|
||||
*/
|
||||
public final void calculateModalTaskSize(Context context, DeviceProfile dp, Rect outRect) {
|
||||
calculateTaskSize(context, dp, outRect);
|
||||
float maxScale = context.getResources().getFloat(R.dimen.overview_modal_max_scale);
|
||||
calculateTaskSizeInternal(
|
||||
context, dp,
|
||||
dp.overviewTaskMarginPx,
|
||||
dp.heightPx - outRect.bottom - dp.getInsets().bottom,
|
||||
Math.round((dp.availableWidthPx - outRect.width() * maxScale) / 2),
|
||||
1f /*maxScale*/,
|
||||
Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM,
|
||||
outRect);
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the gesture ends and the animation starts towards the given target. Used to add
|
||||
* an optional additional animation with the same duration.
|
||||
|
||||
@@ -60,13 +60,13 @@ public final class FallbackActivityInterface extends
|
||||
|
||||
/** 2 */
|
||||
@Override
|
||||
public int getSwipeUpDestinationAndLength(DeviceProfile dp, Context context,
|
||||
public int getSwipeUpDestinationAndLength(DeviceProfile dp, Context context, Rect outRect,
|
||||
PagedOrientationHandler orientationHandler) {
|
||||
calculateTaskSize(context, dp, outRect);
|
||||
if (dp.isVerticalBarLayout() && DisplayController.getNavigationMode(context) != NO_BUTTON) {
|
||||
return dp.isSeascape()
|
||||
? dp.overviewTaskRect.left : (dp.widthPx - dp.overviewTaskRect.right);
|
||||
return dp.isSeascape() ? outRect.left : (dp.widthPx - outRect.right);
|
||||
} else {
|
||||
return dp.heightPx - dp.overviewTaskRect.bottom;
|
||||
return dp.heightPx - outRect.bottom;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -70,14 +70,14 @@ public final class LauncherActivityInterface extends
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSwipeUpDestinationAndLength(DeviceProfile dp, Context context,
|
||||
public int getSwipeUpDestinationAndLength(DeviceProfile dp, Context context, Rect outRect,
|
||||
PagedOrientationHandler orientationHandler) {
|
||||
calculateTaskSize(context, dp, outRect);
|
||||
if (dp.isVerticalBarLayout()
|
||||
&& DisplayController.getNavigationMode(context) != NavigationMode.NO_BUTTON) {
|
||||
return dp.isSeascape()
|
||||
? dp.overviewTaskRect.left : (dp.widthPx - dp.overviewTaskRect.right);
|
||||
return dp.isSeascape() ? outRect.left : (dp.widthPx - outRect.right);
|
||||
} else {
|
||||
return LayoutUtils.getShelfTrackingDistance(dp, orientationHandler);
|
||||
return LayoutUtils.getShelfTrackingDistance(context, dp, orientationHandler);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.android.quickstep;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.graphics.Rect;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
@@ -31,7 +32,8 @@ public class QuickstepTestInformationHandler extends TestInformationHandler {
|
||||
}
|
||||
|
||||
case TestProtocol.REQUEST_BACKGROUND_TO_OVERVIEW_SWIPE_HEIGHT: {
|
||||
final float swipeHeight = LayoutUtils.getShelfTrackingDistance(mDeviceProfile,
|
||||
final float swipeHeight =
|
||||
LayoutUtils.getShelfTrackingDistance(mContext, mDeviceProfile,
|
||||
PagedOrientationHandler.PORTRAIT);
|
||||
response.putInt(TestProtocol.TEST_INFO_RESPONSE_FIELD, (int) swipeHeight);
|
||||
return response;
|
||||
@@ -41,8 +43,10 @@ public class QuickstepTestInformationHandler extends TestInformationHandler {
|
||||
if (!mDeviceProfile.isTablet) {
|
||||
return null;
|
||||
}
|
||||
response.putInt(TestProtocol.TEST_INFO_RESPONSE_FIELD,
|
||||
mDeviceProfile.overviewTaskRect.height());
|
||||
Rect focusedTaskRect = new Rect();
|
||||
LauncherActivityInterface.INSTANCE.calculateTaskSize(mContext, mDeviceProfile,
|
||||
focusedTaskRect);
|
||||
response.putInt(TestProtocol.TEST_INFO_RESPONSE_FIELD, focusedTaskRect.height());
|
||||
return response;
|
||||
}
|
||||
|
||||
@@ -50,10 +54,10 @@ public class QuickstepTestInformationHandler extends TestInformationHandler {
|
||||
if (!mDeviceProfile.isTablet) {
|
||||
return null;
|
||||
}
|
||||
boolean isRecentsRtl = PagedOrientationHandler.PORTRAIT.getRecentsRtlSetting(
|
||||
mContext.getResources());
|
||||
response.putParcelable(TestProtocol.TEST_INFO_RESPONSE_FIELD,
|
||||
mDeviceProfile.getOverviewGridTaskRect(isRecentsRtl));
|
||||
Rect gridTaskRect = new Rect();
|
||||
LauncherActivityInterface.INSTANCE.calculateGridTaskSize(mContext, mDeviceProfile,
|
||||
gridTaskRect, PagedOrientationHandler.PORTRAIT);
|
||||
response.putParcelable(TestProtocol.TEST_INFO_RESPONSE_FIELD, gridTaskRect);
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
@@ -49,6 +49,7 @@ import java.util.function.Consumer;
|
||||
public abstract class SwipeUpAnimationLogic implements
|
||||
RecentsAnimationCallbacks.RecentsAnimationListener{
|
||||
|
||||
protected static final Rect TEMP_RECT = new Rect();
|
||||
protected final RemoteTargetGluer mTargetGluer;
|
||||
|
||||
protected DeviceProfile mDp;
|
||||
@@ -91,7 +92,7 @@ public abstract class SwipeUpAnimationLogic implements
|
||||
protected void initTransitionEndpoints(DeviceProfile dp) {
|
||||
mDp = dp;
|
||||
mTransitionDragLength = mGestureState.getActivityInterface().getSwipeUpDestinationAndLength(
|
||||
dp, mContext, mRemoteTargetHandles[0].getTaskViewSimulator()
|
||||
dp, mContext, TEMP_RECT, mRemoteTargetHandles[0].getTaskViewSimulator()
|
||||
.getOrientationState().getOrientationHandler());
|
||||
mDragLengthFactor = (float) dp.heightPx / mTransitionDragLength;
|
||||
|
||||
|
||||
@@ -1015,7 +1015,7 @@ public class TouchInteractionService extends Service
|
||||
pw.println("ProtoTrace:");
|
||||
pw.println(" file=" + ProtoTracer.INSTANCE.get(this).getTraceFile());
|
||||
if (createdOverviewActivity != null) {
|
||||
createdOverviewActivity.getDeviceProfile().dump(this, "", pw);
|
||||
createdOverviewActivity.getDeviceProfile().dump("", pw);
|
||||
}
|
||||
mTaskbarManager.dumpLogs("", pw);
|
||||
}
|
||||
|
||||
@@ -36,6 +36,7 @@ import com.android.launcher3.Utilities;
|
||||
import com.android.launcher3.anim.AnimatorPlaybackController;
|
||||
import com.android.launcher3.anim.PendingAnimation;
|
||||
import com.android.launcher3.touch.PagedOrientationHandler;
|
||||
import com.android.quickstep.LauncherActivityInterface;
|
||||
import com.android.quickstep.views.RecentsView;
|
||||
|
||||
/**
|
||||
@@ -154,9 +155,10 @@ public class AnimatorControllerWithResistance {
|
||||
*/
|
||||
public static <SCALE, TRANSLATION> PendingAnimation createRecentsResistanceAnim(
|
||||
RecentsParams<SCALE, TRANSLATION> 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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -93,6 +93,7 @@ public class OverviewActionsView<T extends OverlayUICallbacks> 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<T extends OverlayUICallbacks> 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();
|
||||
|
||||
@@ -428,6 +428,9 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
|
||||
@Nullable
|
||||
protected RemoteTargetHandle[] mRemoteTargetHandles;
|
||||
protected final Rect mLastComputedTaskSize = new Rect();
|
||||
protected final Rect mLastComputedGridSize = new Rect();
|
||||
protected final Rect mLastComputedGridTaskSize = new Rect();
|
||||
// How much a task that is directly offscreen will be pushed out due to RecentsView scale/pivot.
|
||||
@Nullable
|
||||
protected Float mLastComputedTaskStartPushOutDistance = null;
|
||||
@@ -1136,8 +1139,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
int targetScroll = getScrollForPage(indexOfChild(getFocusedTaskView()));
|
||||
if (!isClearAllHidden) {
|
||||
int clearAllWidth = mOrientationHandler.getPrimarySize(mClearAllButton);
|
||||
int taskGridHorizontalDiff = mActivity.getDeviceProfile().overviewTaskRect.right
|
||||
- mActivity.getDeviceProfile().overviewGridRect.right;
|
||||
int taskGridHorizontalDiff = mLastComputedTaskSize.right - mLastComputedGridSize.right;
|
||||
int clearAllFocusScrollDiff = taskGridHorizontalDiff - clearAllWidth;
|
||||
targetScroll += mIsRtl ? clearAllFocusScrollDiff : -clearAllFocusScrollDiff;
|
||||
}
|
||||
@@ -1676,7 +1678,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
|
||||
// Update RecentsView and TaskView's DeviceProfile dependent layout.
|
||||
updateOrientationHandler();
|
||||
mActionsView.updateDimension(dp);
|
||||
mActionsView.updateDimension(dp, mLastComputedTaskSize);
|
||||
}
|
||||
|
||||
private void updateOrientationHandler() {
|
||||
@@ -1732,7 +1734,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
// Update task size and padding that are dependent on DeviceProfile and insets.
|
||||
private void updateSizeAndPadding() {
|
||||
DeviceProfile dp = mActivity.getDeviceProfile();
|
||||
mTempRect.set(dp.overviewTaskRect);
|
||||
getTaskSize(mTempRect);
|
||||
mTaskWidth = mTempRect.width();
|
||||
mTaskHeight = mTempRect.height();
|
||||
|
||||
@@ -1741,9 +1743,14 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
dp.widthPx - mInsets.right - mTempRect.right,
|
||||
dp.heightPx - mInsets.bottom - mTempRect.bottom);
|
||||
|
||||
mTaskGridVerticalDiff = dp.getOverviewGridTaskRect(mIsRtl).top - dp.overviewTaskRect.top;
|
||||
mSizeStrategy.calculateGridSize(mActivity.getDeviceProfile(),
|
||||
mLastComputedGridSize);
|
||||
mSizeStrategy.calculateGridTaskSize(mActivity, mActivity.getDeviceProfile(),
|
||||
mLastComputedGridTaskSize, mOrientationHandler);
|
||||
|
||||
mTaskGridVerticalDiff = mLastComputedGridTaskSize.top - mLastComputedTaskSize.top;
|
||||
mTopBottomRowHeightDiff =
|
||||
dp.overviewGridTaskDimension.y + dp.overviewTaskThumbnailTopMarginPx
|
||||
mLastComputedGridTaskSize.height() + dp.overviewTaskThumbnailTopMarginPx
|
||||
+ dp.overviewRowSpacing;
|
||||
|
||||
// Force TaskView to update size from thumbnail
|
||||
@@ -1785,6 +1792,34 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
updateGridProperties(isTaskDismissal);
|
||||
}
|
||||
|
||||
public void getTaskSize(Rect outRect) {
|
||||
mSizeStrategy.calculateTaskSize(mActivity, mActivity.getDeviceProfile(), outRect);
|
||||
mLastComputedTaskSize.set(outRect);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the size of task selected to enter modal state.
|
||||
*/
|
||||
public Point getSelectedTaskSize() {
|
||||
mSizeStrategy.calculateTaskSize(mActivity, mActivity.getDeviceProfile(),
|
||||
mTempRect);
|
||||
return new Point(mTempRect.width(), mTempRect.height());
|
||||
}
|
||||
|
||||
/** Gets the last computed task size */
|
||||
public Rect getLastComputedTaskSize() {
|
||||
return mLastComputedTaskSize;
|
||||
}
|
||||
|
||||
public Rect getLastComputedGridTaskSize() {
|
||||
return mLastComputedGridTaskSize;
|
||||
}
|
||||
|
||||
/** Gets the task size for modal state. */
|
||||
public void getModalTaskSize(Rect outRect) {
|
||||
mSizeStrategy.calculateModalTaskSize(mActivity, mActivity.getDeviceProfile(), outRect);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean computeScrollHelper() {
|
||||
boolean scrolling = super.computeScrollHelper();
|
||||
@@ -2417,8 +2452,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
return;
|
||||
}
|
||||
|
||||
DeviceProfile dp = mActivity.getDeviceProfile();
|
||||
int taskTopMargin = dp.overviewTaskThumbnailTopMarginPx;
|
||||
int taskTopMargin = mActivity.getDeviceProfile().overviewTaskThumbnailTopMarginPx;
|
||||
|
||||
int topRowWidth = 0;
|
||||
int bottomRowWidth = 0;
|
||||
@@ -2461,7 +2495,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
gridTranslations[i] += mIsRtl ? taskWidthAndSpacing : -taskWidthAndSpacing;
|
||||
|
||||
// Center view vertically in case it's from different orientation.
|
||||
taskView.setGridTranslationY((dp.overviewTaskRect.height() + taskTopMargin
|
||||
taskView.setGridTranslationY((mLastComputedTaskSize.height() + taskTopMargin
|
||||
- taskView.getLayoutParams().height) / 2f);
|
||||
|
||||
if (taskView == snappedTaskView) {
|
||||
@@ -2577,11 +2611,11 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
// accordingly. Update longRowWidth if ClearAllButton has been moved.
|
||||
float clearAllShortTotalCompensation = 0;
|
||||
int longRowWidth = Math.max(topRowWidth, bottomRowWidth);
|
||||
if (longRowWidth < dp.overviewGridRect.width()) {
|
||||
float shortTotalCompensation = dp.overviewGridRect.width() - longRowWidth;
|
||||
if (longRowWidth < mLastComputedGridSize.width()) {
|
||||
float shortTotalCompensation = mLastComputedGridSize.width() - longRowWidth;
|
||||
clearAllShortTotalCompensation =
|
||||
mIsRtl ? -shortTotalCompensation : shortTotalCompensation;
|
||||
longRowWidth = dp.overviewGridRect.width();
|
||||
longRowWidth = mLastComputedGridSize.width();
|
||||
}
|
||||
|
||||
float clearAllTotalTranslationX =
|
||||
@@ -2598,8 +2632,9 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
if (snappedTaskView != null) {
|
||||
int distanceFromClearAll = longRowWidth - snappedTaskRowWidth + mPageSpacing;
|
||||
// ClearAllButton should be off screen when snapped task is in its snapped position.
|
||||
int minimumDistance = mTaskWidth - snappedTaskView.getLayoutParams().width
|
||||
+ (dp.overviewGridRect.width() - mTaskWidth) / 2;
|
||||
int minimumDistance =
|
||||
mTaskWidth - snappedTaskView.getLayoutParams().width
|
||||
+ (mLastComputedGridSize.width() - mTaskWidth) / 2;
|
||||
if (distanceFromClearAll < minimumDistance) {
|
||||
int distanceDifference = minimumDistance - distanceFromClearAll;
|
||||
snappedTaskGridTranslationX += mIsRtl ? distanceDifference : -distanceDifference;
|
||||
@@ -2614,9 +2649,9 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
|
||||
mClearAllButton.setGridTranslationPrimary(
|
||||
clearAllTotalTranslationX - snappedTaskGridTranslationX);
|
||||
mClearAllButton.setGridScrollOffset(mIsRtl
|
||||
? dp.overviewTaskRect.left - dp.overviewGridRect.left
|
||||
: dp.overviewTaskRect.right - dp.overviewGridRect.right);
|
||||
mClearAllButton.setGridScrollOffset(
|
||||
mIsRtl ? mLastComputedTaskSize.left - mLastComputedGridSize.left
|
||||
: mLastComputedTaskSize.right - mLastComputedGridSize.right);
|
||||
|
||||
setGridProgress(mGridProgress);
|
||||
}
|
||||
@@ -2869,8 +2904,8 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
boolean closeGapBetweenClearAll = false;
|
||||
boolean isClearAllHidden = isClearAllHidden();
|
||||
boolean snapToLastTask = false;
|
||||
DeviceProfile dp = mActivity.getDeviceProfile();
|
||||
boolean isLandscapeSplit = dp.isLandscape && isSplitSelectionActive();
|
||||
boolean isLandscapeSplit =
|
||||
mActivity.getDeviceProfile().isLandscape && isSplitSelectionActive();
|
||||
boolean isSplitPlaceholderFirstInGrid = isSplitPlaceholderFirstInGrid();
|
||||
boolean isSplitPlaceholderLastInGrid = isSplitPlaceholderLastInGrid();
|
||||
TaskView lastGridTaskView = showAsGrid ? getLastGridTaskView() : null;
|
||||
@@ -3061,7 +3096,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
dismissTranslationInterpolationEnd);
|
||||
if (taskView == nextFocusedTaskView) {
|
||||
// Enlarge the task to be focused next, and translate into focus position.
|
||||
float scale = mTaskWidth / (float) dp.overviewGridTaskDimension.x;
|
||||
float scale = mTaskWidth / (float) mLastComputedGridTaskSize.width();
|
||||
anim.setFloat(taskView, TaskView.SNAPSHOT_SCALE, scale,
|
||||
clampToProgress(LINEAR, animationStartProgress,
|
||||
dismissTranslationInterpolationEnd));
|
||||
@@ -3317,7 +3352,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
// Update various scroll-dependent UI.
|
||||
dispatchScrollChanged();
|
||||
updateActionsViewFocusedScroll();
|
||||
if (isClearAllHidden() && !dp.isTablet) {
|
||||
if (isClearAllHidden() && !mActivity.getDeviceProfile().isTablet) {
|
||||
mActionsView.updateDisabledFlags(OverviewActionsView.DISABLED_SCROLLING,
|
||||
false);
|
||||
}
|
||||
@@ -3715,6 +3750,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
updateEmptyStateUi(changed);
|
||||
|
||||
// Update the pivots such that when the task is scaled, it fills the full page
|
||||
getTaskSize(mTempRect);
|
||||
updatePivots();
|
||||
setTaskModalness(mTaskModalness);
|
||||
mLastComputedTaskStartPushOutDistance = null;
|
||||
@@ -3728,13 +3764,12 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
}
|
||||
|
||||
private void updatePivots() {
|
||||
DeviceProfile dp = mActivity.getDeviceProfile();
|
||||
if (mOverviewSelectEnabled) {
|
||||
setPivotX(dp.overviewTaskRect.centerX());
|
||||
setPivotY(dp.overviewTaskRect.bottom);
|
||||
setPivotX(mLastComputedTaskSize.centerX());
|
||||
setPivotY(mLastComputedTaskSize.bottom);
|
||||
} else {
|
||||
getPagedViewOrientedState().getFullScreenScaleAndPivot(dp.overviewTaskRect, dp,
|
||||
mTempPointF);
|
||||
getPagedViewOrientedState().getFullScreenScaleAndPivot(mTempRect,
|
||||
mActivity.getDeviceProfile(), mTempPointF);
|
||||
setPivotX(mTempPointF.x);
|
||||
setPivotY(mTempPointF.y);
|
||||
}
|
||||
@@ -4007,8 +4042,8 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
}
|
||||
|
||||
public void initiateSplitSelect(TaskView taskView) {
|
||||
int defaultSplitPosition =
|
||||
mOrientationHandler.getDefaultSplitPosition(mActivity.getDeviceProfile());
|
||||
int defaultSplitPosition = mOrientationHandler
|
||||
.getDefaultSplitPosition(mActivity.getDeviceProfile());
|
||||
initiateSplitSelect(taskView, defaultSplitPosition);
|
||||
}
|
||||
|
||||
@@ -4313,9 +4348,9 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
* Returns the scale up required on the view, so that it coves the screen completely
|
||||
*/
|
||||
public float getMaxScaleForFullScreen() {
|
||||
DeviceProfile dp = mActivity.getDeviceProfile();
|
||||
return getPagedViewOrientedState().getFullScreenScaleAndPivot(dp.overviewTaskRect,
|
||||
dp, mTempPointF);
|
||||
getTaskSize(mTempRect);
|
||||
return getPagedViewOrientedState().getFullScreenScaleAndPivot(
|
||||
mTempRect, mActivity.getDeviceProfile(), mTempPointF);
|
||||
}
|
||||
|
||||
public PendingAnimation createTaskLaunchAnimation(
|
||||
@@ -4822,15 +4857,17 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
int lastGridTaskViewPosition =
|
||||
getPositionInRow(lastGridTaskView, topRowIdArray, bottomRowIdArray);
|
||||
int taskViewPosition = getPositionInRow(taskView, topRowIdArray, bottomRowIdArray);
|
||||
DeviceProfile dp = mActivity.getDeviceProfile();
|
||||
Rect gridTaskRect = dp.getOverviewGridTaskRect(mIsRtl);
|
||||
int gridTaskSizeAndSpacing = gridTaskRect.width() + mPageSpacing;
|
||||
int gridTaskSizeAndSpacing = mLastComputedGridTaskSize.width() + mPageSpacing;
|
||||
int positionDiff = gridTaskSizeAndSpacing * (lastGridTaskViewPosition - taskViewPosition);
|
||||
|
||||
int lastTaskEnd = (mIsRtl ? dp.overviewGridRect.left : dp.overviewGridRect.right)
|
||||
int lastTaskEnd = (mIsRtl
|
||||
? mLastComputedGridSize.left
|
||||
: mLastComputedGridSize.right)
|
||||
+ (mIsRtl ? mPageSpacing : -mPageSpacing);
|
||||
int taskEnd = lastTaskEnd + (mIsRtl ? positionDiff : -positionDiff);
|
||||
int normalTaskEnd = mIsRtl ? gridTaskRect.left : gridTaskRect.right;
|
||||
int normalTaskEnd = mIsRtl
|
||||
? mLastComputedGridTaskSize.left
|
||||
: mLastComputedGridTaskSize.right;
|
||||
return taskEnd - normalTaskEnd;
|
||||
}
|
||||
|
||||
@@ -5136,12 +5173,14 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
while ((taskView == null || isTaskViewFullyVisible(taskView)) && targetPage - 1 >= 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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
+3
-113
@@ -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)
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
+1
-111
@@ -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)
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
+1
-111
@@ -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)
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
+3
-113
@@ -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)
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
@@ -176,6 +176,10 @@
|
||||
<!-- defaults to numColumns, if not specified -->
|
||||
<attr name="hotseatColumnSpanTwoPanelPortrait" format="integer" />
|
||||
|
||||
<!-- Spacing to have at the end of the nav buttons in large screen 3 button nav,
|
||||
defaults to @dimen/taskbar_button_margin_default -->
|
||||
<attr name="inlineNavButtonsEndSpacing" format="reference" />
|
||||
|
||||
<attr name="dbFile" format="string" />
|
||||
<attr name="defaultLayoutId" format="reference" />
|
||||
<attr name="defaultSplitDisplayLayoutId" format="reference" />
|
||||
|
||||
@@ -363,6 +363,12 @@
|
||||
<dimen name="taskbar_nav_buttons_size">0dp</dimen>
|
||||
<dimen name="taskbar_contextual_button_margin">0dp</dimen>
|
||||
<dimen name="taskbar_hotseat_nav_spacing">0dp</dimen>
|
||||
<dimen name="taskbar_button_margin_default">0dp</dimen>
|
||||
<dimen name="taskbar_button_space_inbetween">0dp</dimen>
|
||||
<dimen name="taskbar_button_margin_5_5">0dp</dimen>
|
||||
<dimen name="taskbar_button_margin_6_5">0dp</dimen>
|
||||
<dimen name="taskbar_button_margin_4_5">0dp</dimen>
|
||||
<dimen name="taskbar_button_margin_4_4">0dp</dimen>
|
||||
|
||||
<!-- Size of the maximum radius for the enforced rounded rectangles. -->
|
||||
<dimen name="enforced_rounded_corner_max_radius">16dp</dimen>
|
||||
@@ -383,9 +389,6 @@
|
||||
<dimen name="overview_grid_side_margin">0dp</dimen>
|
||||
<dimen name="overview_grid_row_spacing">0dp</dimen>
|
||||
<dimen name="overview_page_spacing">0dp</dimen>
|
||||
<dimen name="overview_minimum_next_prev_size">0dp</dimen>
|
||||
<item name="overview_max_scale" format="float" type="dimen">0.0</item>
|
||||
<item name="overview_modal_max_scale" format="float" type="dimen">0.0</item>
|
||||
<dimen name="split_placeholder_size">72dp</dimen>
|
||||
<dimen name="split_placeholder_inset">16dp</dimen>
|
||||
<dimen name="split_placeholder_icon_size">44dp</dimen>
|
||||
|
||||
@@ -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" >
|
||||
|
||||
<display-option
|
||||
launcher:name="Super Short Stubby"
|
||||
@@ -58,6 +58,7 @@
|
||||
launcher:numFolderColumns="4"
|
||||
launcher:numHotseatIcons="4"
|
||||
launcher:dbFile="launcher_4_by_4.db"
|
||||
launcher:inlineNavButtonsEndSpacing="@dimen/taskbar_button_margin_4_4"
|
||||
launcher:defaultLayoutId="@xml/default_workspace_4x4"
|
||||
launcher:deviceCategory="phone|multi_display" >
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -3024,7 +3024,7 @@ public class Launcher extends StatefulActivity<LauncherState>
|
||||
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);
|
||||
|
||||
@@ -208,14 +208,18 @@ public abstract class LauncherState implements BaseState<LauncherState> {
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user