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

Commit b6f4a0c6 authored by Heemin Seog's avatar Heemin Seog
Browse files

DO NOT MERGE Adjust window focusable by view controller

Some adjustments to note:
1. remove previous focusability changes per view controller
2. disallow calling insetsController.show/hide without window focus
3. update tests to depend on window focus
4. update DisplaySystemBarsController to refer to parent class for ime
insets

Bug: 163135884
Test: manual, atest :carsysui-presubmit
Change-Id: If5adf599bc2c676ad296f89566534c1fdc9f2492
parent 339c9812
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -141,7 +141,7 @@ public class CarKeyguardViewController extends OverlayViewController implements
    }

    @Override
    protected boolean shouldShowNavigationBar() {
    protected boolean shouldShowNavigationBarInsets() {
        return true;
    }

@@ -177,7 +177,6 @@ public class CarKeyguardViewController extends OverlayViewController implements
        mKeyguardStateController.notifyKeyguardState(mShowing, /* occluded= */ false);
        mCarNavigationBarController.showAllKeyguardButtons(/* isSetUp= */ true);
        start();
        getOverlayViewGlobalStateController().setWindowFocusable(/* focusable= */ true);
        reset(/* hideBouncerWhenShowing= */ false);
        notifyKeyguardUpdateMonitor();
    }
@@ -192,7 +191,6 @@ public class CarKeyguardViewController extends OverlayViewController implements
        mBouncer.hide(/* destroyView= */ true);
        mCarNavigationBarController.hideAllKeyguardButtons(/* isSetUp= */ true);
        stop();
        getOverlayViewGlobalStateController().setWindowFocusable(/* focusable= */ false);
        mKeyguardStateController.notifyKeyguardDoneFading();
        mHandler.post(mViewMediatorCallback::keyguardGone);
        notifyKeyguardUpdateMonitor();
@@ -237,7 +235,6 @@ public class CarKeyguardViewController extends OverlayViewController implements
    public void onCancelClicked() {
        if (mBouncer == null) return;

        getOverlayViewGlobalStateController().setWindowFocusable(/* focusable= */ false);
        getOverlayViewGlobalStateController().setWindowNeedsInput(/* needsInput= */ false);

        mBouncer.hide(/* destroyView= */ true);
+2 −2
Original line number Diff line number Diff line
@@ -193,12 +193,12 @@ public class NotificationPanelViewController extends OverlayPanelViewController
    }

    @Override
    protected boolean shouldShowNavigationBar() {
    protected boolean shouldShowNavigationBarInsets() {
        return true;
    }

    @Override
    protected boolean shouldShowStatusBar() {
    protected boolean shouldShowStatusBarInsets() {
        return true;
    }

+5 −0
Original line number Diff line number Diff line
@@ -77,6 +77,11 @@ public class FullScreenUserSwitcherViewController extends OverlayViewController
        registerCarUserManagerIfPossible();
    }

    @Override
    protected boolean shouldFocusWindow() {
        return false;
    }

    @Override
    protected void showInternal() {
        getLayout().setVisibility(View.VISIBLE);
+0 −2
Original line number Diff line number Diff line
@@ -238,7 +238,6 @@ public abstract class OverlayPanelViewController extends OverlayViewController {
        }

        onAnimateCollapsePanel();
        getOverlayViewGlobalStateController().setWindowFocusable(false);
        animatePanel(mClosingVelocity, /* isClosing= */ true);
    }

@@ -415,7 +414,6 @@ public abstract class OverlayPanelViewController extends OverlayViewController {
            getOverlayViewGlobalStateController().hideView(/* panelViewController= */ this);
        }
        getLayout().setVisibility(visible ? View.VISIBLE : View.INVISIBLE);
        getOverlayViewGlobalStateController().setWindowFocusable(visible);
    }

    /* ***************************************************************************************** *
+15 −4
Original line number Diff line number Diff line
@@ -136,16 +136,18 @@ public class OverlayViewController {
    }

    /**
     * Returns {@code true} if navigation bar should be displayed over this view.
     * Returns {@code true} if navigation bar insets should be displayed over this view. Has no
     * effect if {@link #shouldFocusWindow} returns {@code false}.
     */
    protected boolean shouldShowNavigationBar() {
    protected boolean shouldShowNavigationBarInsets() {
        return false;
    }

    /**
     * Returns {@code true} if status bar should be displayed over this view.
     * Returns {@code true} if status bar insets should be displayed over this view. Has no
     * effect if {@link #shouldFocusWindow} returns {@code false}.
     */
    protected boolean shouldShowStatusBar() {
    protected boolean shouldShowStatusBarInsets() {
        return false;
    }

@@ -156,6 +158,15 @@ public class OverlayViewController {
        return false;
    }

    /**
     * Returns {@code true} if the window should be focued when this view is visible. Note that
     * returning {@code false} here means that {@link #shouldShowStatusBarInsets} and
     * {@link #shouldShowNavigationBarInsets} will have no effect.
     */
    protected boolean shouldFocusWindow() {
        return true;
    }

    /**
     * Returns the insets types to fit to the sysui overlay window when this
     * {@link OverlayViewController} is in the foreground.
Loading