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

Commit efc7a2e2 authored by Jim Miller's avatar Jim Miller Committed by The Android Automerger
Browse files

Always enable hardware layers in widgets in keyguard while dragging.

This fixes a performance issue on the 7" tablet where disabling hardware
layers in landscape mode resulted in extremely bad drawing performance.

The code now enables hardware layers for all the widgets while the user
is dragging.

Fixes bug 7274971

Change-Id: Iafd18fb317fcd3caad45791fe5a0f111d40a1ed4
parent db74299f
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -117,14 +117,7 @@ public class KeyguardWidgetFrame extends FrameLayout {
            mOverScrollAmount = r;
            mForegroundGradient = left ? mLeftToRightGradient : mRightToLeftGradient;
            mForegroundAlpha = (int) Math.round((0.85f * r * 255));
            if (getLayerType() != LAYER_TYPE_HARDWARE) {
                setLayerType(LAYER_TYPE_HARDWARE, null);
            }
            invalidate();
        } else {
            if (getLayerType() != LAYER_TYPE_NONE) {
                setLayerType(LAYER_TYPE_NONE, null);
            }
        }
    }
}
+19 −0
Original line number Diff line number Diff line
@@ -76,6 +76,25 @@ public class KeyguardWidgetPager extends PagedView {
        }
    }

    @Override
    protected void onPageBeginMoving() {
        // Enable hardware layers while pages are moving
        // TODO: We should only do this for the two views that are actually moving
        int children = getChildCount();
        for (int i = 0; i < children; i++) {
            getChildAt(i).setLayerType(LAYER_TYPE_HARDWARE, null);
        }
    }

    @Override
    protected void onPageEndMoving() {
        // Disable hardware layers while pages are moving
        int children = getChildCount();
        for (int i = 0; i < children; i++) {
            getChildAt(i).setLayerType(LAYER_TYPE_NONE, null);
        }
    }

    /*
     * This interpolator emulates the rate at which the perceived scale of an object changes
     * as its distance from a camera increases. When this interpolator is applied to a scale