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

Verified Commit 5def899d authored by Kshitij's avatar Kshitij Committed by Saalim Quadri
Browse files

fix: Redo Workspace and CellLayout paddings

parent 44c4c306
Loading
Loading
Loading
Loading
+25 −7
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ import android.util.SparseArray;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.Surface;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowInsets;
@@ -135,6 +136,7 @@ import com.android.launcher3.util.PackageUserKey;
import com.android.launcher3.util.RunnableList;
import com.android.launcher3.util.Thunk;
import com.android.launcher3.util.WallpaperOffsetInterpolator;
import com.android.launcher3.util.window.WindowManagerProxy;
import com.android.launcher3.views.FloatingIconView;
import com.android.launcher3.widget.LauncherAppWidgetHostView;
import com.android.launcher3.widget.LauncherWidgetHolder;
@@ -394,7 +396,14 @@ public class Workspace<T extends View & PageIndicator> extends PagedView<T>
        mWorkspaceFadeInAdjacentScreens = grid.shouldFadeAdjacentWorkspaceScreens();

        Rect padding = grid.workspacePadding;
        // We need padding zeroed out for minus one page.
        // Also handle vertical bar layout padding manually under
        // updateCellLayoutPadding
        if (grid.isLandscape) {
            setPadding(0, padding.top, 0, padding.bottom);
        } else {
            setPadding(padding.left, padding.top, padding.right, padding.bottom);
        }
        mInsets.set(insets);

        if (mWorkspaceFadeInAdjacentScreens) {
@@ -452,15 +461,24 @@ public class Workspace<T extends View & PageIndicator> extends PagedView<T>
    }

    private void updateCellLayoutMeasures() {
        Rect padding = mLauncher.getDeviceProfile().cellLayoutPaddingPx;
        DeviceProfile grid = mLauncher.getDeviceProfile();
        Rect padding = grid.cellLayoutPaddingPx;
        int orientation = WindowManagerProxy.INSTANCE.get(mLauncher).getRotation(mLauncher);
        int hotseatLeftCorrection = (grid.isVerticalBarLayout() && orientation == Surface.ROTATION_270)
                ? grid.hotseatBarSizePx : 0;
        int hotseatRightCorrection = (grid.isVerticalBarLayout() && orientation == Surface.ROTATION_90)
                ? grid.hotseatBarSizePx : 0;

        mWorkspaceScreens.forEach(cellLayout -> {
            int widgetPadding = getResources().getDimensionPixelSize(R.dimen.widget_page_all_padding);
            int paddingTop = (cellLayout == mWorkspaceScreens.get(FIRST_SCREEN_ID)) ? 0 : padding.top;
            int paddingBottom = (cellLayout == mWorkspaceScreens.get(FIRST_SCREEN_ID)) ? 0 : padding.bottom;
            int paddingLeft = (cellLayout == mWorkspaceScreens.get(FIRST_SCREEN_ID))? widgetPadding : padding.left;
            int paddingRight = (cellLayout == mWorkspaceScreens.get(FIRST_SCREEN_ID))? widgetPadding : padding.right;
            cellLayout.setPadding(paddingLeft, paddingTop, paddingRight, paddingBottom);
            int paddingLeft = (cellLayout == mWorkspaceScreens.get(FIRST_SCREEN_ID))
                    ? widgetPadding : (padding.left + hotseatLeftCorrection);
            int paddingRight = (cellLayout == mWorkspaceScreens.get(FIRST_SCREEN_ID))
                    ? widgetPadding : (padding.right + hotseatRightCorrection);
            cellLayout.setSpaceBetweenCellLayoutsPx(getPageSpacing() / 4);
            cellLayout.setPadding(paddingLeft, paddingTop, paddingRight, paddingBottom);
        });
    }