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

Commit 4086088a authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Notify SystemUI when ActivityDisplay is ready"

parents ea7f10ed 3dedec32
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -160,4 +160,9 @@ oneway interface IStatusBar
    void onBiometricError(String error);
    // Used to hide the biometric dialog when the AuthenticationClient is stopped
    void hideBiometricDialog();

    /**
     * Notifies System UI that the display is ready to show system decorations.
     */
    void onDisplayReady(int displayId);
}
+18 −0
Original line number Diff line number Diff line
@@ -111,6 +111,7 @@ public class CommandQueue extends IStatusBar.Stub implements CallbackController<
    private static final int MSG_SHOW_CHARGING_ANIMATION       = 44 << MSG_SHIFT;
    private static final int MSG_SHOW_PINNING_TOAST_ENTER_EXIT = 45 << MSG_SHIFT;
    private static final int MSG_SHOW_PINNING_TOAST_ESCAPE     = 46 << MSG_SHIFT;
    private static final int MSG_DISPLAY_READY                 = 47 << MSG_SHIFT;

    public static final int FLAG_EXCLUDE_NONE = 0;
    public static final int FLAG_EXCLUDE_SEARCH_PANEL = 1 << 0;
@@ -274,6 +275,11 @@ public class CommandQueue extends IStatusBar.Stub implements CallbackController<
        default void onBiometricHelp(String message) { }
        default void onBiometricError(String error) { }
        default void hideBiometricDialog() { }

        /**
        * @see IStatusBar#onDisplayReady(int)
        */
        default void onDisplayReady(int displayId) { }
    }

    @VisibleForTesting
@@ -761,6 +767,13 @@ public class CommandQueue extends IStatusBar.Stub implements CallbackController<
        }
    }

    @Override
    public void onDisplayReady(int displayId) {
        synchronized (mLock) {
            mHandler.obtainMessage(MSG_DISPLAY_READY, displayId, 0).sendToTarget();
        }
    }

    private final class H extends Handler {
        private H(Looper l) {
            super(l);
@@ -1015,6 +1028,11 @@ public class CommandQueue extends IStatusBar.Stub implements CallbackController<
                        mCallbacks.get(i).showPinningEscapeToast();
                    }
                    break;
                case MSG_DISPLAY_READY:
                    for (int i = 0; i < mCallbacks.size(); i++) {
                        mCallbacks.get(i).onDisplayReady(msg.arg1);
                    }
                    break;
            }
        }
    }
+11 −6
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.systemui.statusbar;
import static android.view.Display.DEFAULT_DISPLAY;

import static com.android.systemui.Dependency.MAIN_HANDLER_NAME;
import static com.android.systemui.SysUiServiceProvider.getComponent;

import android.content.Context;
import android.hardware.display.DisplayManager;
@@ -34,6 +35,7 @@ import android.view.WindowManagerGlobal;

import com.android.systemui.Dependency;
import com.android.systemui.plugins.DarkIconDispatcher;
import com.android.systemui.statusbar.CommandQueue.Callbacks;
import com.android.systemui.statusbar.phone.AutoHideController;
import com.android.systemui.statusbar.phone.BarTransitions.TransitionMode;
import com.android.systemui.statusbar.phone.LightBarController;
@@ -48,7 +50,7 @@ import javax.inject.Singleton;

/** A controller to handle navigation bars. */
@Singleton
public class NavigationBarController implements DisplayListener {
public class NavigationBarController implements DisplayListener, Callbacks {

    private static final String TAG = NavigationBarController.class.getName();

@@ -65,13 +67,11 @@ public class NavigationBarController implements DisplayListener {
        mHandler = handler;
        mDisplayManager = (DisplayManager) mContext.getSystemService(Context.DISPLAY_SERVICE);
        mDisplayManager.registerDisplayListener(this, mHandler);
        getComponent(mContext, CommandQueue.class).addCallback(this);
    }

    @Override
    public void onDisplayAdded(int displayId) {
        Display display = mDisplayManager.getDisplay(displayId);
        createNavigationBar(display);
    }
    public void onDisplayAdded(int displayId) { }

    @Override
    public void onDisplayRemoved(int displayId) {
@@ -79,7 +79,12 @@ public class NavigationBarController implements DisplayListener {
    }

    @Override
    public void onDisplayChanged(int displayId) {
    public void onDisplayChanged(int displayId) { }

    @Override
    public void onDisplayReady(int displayId) {
        Display display = mDisplayManager.getDisplay(displayId);
        createNavigationBar(display);
    }

    // TODO(b/117478341): I use {@code includeDefaultDisplay} to make this method compatible to
+1 −0
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ public class NavigationBarButtonTest extends SysuiTestCase {

    @Before
    public void setup() {
        mContext.putComponent(CommandQueue.class, mock(CommandQueue.class));
        final Display display = createVirtualDisplay();
        final SysuiTestableContext context =
                (SysuiTestableContext) mContext.createDisplayContext(display);
+7 −0
Original line number Diff line number Diff line
@@ -100,4 +100,11 @@ public interface StatusBarManagerInternal {
     * @param rotation rotation suggestion
     */
    void onProposedRotationChanged(int rotation, boolean isValid);

    /**
     * Notifies System UI that the display is ready to show system decorations.
     *
     * @param displayId display ID
     */
    void onDisplayReady(int displayId);
}
Loading