diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java index a48c9288d3..be43e6ca4f 100644 --- a/src/com/android/launcher3/DeviceProfile.java +++ b/src/com/android/launcher3/DeviceProfile.java @@ -294,6 +294,7 @@ public class DeviceProfile { public final int taskbarIconSize; // If true, used to layout taskbar in 3 button navigation mode. public final boolean startAlignTaskbar; + public final boolean isTransientTaskbar; // DragController public int flingToDeleteThresholdVelocity; @@ -361,7 +362,8 @@ public class DeviceProfile { } } - if (DisplayController.isTransientTaskbar(context)) { + isTransientTaskbar = DisplayController.isTransientTaskbar(context); + if (isTransientTaskbar) { float invTransientIconSizeDp = inv.transientTaskbarIconSize[mTypeIndex]; taskbarIconSize = pxFromDp(invTransientIconSizeDp, mMetrics); taskbarHeight = Math.round((taskbarIconSize * ICON_VISIBLE_AREA_FACTOR) diff --git a/src/com/android/launcher3/touch/PortraitPagedViewHandler.java b/src/com/android/launcher3/touch/PortraitPagedViewHandler.java index 6a972eb0dd..dc4621e0c1 100644 --- a/src/com/android/launcher3/touch/PortraitPagedViewHandler.java +++ b/src/com/android/launcher3/touch/PortraitPagedViewHandler.java @@ -582,7 +582,8 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler { ? splitInfo.dividerHeightPercent : splitInfo.dividerWidthPercent; - float scale = (float) outRect.height() / dp.availableHeightPx; + int taskbarHeight = dp.isTransientTaskbar ? 0 : dp.taskbarHeight; + float scale = (float) outRect.height() / (dp.availableHeightPx - taskbarHeight); float topTaskHeight = dp.availableHeightPx * topLeftTaskPercent; float scaledTopTaskHeight = topTaskHeight * scale; float dividerHeight = dp.availableHeightPx * dividerBarPercent; @@ -639,7 +640,8 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler { // Reset unused translations primarySnapshot.setTranslationY(0); } else { - float scale = (float) totalThumbnailHeight / dp.availableHeightPx; + int taskbarHeight = dp.isTransientTaskbar ? 0 : dp.taskbarHeight; + float scale = (float) totalThumbnailHeight / (dp.availableHeightPx - taskbarHeight); float topTaskHeight = dp.availableHeightPx * taskPercent; float finalDividerHeight = Math.round(totalThumbnailHeight * dividerScale); float scaledTopTaskHeight = topTaskHeight * scale;