Loading packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java +51 −6 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ package com.android.systemui.navigationbar; import static android.app.StatusBarManager.NAVIGATION_HINT_BACK_ALT; import static android.app.StatusBarManager.NAVIGATION_HINT_IME_SHOWN; import static android.app.StatusBarManager.WINDOW_STATE_SHOWING; import static android.view.InsetsState.ITYPE_NAVIGATION_BAR; import static android.view.InsetsState.ITYPE_EXTRA_NAVIGATION_BAR; import static android.view.InsetsState.containsType; import static android.view.WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE; import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION; Loading Loading @@ -86,6 +86,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, private static final String TAG = TaskbarDelegate.class.getSimpleName(); private final EdgeBackGestureHandler mEdgeBackGestureHandler; private final NavigationBarOverlayController mNavBarOverlayController; private boolean mInitialized; private CommandQueue mCommandQueue; private OverviewProxyService mOverviewProxyService; Loading Loading @@ -140,6 +141,13 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, @Override public void hide() { clearTransient(); } }; private final Consumer<Boolean> mNavbarOverlayVisibilityChangeCallback = (visible) -> { if (visible) { mAutoHideController.touchAutoHide(); } }; Loading @@ -147,6 +155,11 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, public TaskbarDelegate(Context context) { mEdgeBackGestureHandler = Dependency.get(EdgeBackGestureHandler.Factory.class) .create(context); mNavBarOverlayController = Dependency.get(NavigationBarOverlayController.class); if (mNavBarOverlayController.isNavigationBarOverlayEnabled()) { mNavBarOverlayController.init(mNavbarOverlayVisibilityChangeCallback, mEdgeBackGestureHandler::updateNavigationBarOverlayExcludeRegion); } mContext = context; mDisplayManager = mContext.getSystemService(DisplayManager.class); mPipListener = mEdgeBackGestureHandler::setPipStashExclusionBounds; Loading Loading @@ -206,6 +219,9 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, mNavigationModeController.addListener(this)); mNavBarHelper.registerNavTaskStateUpdater(mNavbarTaskbarStateUpdater); mNavBarHelper.init(); if (mNavBarOverlayController.isNavigationBarOverlayEnabled()) { mNavBarOverlayController.registerListeners(); } mEdgeBackGestureHandler.onNavBarAttached(); // Initialize component callback Display display = mDisplayManager.getDisplay(displayId); Loading @@ -229,6 +245,9 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, mNavigationModeController.removeListener(this); mNavBarHelper.removeNavTaskStateUpdater(mNavbarTaskbarStateUpdater); mNavBarHelper.destroy(); if (mNavBarOverlayController.isNavigationBarOverlayEnabled()) { mNavBarOverlayController.unregisterListeners(); } mEdgeBackGestureHandler.onNavBarDetached(); mScreenPinningNotify = null; if (mWindowContext != null) { Loading Loading @@ -354,10 +373,13 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, if (displayId != mDisplayId) { return; } if (!containsType(types, ITYPE_NAVIGATION_BAR)) { if (!containsType(types, ITYPE_EXTRA_NAVIGATION_BAR)) { return; } if (!mTaskbarTransientShowing) { mTaskbarTransientShowing = true; onTransientStateChanged(); } } @Override Loading @@ -365,15 +387,14 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, if (displayId != mDisplayId) { return; } if (!containsType(types, ITYPE_NAVIGATION_BAR)) { if (!containsType(types, ITYPE_EXTRA_NAVIGATION_BAR)) { return; } mTaskbarTransientShowing = false; clearTransient(); } @Override public void onTaskbarAutohideSuspend(boolean suspend) { mTaskbarTransientShowing = suspend; if (suspend) { mAutoHideController.suspendAutoHide(); } else { Loading @@ -381,6 +402,30 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, } } private void clearTransient() { if (mTaskbarTransientShowing) { mTaskbarTransientShowing = false; onTransientStateChanged(); } } private void onTransientStateChanged() { mEdgeBackGestureHandler.onNavBarTransientStateChanged(mTaskbarTransientShowing); // The visibility of the navigation bar buttons is dependent on the transient state of // the navigation bar. if (mNavBarOverlayController.isNavigationBarOverlayEnabled()) { mNavBarOverlayController.setButtonState(mTaskbarTransientShowing, /* force */ false); } } @Override public void onRecentsAnimationStateChanged(boolean running) { if (running) { mNavBarOverlayController.setButtonState(/* visible */false, /* force */true); } } @Override public void onNavigationModeChanged(int mode) { mNavigationMode = mode; Loading Loading
packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java +51 −6 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ package com.android.systemui.navigationbar; import static android.app.StatusBarManager.NAVIGATION_HINT_BACK_ALT; import static android.app.StatusBarManager.NAVIGATION_HINT_IME_SHOWN; import static android.app.StatusBarManager.WINDOW_STATE_SHOWING; import static android.view.InsetsState.ITYPE_NAVIGATION_BAR; import static android.view.InsetsState.ITYPE_EXTRA_NAVIGATION_BAR; import static android.view.InsetsState.containsType; import static android.view.WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE; import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION; Loading Loading @@ -86,6 +86,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, private static final String TAG = TaskbarDelegate.class.getSimpleName(); private final EdgeBackGestureHandler mEdgeBackGestureHandler; private final NavigationBarOverlayController mNavBarOverlayController; private boolean mInitialized; private CommandQueue mCommandQueue; private OverviewProxyService mOverviewProxyService; Loading Loading @@ -140,6 +141,13 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, @Override public void hide() { clearTransient(); } }; private final Consumer<Boolean> mNavbarOverlayVisibilityChangeCallback = (visible) -> { if (visible) { mAutoHideController.touchAutoHide(); } }; Loading @@ -147,6 +155,11 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, public TaskbarDelegate(Context context) { mEdgeBackGestureHandler = Dependency.get(EdgeBackGestureHandler.Factory.class) .create(context); mNavBarOverlayController = Dependency.get(NavigationBarOverlayController.class); if (mNavBarOverlayController.isNavigationBarOverlayEnabled()) { mNavBarOverlayController.init(mNavbarOverlayVisibilityChangeCallback, mEdgeBackGestureHandler::updateNavigationBarOverlayExcludeRegion); } mContext = context; mDisplayManager = mContext.getSystemService(DisplayManager.class); mPipListener = mEdgeBackGestureHandler::setPipStashExclusionBounds; Loading Loading @@ -206,6 +219,9 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, mNavigationModeController.addListener(this)); mNavBarHelper.registerNavTaskStateUpdater(mNavbarTaskbarStateUpdater); mNavBarHelper.init(); if (mNavBarOverlayController.isNavigationBarOverlayEnabled()) { mNavBarOverlayController.registerListeners(); } mEdgeBackGestureHandler.onNavBarAttached(); // Initialize component callback Display display = mDisplayManager.getDisplay(displayId); Loading @@ -229,6 +245,9 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, mNavigationModeController.removeListener(this); mNavBarHelper.removeNavTaskStateUpdater(mNavbarTaskbarStateUpdater); mNavBarHelper.destroy(); if (mNavBarOverlayController.isNavigationBarOverlayEnabled()) { mNavBarOverlayController.unregisterListeners(); } mEdgeBackGestureHandler.onNavBarDetached(); mScreenPinningNotify = null; if (mWindowContext != null) { Loading Loading @@ -354,10 +373,13 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, if (displayId != mDisplayId) { return; } if (!containsType(types, ITYPE_NAVIGATION_BAR)) { if (!containsType(types, ITYPE_EXTRA_NAVIGATION_BAR)) { return; } if (!mTaskbarTransientShowing) { mTaskbarTransientShowing = true; onTransientStateChanged(); } } @Override Loading @@ -365,15 +387,14 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, if (displayId != mDisplayId) { return; } if (!containsType(types, ITYPE_NAVIGATION_BAR)) { if (!containsType(types, ITYPE_EXTRA_NAVIGATION_BAR)) { return; } mTaskbarTransientShowing = false; clearTransient(); } @Override public void onTaskbarAutohideSuspend(boolean suspend) { mTaskbarTransientShowing = suspend; if (suspend) { mAutoHideController.suspendAutoHide(); } else { Loading @@ -381,6 +402,30 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, } } private void clearTransient() { if (mTaskbarTransientShowing) { mTaskbarTransientShowing = false; onTransientStateChanged(); } } private void onTransientStateChanged() { mEdgeBackGestureHandler.onNavBarTransientStateChanged(mTaskbarTransientShowing); // The visibility of the navigation bar buttons is dependent on the transient state of // the navigation bar. if (mNavBarOverlayController.isNavigationBarOverlayEnabled()) { mNavBarOverlayController.setButtonState(mTaskbarTransientShowing, /* force */ false); } } @Override public void onRecentsAnimationStateChanged(boolean running) { if (running) { mNavBarOverlayController.setButtonState(/* visible */false, /* force */true); } } @Override public void onNavigationModeChanged(int mode) { mNavigationMode = mode; Loading