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

Commit d005334b authored by Aaron Heuckroth's avatar Aaron Heuckroth
Browse files

Initialize rotation when HardwareUILayout is constructed in landscape.

Test: Automated tests pass, classic power menu appears correct when created in landscape mode.

Fixes: 126220438
Fixes: 126221661

Change-Id: I63863c21d09b35100a9ed89d0c2ed0d3868e3aea
parent 437ca649
Loading
Loading
Loading
Loading
+20 −2
Original line number Diff line number Diff line
@@ -63,6 +63,9 @@ public class HardwareUiLayout extends MultiListLayout implements Tunable {

    public HardwareUiLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
        // Manually re-initialize mRotation to portrait-mode, since this view must always
        // be constructed in portrait mode and rotated into the correct initial position.
        mRotation = ROTATION_NONE;
        updateSettings();
    }

@@ -172,6 +175,10 @@ public class HardwareUiLayout extends MultiListLayout implements Tunable {
                mSeparatedView.setBackground(mSeparatedViewBackground);
                updateEdgeMargin(mEdgeBleed ? 0 : getEdgePadding());
                mOldHeight = mList.getMeasuredHeight();

                // Must be called to initialize view rotation correctly.
                // Requires LayoutParams, hence why this isn't called during the constructor.
                updateRotation();
            } else {
                return;
            }
@@ -189,7 +196,18 @@ public class HardwareUiLayout extends MultiListLayout implements Tunable {
        mSwapOrientation = swapOrientation;
    }

    @Override
    private void updateRotation() {
        int rotation = RotationUtils.getRotation(getContext());
        if (rotation != mRotation) {
            rotate(mRotation, rotation);
            mRotation = rotation;
        }
    }

    /**
     *  Requires LayoutParams to be set to work correctly, and therefore must be run after after
     *  the HardwareUILayout has been added to the view hierarchy.
     */
    protected void rotate(int from, int to) {
        super.rotate(from, to);
        if (from != ROTATION_NONE && to != ROTATION_NONE) {