Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4f7eb407 authored by Winson Chung's avatar Winson Chung
Browse files

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
parent 76648c58
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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. -->
+5 −14
Original line number Diff line number Diff line
@@ -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) {
+12 −9
Original line number Diff line number Diff line
@@ -307,7 +307,8 @@ public class Workspace extends PagedView
                R.styleable.Workspace, defStyle, 0);
        mSpringLoadedShrinkFactor =
                res.getInteger(R.integer.config_workspaceSpringLoadShrinkPercentage) / 100.0f;
        mOverviewModeShrinkFactor = grid.getOverviewModeScale(mIsRtl);
        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;
    }

    /**
+2 −1
Original line number Diff line number Diff line
@@ -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();
    }