diff options
author | Winson Chung <winsonc@google.com> | 2015-07-10 18:00:48 -0700 |
---|---|---|
committer | Winson Chung <winsonc@google.com> | 2015-07-10 18:23:08 -0700 |
commit | 4f7eb4077e901a28b2b698060079292b56e991bd (patch) | |
tree | 570acbf776e1a1279d1c201fc1e12e2fe419f1b7 /src/com/android | |
parent | 76648c58d5fe8e5c0695f865243d3f421c53a84d (diff) | |
download | android_packages_apps_Trebuchet-4f7eb4077e901a28b2b698060079292b56e991bd.tar.gz android_packages_apps_Trebuchet-4f7eb4077e901a28b2b698060079292b56e991bd.tar.bz2 android_packages_apps_Trebuchet-4f7eb4077e901a28b2b698060079292b56e991bd.zip |
Fixing overview mode scale calculations.
- Making the overview scale apply just like the spring loaded scale factor
- Tweaking overview scale to make it not so small
Change-Id: If93bac08609b0cfd9c9d9f8f6057498957378b56
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/launcher3/DeviceProfile.java | 19 | ||||
-rw-r--r-- | src/com/android/launcher3/Workspace.java | 21 | ||||
-rw-r--r-- | src/com/android/launcher3/WorkspaceStateTransitionAnimation.java | 3 |
3 files changed, 19 insertions, 24 deletions
diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java index a50540d26..1c0743cbc 100644 --- a/src/com/android/launcher3/DeviceProfile.java +++ b/src/com/android/launcher3/DeviceProfile.java @@ -25,6 +25,7 @@ import android.graphics.Paint.FontMetrics; import android.graphics.Point; import android.graphics.Rect; import android.util.DisplayMetrics; +import android.util.Size; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; @@ -56,7 +57,6 @@ public class DeviceProfile { private final int overviewModeBarItemWidthPx; private final int overviewModeBarSpacerWidthPx; private final float overviewModeIconZoneRatio; - private final float overviewModeScaleFactor; // Workspace private int desiredWorkspaceLeftRightMarginPx; @@ -136,8 +136,6 @@ public class DeviceProfile { res.getDimensionPixelSize(R.dimen.dynamic_grid_overview_bar_spacer_width); overviewModeIconZoneRatio = res.getInteger(R.integer.config_dynamic_grid_overview_icon_zone_percentage) / 100f; - overviewModeScaleFactor = - res.getInteger(R.integer.config_dynamic_grid_overview_scale_percentage) / 100f; iconDrawablePaddingOriginalPx = res.getDimensionPixelSize(R.dimen.dynamic_grid_icon_drawable_padding); @@ -338,18 +336,11 @@ public class DeviceProfile { } } - Rect getOverviewModeButtonBarRect() { + int getOverviewModeButtonBarHeight() { int zoneHeight = (int) (overviewModeIconZoneRatio * availableHeightPx); zoneHeight = Math.min(overviewModeMaxIconZoneHeightPx, Math.max(overviewModeMinIconZoneHeightPx, zoneHeight)); - return new Rect(0, availableHeightPx - zoneHeight, 0, availableHeightPx); - } - - public float getOverviewModeScale(boolean isLayoutRtl) { - Rect workspacePadding = getWorkspacePadding(isLayoutRtl); - Rect overviewBar = getOverviewModeButtonBarRect(); - int pageSpace = availableHeightPx - workspacePadding.top - workspacePadding.bottom; - return (overviewModeScaleFactor * (pageSpace - overviewBar.height())) / pageSpace; + return zoneHeight; } // The rect returned will be extended to below the system ui that covers the workspace @@ -480,7 +471,7 @@ public class DeviceProfile { // Layout the Overview Mode ViewGroup overviewMode = launcher.getOverviewPanel(); if (overviewMode != null) { - Rect r = getOverviewModeButtonBarRect(); + int overviewButtonBarHeight = getOverviewModeButtonBarHeight(); lp = (FrameLayout.LayoutParams) overviewMode.getLayoutParams(); lp.gravity = Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM; @@ -489,7 +480,7 @@ public class DeviceProfile { int maxWidth = totalItemWidth + (visibleChildCount-1) * overviewModeBarSpacerWidthPx; lp.width = Math.min(availableWidthPx, maxWidth); - lp.height = r.height(); + lp.height = overviewButtonBarHeight; overviewMode.setLayoutParams(lp); if (lp.width > totalItemWidth && visibleChildCount > 1) { diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index 4a6b90afe..267787be8 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -306,8 +306,9 @@ public class Workspace extends PagedView TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.Workspace, defStyle, 0); mSpringLoadedShrinkFactor = - res.getInteger(R.integer.config_workspaceSpringLoadShrinkPercentage) / 100.0f; - mOverviewModeShrinkFactor = grid.getOverviewModeScale(mIsRtl); + res.getInteger(R.integer.config_workspaceSpringLoadShrinkPercentage) / 100.0f; + mOverviewModeShrinkFactor = + res.getInteger(R.integer.config_workspaceOverviewShrinkPercentage) / 100f; mOriginalDefaultPage = mDefaultPage = a.getInt(R.styleable.Workspace_defaultScreen, 1); a.recycle(); @@ -1952,15 +1953,17 @@ public class Workspace extends PagedView int getOverviewModeTranslationY() { DeviceProfile grid = mLauncher.getDeviceProfile(); - Rect overviewBar = grid.getOverviewModeButtonBarRect(); + Rect workspacePadding = grid.getWorkspacePadding(Utilities.isRtl(getResources())); + int overviewButtonBarHeight = grid.getOverviewModeButtonBarHeight(); - int availableHeight = getViewportHeight(); int scaledHeight = (int) (mOverviewModeShrinkFactor * getNormalChildHeight()); - int offsetFromTopEdge = (availableHeight - scaledHeight) / 2; - int offsetToCenterInOverview = (availableHeight - mInsets.top - overviewBar.height() - - scaledHeight) / 2; - - return -offsetFromTopEdge + mInsets.top + offsetToCenterInOverview; + int workspaceTop = mInsets.top + workspacePadding.top; + int workspaceBottom = getViewportHeight() - mInsets.bottom - workspacePadding.bottom; + int overviewTop = mInsets.top; + int overviewBottom = getViewportHeight() - mInsets.bottom - overviewButtonBarHeight; + int workspaceOffsetTopEdge = workspaceTop + ((workspaceBottom - workspaceTop) - scaledHeight) / 2; + int overviewOffsetTopEdge = overviewTop + (overviewBottom - overviewTop - scaledHeight) / 2; + return -workspaceOffsetTopEdge + overviewOffsetTopEdge; } /** diff --git a/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java b/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java index b8916a72b..e908ccd81 100644 --- a/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java +++ b/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java @@ -211,8 +211,9 @@ public class WorkspaceStateTransitionAnimation { mOverlayTransitionTime = res.getInteger(R.integer.config_overlayTransitionTime); mSpringLoadedShrinkFactor = res.getInteger(R.integer.config_workspaceSpringLoadShrinkPercentage) / 100f; + mOverviewModeShrinkFactor = + res.getInteger(R.integer.config_workspaceOverviewShrinkPercentage) / 100f; mWorkspaceScrimAlpha = res.getInteger(R.integer.config_workspaceScrimAlpha) / 100f; - mOverviewModeShrinkFactor = grid.getOverviewModeScale(Utilities.isRtl(res)); mWorkspaceFadeInAdjacentScreens = grid.shouldFadeAdjacentWorkspaceScreens(); } |