Loading packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarController.java +18 −0 Original line number Diff line number Diff line Loading @@ -395,6 +395,24 @@ public class NavigationBarController implements return (navBar == null) ? null : navBar.getView(); } public void showPinningEnterExitToast(int displayId, boolean entering) { final NavigationBarView navBarView = getNavigationBarView(displayId); if (navBarView != null) { navBarView.showPinningEnterExitToast(entering); } else if (displayId == DEFAULT_DISPLAY && mTaskbarDelegate.isInitialized()) { mTaskbarDelegate.showPinningEnterExitToast(entering); } } public void showPinningEscapeToast(int displayId) { final NavigationBarView navBarView = getNavigationBarView(displayId); if (navBarView != null) { navBarView.showPinningEscapeToast(); } else if (displayId == DEFAULT_DISPLAY && mTaskbarDelegate.isInitialized()) { mTaskbarDelegate.showPinningEscapeToast(); } } /** @return {@link NavigationBar} on the default display. */ @Nullable public NavigationBar getDefaultNavigationBar() { Loading packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java +39 −0 Original line number Diff line number Diff line Loading @@ -60,6 +60,7 @@ import com.android.systemui.navigationbar.gestural.EdgeBackGestureHandler; import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.shared.recents.utilities.Utilities; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.QuickStepContract; import com.android.systemui.statusbar.AutoHideUiElement; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.phone.AutoHideController; Loading Loading @@ -109,6 +110,9 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, private final Context mContext; private final DisplayManager mDisplayManager; private Context mWindowContext; private ScreenPinningNotify mScreenPinningNotify; private int mNavigationMode; /** * Tracks the system calls for when taskbar should transiently show or hide so we can return * this value in {@link AutoHideUiElement#isVisible()} below. Loading Loading @@ -197,6 +201,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, Display display = mDisplayManager.getDisplay(displayId); mWindowContext = mContext.createWindowContext(display, TYPE_APPLICATION, null); mWindowContext.registerComponentCallbacks(this); mScreenPinningNotify = new ScreenPinningNotify(mWindowContext); // Set initial state for any listeners updateSysuiFlags(); mAutoHideController.setNavigationBar(mAutoHideUiElement); Loading @@ -214,6 +219,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, mNavBarHelper.removeNavTaskStateUpdater(mNavbarTaskbarStateUpdater); mNavBarHelper.destroy(); mEdgeBackGestureHandler.onNavBarDetached(); mScreenPinningNotify = null; if (mWindowContext != null) { mWindowContext.unregisterComponentCallbacks(this); mWindowContext = null; Loading @@ -224,6 +230,14 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, mInitialized = false; } /** * Returns {@code true} if this taskBar is {@link #init(int)}. Returns {@code false} if this * taskbar has not yet been {@link #init(int)} or has been {@link #destroy()}. */ public boolean isInitialized() { return mInitialized; } private void updateSysuiFlags() { int a11yFlags = mNavBarHelper.getA11yButtonState(); boolean clickable = (a11yFlags & SYSUI_STATE_A11Y_BUTTON_CLICKABLE) != 0; Loading Loading @@ -345,6 +359,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, @Override public void onNavigationModeChanged(int mode) { mNavigationMode = mode; mEdgeBackGestureHandler.onNavigationModeChanged(mode); } Loading @@ -364,10 +379,34 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, @Override public void onLowMemory() {} @Override public void showPinningEnterExitToast(boolean entering) { updateSysuiFlags(); if (mScreenPinningNotify == null) { return; } if (entering) { mScreenPinningNotify.showPinningStartToast(); } else { mScreenPinningNotify.showPinningExitToast(); } } @Override public void showPinningEscapeToast() { updateSysuiFlags(); if (mScreenPinningNotify == null) { return; } mScreenPinningNotify.showEscapeToast(QuickStepContract.isGesturalMode(mNavigationMode), !QuickStepContract.isGesturalMode(mNavigationMode)); } @Override public void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter pw, @NonNull String[] args) { pw.println("TaskbarDelegate (displayId=" + mDisplayId + "):"); pw.println(" mNavigationIconHints=" + mNavigationIconHints); pw.println(" mNavigationMode=" + mNavigationMode); pw.println(" mDisabledFlags=" + mDisabledFlags); pw.println(" mTaskBarWindowState=" + mTaskBarWindowState); pw.println(" mBehavior=" + mBehavior); Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +8 −0 Original line number Diff line number Diff line Loading @@ -3433,6 +3433,14 @@ public class StatusBar extends SystemUI implements return mNavigationBarController.getNavigationBarView(mDisplayId); } public void showPinningEnterExitToast(boolean entering) { mNavigationBarController.showPinningEnterExitToast(mDisplayId, entering); } public void showPinningEscapeToast() { mNavigationBarController.showPinningEscapeToast(mDisplayId); } /** * TODO: Remove this method. Views should not be passed forward. Will cause theme issues. * @return bottom area view Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarCommandQueueCallbacks.java +2 −6 Original line number Diff line number Diff line Loading @@ -549,16 +549,12 @@ public class StatusBarCommandQueueCallbacks implements CommandQueue.Callbacks { @Override public void showPinningEnterExitToast(boolean entering) { if (mStatusBar.getNavigationBarView() != null) { mStatusBar.getNavigationBarView().showPinningEnterExitToast(entering); } mStatusBar.showPinningEnterExitToast(entering); } @Override public void showPinningEscapeToast() { if (mStatusBar.getNavigationBarView() != null) { mStatusBar.getNavigationBarView().showPinningEscapeToast(); } mStatusBar.showPinningEscapeToast(); } @Override Loading Loading
packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarController.java +18 −0 Original line number Diff line number Diff line Loading @@ -395,6 +395,24 @@ public class NavigationBarController implements return (navBar == null) ? null : navBar.getView(); } public void showPinningEnterExitToast(int displayId, boolean entering) { final NavigationBarView navBarView = getNavigationBarView(displayId); if (navBarView != null) { navBarView.showPinningEnterExitToast(entering); } else if (displayId == DEFAULT_DISPLAY && mTaskbarDelegate.isInitialized()) { mTaskbarDelegate.showPinningEnterExitToast(entering); } } public void showPinningEscapeToast(int displayId) { final NavigationBarView navBarView = getNavigationBarView(displayId); if (navBarView != null) { navBarView.showPinningEscapeToast(); } else if (displayId == DEFAULT_DISPLAY && mTaskbarDelegate.isInitialized()) { mTaskbarDelegate.showPinningEscapeToast(); } } /** @return {@link NavigationBar} on the default display. */ @Nullable public NavigationBar getDefaultNavigationBar() { Loading
packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java +39 −0 Original line number Diff line number Diff line Loading @@ -60,6 +60,7 @@ import com.android.systemui.navigationbar.gestural.EdgeBackGestureHandler; import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.shared.recents.utilities.Utilities; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.QuickStepContract; import com.android.systemui.statusbar.AutoHideUiElement; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.phone.AutoHideController; Loading Loading @@ -109,6 +110,9 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, private final Context mContext; private final DisplayManager mDisplayManager; private Context mWindowContext; private ScreenPinningNotify mScreenPinningNotify; private int mNavigationMode; /** * Tracks the system calls for when taskbar should transiently show or hide so we can return * this value in {@link AutoHideUiElement#isVisible()} below. Loading Loading @@ -197,6 +201,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, Display display = mDisplayManager.getDisplay(displayId); mWindowContext = mContext.createWindowContext(display, TYPE_APPLICATION, null); mWindowContext.registerComponentCallbacks(this); mScreenPinningNotify = new ScreenPinningNotify(mWindowContext); // Set initial state for any listeners updateSysuiFlags(); mAutoHideController.setNavigationBar(mAutoHideUiElement); Loading @@ -214,6 +219,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, mNavBarHelper.removeNavTaskStateUpdater(mNavbarTaskbarStateUpdater); mNavBarHelper.destroy(); mEdgeBackGestureHandler.onNavBarDetached(); mScreenPinningNotify = null; if (mWindowContext != null) { mWindowContext.unregisterComponentCallbacks(this); mWindowContext = null; Loading @@ -224,6 +230,14 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, mInitialized = false; } /** * Returns {@code true} if this taskBar is {@link #init(int)}. Returns {@code false} if this * taskbar has not yet been {@link #init(int)} or has been {@link #destroy()}. */ public boolean isInitialized() { return mInitialized; } private void updateSysuiFlags() { int a11yFlags = mNavBarHelper.getA11yButtonState(); boolean clickable = (a11yFlags & SYSUI_STATE_A11Y_BUTTON_CLICKABLE) != 0; Loading Loading @@ -345,6 +359,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, @Override public void onNavigationModeChanged(int mode) { mNavigationMode = mode; mEdgeBackGestureHandler.onNavigationModeChanged(mode); } Loading @@ -364,10 +379,34 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, @Override public void onLowMemory() {} @Override public void showPinningEnterExitToast(boolean entering) { updateSysuiFlags(); if (mScreenPinningNotify == null) { return; } if (entering) { mScreenPinningNotify.showPinningStartToast(); } else { mScreenPinningNotify.showPinningExitToast(); } } @Override public void showPinningEscapeToast() { updateSysuiFlags(); if (mScreenPinningNotify == null) { return; } mScreenPinningNotify.showEscapeToast(QuickStepContract.isGesturalMode(mNavigationMode), !QuickStepContract.isGesturalMode(mNavigationMode)); } @Override public void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter pw, @NonNull String[] args) { pw.println("TaskbarDelegate (displayId=" + mDisplayId + "):"); pw.println(" mNavigationIconHints=" + mNavigationIconHints); pw.println(" mNavigationMode=" + mNavigationMode); pw.println(" mDisabledFlags=" + mDisabledFlags); pw.println(" mTaskBarWindowState=" + mTaskBarWindowState); pw.println(" mBehavior=" + mBehavior); Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +8 −0 Original line number Diff line number Diff line Loading @@ -3433,6 +3433,14 @@ public class StatusBar extends SystemUI implements return mNavigationBarController.getNavigationBarView(mDisplayId); } public void showPinningEnterExitToast(boolean entering) { mNavigationBarController.showPinningEnterExitToast(mDisplayId, entering); } public void showPinningEscapeToast() { mNavigationBarController.showPinningEscapeToast(mDisplayId); } /** * TODO: Remove this method. Views should not be passed forward. Will cause theme issues. * @return bottom area view Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarCommandQueueCallbacks.java +2 −6 Original line number Diff line number Diff line Loading @@ -549,16 +549,12 @@ public class StatusBarCommandQueueCallbacks implements CommandQueue.Callbacks { @Override public void showPinningEnterExitToast(boolean entering) { if (mStatusBar.getNavigationBarView() != null) { mStatusBar.getNavigationBarView().showPinningEnterExitToast(entering); } mStatusBar.showPinningEnterExitToast(entering); } @Override public void showPinningEscapeToast() { if (mStatusBar.getNavigationBarView() != null) { mStatusBar.getNavigationBarView().showPinningEscapeToast(); } mStatusBar.showPinningEscapeToast(); } @Override Loading