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

Commit 102e65c1 authored by Sukesh Ram's avatar Sukesh Ram
Browse files

Make Navbar Secondary Handle Appear Correctly

Fixed issue where the secondary handle appears on the edge for a little bit when switching from immersive mode in portrait (such as watching a youtube video) to another app via quickswitch. Secondary handle no longer temporarily appears.

Flag: NONE
Test: Manually tested in Felix folded mode by holding phone vertically while watching a youtube video, trying to go to another app via quickswitch.
Bug: 299188745
Change-Id: Iabc3e7dc883cf06a4770bdb45621b4c52a871132
parent 6e9302f7
Loading
Loading
Loading
Loading
+39 −41
Original line number Diff line number Diff line
@@ -940,12 +940,12 @@ public class NavigationBar extends ViewController<NavigationBarView> implements

    private void orientSecondaryHomeHandle() {
        if (!canShowSecondaryHandle()) {
            if (mStartingQuickSwitchRotation == -1) {
                resetSecondaryHandle();
            }
            return;
        }

        if (mStartingQuickSwitchRotation == -1) {
            resetSecondaryHandle();
        } else {
        int deltaRotation = deltaRotation(mCurrentRotation, mStartingQuickSwitchRotation);
        if (mStartingQuickSwitchRotation == -1 || deltaRotation == -1) {
            // Curious if starting quickswitch can change between the if check and our delta
@@ -958,13 +958,11 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
        Rect dispSize = mWindowManager.getCurrentWindowMetrics().getBounds();
        mOrientationHandle.setDeltaRotation(deltaRotation);
        switch (deltaRotation) {
                case Surface.ROTATION_90:
                case Surface.ROTATION_270:
            case Surface.ROTATION_90, Surface.ROTATION_270:
                height = dispSize.height();
                width = mView.getHeight();
                break;
                case Surface.ROTATION_180:
                case Surface.ROTATION_0:
            case Surface.ROTATION_180, Surface.ROTATION_0:
                // TODO(b/152683657): Need to determine best UX for this
                if (!mShowOrientedHandleForImmersiveMode) {
                    resetSecondaryHandle();
@@ -984,7 +982,6 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
        mView.setVisibility(View.GONE);
        mOrientationHandle.setVisibility(View.VISIBLE);
    }
    }

    private void resetSecondaryHandle() {
        if (mOrientationHandle != null) {
@@ -1786,7 +1783,8 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
    }

    private boolean canShowSecondaryHandle() {
        return mNavBarMode == NAV_BAR_MODE_GESTURAL && mOrientationHandle != null;
        return mNavBarMode == NAV_BAR_MODE_GESTURAL && mOrientationHandle != null
                && mStartingQuickSwitchRotation != -1;
    }

    private final UserTracker.Callback mUserChangedCallback =