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

Commit f2ea0cdd authored by Sunny Goyal's avatar Sunny Goyal
Browse files

Fixing homescreen getting blank when returning from the overlay

Change-Id: Ie11b92cd59c90e71b9b58eeede742ef0c5b28380
parent 38f92cf9
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -1055,16 +1055,16 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
    }

    protected void getVisiblePages(int[] range) {
        final int pageCount = getChildCount();
        final int count = getChildCount();
        range[0] = -1;
        range[1] = -1;

        if (pageCount > 0) {
        if (count > 0) {
            final int visibleLeft = -getLeft();
            final int visibleRight = visibleLeft + getViewportWidth();
            final Matrix pageShiftMatrix = getPageShiftMatrix();
            int curScreen = 0;

            int count = getChildCount();
            for (int i = 0; i < count; i++) {
                View currPage = getPageAt(i);

@@ -1073,7 +1073,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
                sTmpRectF.right = currPage.getMeasuredWidth();
                currPage.getMatrix().mapRect(sTmpRectF);
                sTmpRectF.offset(currPage.getLeft() - getScrollX(), 0);
                getMatrix().mapRect(sTmpRectF);
                pageShiftMatrix.mapRect(sTmpRectF);

                if (sTmpRectF.left > visibleRight || sTmpRectF.right < visibleLeft) {
                    if (range[0] == -1) {
@@ -1096,6 +1096,10 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
        }
    }

    protected Matrix getPageShiftMatrix() {
        return getMatrix();
    }

    protected boolean shouldDrawChild(View child) {
        return child.getVisibility() == VISIBLE;
    }
+14 −0
Original line number Diff line number Diff line
@@ -173,6 +173,7 @@ public class Workspace extends PagedView
    @Thunk float[] mDragViewVisualCenter = new float[2];
    private float[] mTempCellLayoutCenterCoordinates = new float[2];
    private Matrix mTempInverseMatrix = new Matrix();
    private Matrix mTempMatrix = new Matrix();

    private SpringLoadedDragController mSpringLoadedDragController;
    private float mSpringLoadedShrinkFactor;
@@ -1344,6 +1345,7 @@ public class Workspace extends PagedView
        if (mIsRtl) {
            transX = -transX;
        }
        mOverlayTranslation = transX;

        // TODO(adamcohen): figure out a final effect here. We may need to recommend
        // different effects based on device performance. On at least one relatively high-end
@@ -1361,6 +1363,18 @@ public class Workspace extends PagedView
        }
    }

    @Override
    protected Matrix getPageShiftMatrix() {
        if (Float.compare(mOverlayTranslation, 0) != 0) {
            // The pages are translated by mOverlayTranslation. incorporate that in the
            // visible page calculation by shifting everything back by that same amount.
            mTempMatrix.set(getMatrix());
            mTempMatrix.postTranslate(-mOverlayTranslation, 0);
            return mTempMatrix;
        }
        return super.getPageShiftMatrix();
    }

    private void setTranslationAndAlpha(View v, float transX, float alpha) {
        if (v != null) {
            v.setTranslationX(transX);