Merge "Use same calculation for portrait as fake landscape for layout of split thumbnails" into udc-dev am: 5873535e49
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/23214517
Change-Id: I7d24345d9fb7dfcd046ddb662a3e90bba9c19199
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/src/com/android/launcher3/touch/PortraitPagedViewHandler.java b/src/com/android/launcher3/touch/PortraitPagedViewHandler.java
index 050e88f..6a972eb 100644
--- a/src/com/android/launcher3/touch/PortraitPagedViewHandler.java
+++ b/src/com/android/launcher3/touch/PortraitPagedViewHandler.java
@@ -589,17 +589,17 @@
float scaledDividerHeight = dividerHeight * scale;
if (desiredStagePosition == SplitConfigurationOptions.STAGE_POSITION_TOP_OR_LEFT) {
- if (splitInfo.appsStackedVertically) {
- outRect.bottom = Math.round(outRect.top + scaledTopTaskHeight);
- } else {
+ if (dp.isLandscape) {
outRect.right = outRect.left + Math.round(outRect.width() * topLeftTaskPercent);
+ } else {
+ outRect.bottom = Math.round(outRect.top + scaledTopTaskHeight);
}
} else {
- if (splitInfo.appsStackedVertically) {
- outRect.top += Math.round(scaledTopTaskHeight + scaledDividerHeight);
- } else {
+ if (dp.isLandscape) {
outRect.left += Math.round(outRect.width()
* (topLeftTaskPercent + dividerBarPercent));
+ } else {
+ outRect.top += Math.round(scaledTopTaskHeight + scaledDividerHeight);
}
}
}
@@ -610,9 +610,9 @@
DeviceProfile dp, boolean isRtl) {
int spaceAboveSnapshot = dp.overviewTaskThumbnailTopMarginPx;
int totalThumbnailHeight = parentHeight - spaceAboveSnapshot;
- int dividerBar = Math.round(splitBoundsConfig.appsStackedVertically
- ? splitBoundsConfig.dividerHeightPercent * dp.availableHeightPx
- : splitBoundsConfig.dividerWidthPercent * parentWidth);
+ float dividerScale = splitBoundsConfig.appsStackedVertically
+ ? splitBoundsConfig.dividerHeightPercent
+ : splitBoundsConfig.dividerWidthPercent;
int primarySnapshotHeight;
int primarySnapshotWidth;
int secondarySnapshotHeight;
@@ -620,12 +620,13 @@
float taskPercent = splitBoundsConfig.appsStackedVertically ?
splitBoundsConfig.topTaskPercent : splitBoundsConfig.leftTaskPercent;
if (dp.isLandscape) {
+ int scaledDividerBar = Math.round(parentWidth * dividerScale);
primarySnapshotHeight = totalThumbnailHeight;
primarySnapshotWidth = Math.round(parentWidth * taskPercent);
secondarySnapshotHeight = totalThumbnailHeight;
- secondarySnapshotWidth = parentWidth - primarySnapshotWidth - dividerBar;
- int translationX = primarySnapshotWidth + dividerBar;
+ secondarySnapshotWidth = parentWidth - primarySnapshotWidth - scaledDividerBar;
+ int translationX = primarySnapshotWidth + scaledDividerBar;
if (isRtl) {
primarySnapshot.setTranslationX(-translationX);
secondarySnapshot.setTranslationX(0);
@@ -640,7 +641,7 @@
} else {
float scale = (float) totalThumbnailHeight / dp.availableHeightPx;
float topTaskHeight = dp.availableHeightPx * taskPercent;
- float finalDividerHeight = dividerBar * scale;
+ float finalDividerHeight = Math.round(totalThumbnailHeight * dividerScale);
float scaledTopTaskHeight = topTaskHeight * scale;
primarySnapshotWidth = parentWidth;
primarySnapshotHeight = Math.round(scaledTopTaskHeight);