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
This commit is contained in:
parent
76648c58d5
commit
4f7eb4077e
|
@ -2,8 +2,6 @@
|
|||
<!-- Dynamic Grid -->
|
||||
<!-- Out of 100, the percent of space the overview bar should try and take vertically. -->
|
||||
<integer name="config_dynamic_grid_overview_icon_zone_percentage">20</integer>
|
||||
<!-- Out of 100, the percent to shrink the workspace during overview mode. -->
|
||||
<integer name="config_dynamic_grid_overview_scale_percentage">80</integer>
|
||||
|
||||
<!-- Miscellaneous -->
|
||||
<bool name="config_largeHeap">false</bool>
|
||||
|
@ -30,6 +28,8 @@
|
|||
|
||||
<!-- Out of 100, the percent to shrink the workspace during spring loaded mode. -->
|
||||
<integer name="config_workspaceSpringLoadShrinkPercentage">80</integer>
|
||||
<!-- Out of 100, the percent to shrink the workspace during overview mode. -->
|
||||
<integer name="config_workspaceOverviewShrinkPercentage">70</integer>
|
||||
|
||||
<!-- Fade/zoom in/out duration & scale in a Launcher overlay transition.
|
||||
Note: This should be less than the config_overlayTransitionTime as they happen together. -->
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue