diff --git a/quickstep/res/values-land/dimens.xml b/quickstep/res/values-land/dimens.xml index ee594c8ac6..2b17b93e57 100644 --- a/quickstep/res/values-land/dimens.xml +++ b/quickstep/res/values-land/dimens.xml @@ -84,4 +84,5 @@ 205dp 119dp + diff --git a/quickstep/res/values-sw600dp-land/dimens.xml b/quickstep/res/values-sw600dp-land/dimens.xml index 9cb3fecfb4..5e9a177b8b 100644 --- a/quickstep/res/values-sw600dp-land/dimens.xml +++ b/quickstep/res/values-sw600dp-land/dimens.xml @@ -27,4 +27,10 @@ 40dp 49dp + + + 24dp + + 40dp + diff --git a/quickstep/res/values-sw600dp/dimens.xml b/quickstep/res/values-sw600dp/dimens.xml index daf1f63dc1..f9528b3632 100644 --- a/quickstep/res/values-sw600dp/dimens.xml +++ b/quickstep/res/values-sw600dp/dimens.xml @@ -33,6 +33,10 @@ 36dp 64dp + + 80dp + + 80dp 24dp diff --git a/quickstep/src/com/android/quickstep/BaseActivityInterface.java b/quickstep/src/com/android/quickstep/BaseActivityInterface.java index 25389c5a09..88933f416f 100644 --- a/quickstep/src/com/android/quickstep/BaseActivityInterface.java +++ b/quickstep/src/com/android/quickstep/BaseActivityInterface.java @@ -267,7 +267,7 @@ public abstract class BaseActivityInterface0dp 0dp 0dp + 0dp + 0dp + 72dp 16dp 44dp @@ -423,7 +426,7 @@ 10dp 24dp 60dp - + 28dp 6dp diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java index 2ac60984c6..2006eccac5 100644 --- a/src/com/android/launcher3/DeviceProfile.java +++ b/src/com/android/launcher3/DeviceProfile.java @@ -299,6 +299,7 @@ public class DeviceProfile { public final int stashedTaskbarHeight; public final int taskbarBottomMargin; public final int taskbarIconSize; + private final int mTransientTaskbarClaimedSpace; // If true, used to layout taskbar in 3 button navigation mode. public final boolean startAlignTaskbar; public final boolean isTransientTaskbar; @@ -370,18 +371,23 @@ public class DeviceProfile { } this.isTransientTaskbar = isTransientTaskbar; + int transientTaskbarIconSize = pxFromDp(inv.transientTaskbarIconSize[mTypeIndex], mMetrics); + int transientTaskbarBottomMargin = + res.getDimensionPixelSize(R.dimen.transient_taskbar_bottom_margin); + int transientTaskbarHeight = + Math.round((transientTaskbarIconSize * ICON_VISIBLE_AREA_FACTOR) + + (2 * res.getDimensionPixelSize(R.dimen.transient_taskbar_padding))); + mTransientTaskbarClaimedSpace = transientTaskbarHeight + 2 * transientTaskbarBottomMargin; + if (!isTaskbarPresent) { taskbarIconSize = taskbarHeight = stashedTaskbarHeight = taskbarBottomMargin = 0; startAlignTaskbar = false; } else if (isTransientTaskbar) { - float invTransientIconSizeDp = inv.transientTaskbarIconSize[mTypeIndex]; - taskbarIconSize = pxFromDp(invTransientIconSizeDp, mMetrics); - taskbarHeight = Math.round((taskbarIconSize * ICON_VISIBLE_AREA_FACTOR) - + (2 * res.getDimensionPixelSize(R.dimen.transient_taskbar_padding))); + taskbarIconSize = transientTaskbarIconSize; + taskbarHeight = transientTaskbarHeight; stashedTaskbarHeight = res.getDimensionPixelSize(R.dimen.transient_taskbar_stashed_height); - taskbarBottomMargin = - res.getDimensionPixelSize(R.dimen.transient_taskbar_bottom_margin); + taskbarBottomMargin = transientTaskbarBottomMargin; startAlignTaskbar = false; } else { taskbarIconSize = pxFromDp(ResourcesCompat.getFloat(res, R.dimen.taskbar_icon_size), @@ -1760,14 +1766,9 @@ public class DeviceProfile { return getHotseatBarBottomPadding() + launcherIconBottomSpace - taskbarIconBottomSpace; } - /** - * Returns the number of pixels required below OverviewActions excluding insets. - */ + /** Returns the number of pixels required below OverviewActions. */ public int getOverviewActionsClaimedSpaceBelow() { - if (isTaskbarPresent) { - return taskbarHeight + taskbarBottomMargin * 2; - } - return mInsets.bottom; + return isTaskbarPresent ? mTransientTaskbarClaimedSpace : mInsets.bottom; } /** Gets the space that the overview actions will take, including bottom margin. */ diff --git a/tests/Android.bp b/tests/Android.bp index a3d05bb363..8725b46f69 100644 --- a/tests/Android.bp +++ b/tests/Android.bp @@ -40,19 +40,14 @@ filegroup { "src/com/android/launcher3/ui/PortraitLandscapeRunner.java", "src/com/android/launcher3/ui/TestViewHelpers.java", "src/com/android/launcher3/util/LauncherLayoutBuilder.java", + "src/com/android/launcher3/util/ModelTestExtensions.kt", "src/com/android/launcher3/util/TestConstants.java", "src/com/android/launcher3/util/TestUtil.java", "src/com/android/launcher3/util/Wait.java", "src/com/android/launcher3/util/WidgetUtils.java", - "src/com/android/launcher3/util/rule/FailureWatcher.java", - "src/com/android/launcher3/util/rule/ViewCaptureRule.kt", + "src/com/android/launcher3/util/rule/*.java", + "src/com/android/launcher3/util/rule/*.kt", "src/com/android/launcher3/util/viewcapture_analysis/*.java", - "src/com/android/launcher3/util/rule/SamplerRule.java", - "src/com/android/launcher3/util/rule/ScreenRecordRule.java", - "src/com/android/launcher3/util/rule/ShellCommandRule.java", - "src/com/android/launcher3/util/rule/TestIsolationRule.java", - "src/com/android/launcher3/util/rule/TestStabilityRule.java", - "src/com/android/launcher3/util/ModelTestExtensions.kt", "src/com/android/launcher3/testcomponent/*.java", "src/com/android/launcher3/testcomponent/*.kt", ], diff --git a/tests/src/com/android/launcher3/util/rule/SetFlagsRuleExt.kt b/tests/src/com/android/launcher3/util/rule/SetFlagsRuleExt.kt new file mode 100644 index 0000000000..d6824561c1 --- /dev/null +++ b/tests/src/com/android/launcher3/util/rule/SetFlagsRuleExt.kt @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.launcher3.util.rule + +import android.platform.test.flag.junit.SetFlagsRule + +fun SetFlagsRule.setFlags(enabled: Boolean, vararg flagName: String) { + if (enabled) enableFlags(*flagName) else disableFlags(*flagName) +}