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

Commit a5f83144 authored by Vinit Nayak's avatar Vinit Nayak Committed by Android (Google) Code Review
Browse files

Merge "Support to show lock task toast on taskbar" into sc-v2-dev

parents 8528d074 e7ecea63
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -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() {
+39 −0
Original line number Diff line number Diff line
@@ -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;
@@ -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.
@@ -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);
@@ -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;
@@ -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;
@@ -345,6 +359,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks,

    @Override
    public void onNavigationModeChanged(int mode) {
        mNavigationMode = mode;
        mEdgeBackGestureHandler.onNavigationModeChanged(mode);
    }

@@ -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);
+8 −0
Original line number Diff line number Diff line
@@ -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
+2 −6
Original line number Diff line number Diff line
@@ -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