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

Commit 9050ebef authored by Matthew Ng's avatar Matthew Ng Committed by android-build-merger
Browse files

Merge "Reapply nav hints when systemui crashes or killed" into qt-dev

am: 970d0be2

Change-Id: I9a9dc5403dca4ed842bff00035287a2efa2e15d7
parents 6fcebb2a 970d0be2
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.systemui.statusbar.car;

import android.annotation.Nullable;
import android.app.ActivityManager;
import android.app.ActivityTaskManager;
import android.car.drivingstate.CarDrivingStateEvent;
@@ -39,6 +40,7 @@ import com.android.car.notification.CarUxRestrictionManagerWrapper;
import com.android.car.notification.NotificationClickHandlerFactory;
import com.android.car.notification.NotificationViewController;
import com.android.car.notification.PreprocessingManager;
import com.android.internal.statusbar.RegisterStatusBarResult;
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.systemui.BatteryMeterView;
import com.android.systemui.CarSystemUIFactory;
@@ -259,8 +261,8 @@ public class CarStatusBar extends StatusBar implements


    @Override
    protected void makeStatusBarView() {
        super.makeStatusBarView();
    protected void makeStatusBarView(@Nullable RegisterStatusBarResult result) {
        super.makeStatusBarView(result);
        mHvacController = new HvacController(mContext);

        CarSystemUIFactory factory = SystemUIFactory.getInstance();
@@ -432,7 +434,7 @@ public class CarStatusBar extends StatusBar implements
    }

    @Override
    protected void createNavigationBar() {
    protected void createNavigationBar(@Nullable RegisterStatusBarResult result) {
        mShowBottom = mContext.getResources().getBoolean(R.bool.config_enableBottomNavigationBar);
        mShowLeft = mContext.getResources().getBoolean(R.bool.config_enableLeftNavigationBar);
        mShowRight = mContext.getResources().getBoolean(R.bool.config_enableRightNavigationBar);
@@ -443,7 +445,7 @@ public class CarStatusBar extends StatusBar implements

        // There has been a car customized nav bar on the default display, so just create nav bars
        // on external displays.
        mNavigationBarController.createNavigationBars(false /* includeDefaultDisplay */);
        mNavigationBarController.createNavigationBars(false /* includeDefaultDisplay */, result);
    }

    private void buildNavBarContent() {
+12 −4
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import android.view.View;
import android.view.WindowManagerGlobal;

import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.statusbar.RegisterStatusBarResult;
import com.android.systemui.Dependency;
import com.android.systemui.plugins.DarkIconDispatcher;
import com.android.systemui.statusbar.CommandQueue.Callbacks;
@@ -81,7 +82,7 @@ public class NavigationBarController implements Callbacks {
    @Override
    public void onDisplayReady(int displayId) {
        Display display = mDisplayManager.getDisplay(displayId);
        createNavigationBar(display);
        createNavigationBar(display, null);
    }

    // TODO(b/117478341): I use {@code includeDefaultDisplay} to make this method compatible to
@@ -91,11 +92,12 @@ public class NavigationBarController implements Callbacks {
     *
     * @param includeDefaultDisplay {@code true} to create navigation bar on default display.
     */
    public void createNavigationBars(final boolean includeDefaultDisplay) {
    public void createNavigationBars(final boolean includeDefaultDisplay,
            RegisterStatusBarResult result) {
        Display[] displays = mDisplayManager.getDisplays();
        for (Display display : displays) {
            if (includeDefaultDisplay || display.getDisplayId() != DEFAULT_DISPLAY) {
                createNavigationBar(display);
                createNavigationBar(display, result);
            }
        }
    }
@@ -107,7 +109,7 @@ public class NavigationBarController implements Callbacks {
     * @param display the display to add navigation bar on.
     */
    @VisibleForTesting
    void createNavigationBar(Display display) {
    void createNavigationBar(Display display, RegisterStatusBarResult result) {
        if (display == null) {
            return;
        }
@@ -151,6 +153,12 @@ public class NavigationBarController implements Callbacks {
            navBar.setAutoHideController(autoHideController);
            navBar.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
            mNavigationBars.append(displayId, navBar);

            if (result != null) {
                navBar.setImeWindowStatus(display.getDisplayId(), result.mImeToken,
                        result.mImeWindowVis, result.mImeBackDisposition,
                        result.mShowImeSwitcher);
            }
        });
    }

+1 −0
Original line number Diff line number Diff line
@@ -316,6 +316,7 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback
        if (savedInstanceState != null) {
            mNavigationBarView.getLightTransitionsController().restoreState(savedInstanceState);
        }
        mNavigationBarView.setNavigationIconHints(mNavigationIconHints);

        prepareNavigationBarView();
        checkNavBarModes();
+7 −12
Original line number Diff line number Diff line
@@ -660,7 +660,6 @@ public class StatusBar extends SystemUI implements DemoMode,
        mDisplayId = mDisplay.getDisplayId();
        updateDisplaySize();

        Resources res = mContext.getResources();
        mVibrateOnOpening = mContext.getResources().getBoolean(
                R.bool.config_vibrateOnIconAnimation);
        mVibratorHelper = Dependency.get(VibratorHelper.class);
@@ -696,7 +695,7 @@ public class StatusBar extends SystemUI implements DemoMode,
            ex.rethrowFromSystemServer();
        }

        createAndAddWindows();
        createAndAddWindows(result);

        // Make sure we always have the most current wallpaper info.
        IntentFilter wallpaperChangedFilter = new IntentFilter(Intent.ACTION_WALLPAPER_CHANGED);
@@ -778,7 +777,7 @@ public class StatusBar extends SystemUI implements DemoMode,
    // ================================================================================
    // Constructing the view
    // ================================================================================
    protected void makeStatusBarView() {
    protected void makeStatusBarView(@Nullable RegisterStatusBarResult result) {
        final Context context = mContext;
        updateDisplaySize(); // populates mDisplayMetrics
        updateResources();
@@ -871,7 +870,7 @@ public class StatusBar extends SystemUI implements DemoMode,
        mNotificationLogger.setHeadsUpManager(mHeadsUpManager);
        putComponent(HeadsUpManager.class, mHeadsUpManager);

        createNavigationBar();
        createNavigationBar(result);

        if (ENABLE_LOCKSCREEN_WALLPAPER) {
            mLockscreenWallpaper = new LockscreenWallpaper(mContext, this, mHandler);
@@ -1118,8 +1117,8 @@ public class StatusBar extends SystemUI implements DemoMode,

    // TODO(b/117478341): This was left such that CarStatusBar can override this method.
    // Try to remove this.
    protected void createNavigationBar() {
        mNavigationBarController.createNavigationBars(true /* includeDefaultDisplay */);
    protected void createNavigationBar(@Nullable RegisterStatusBarResult result) {
        mNavigationBarController.createNavigationBars(true /* includeDefaultDisplay */, result);
    }

    /**
@@ -2401,12 +2400,8 @@ public class StatusBar extends SystemUI implements DemoMode,
        pw.println(BarTransitions.modeToString(transitions.getMode()));
    }

    public void createAndAddWindows() {
        addStatusBarWindow();
    }

    private void addStatusBarWindow() {
        makeStatusBarView();
    public void createAndAddWindows(@Nullable RegisterStatusBarResult result) {
        makeStatusBarView(result);
        mStatusBarWindowController = Dependency.get(StatusBarWindowController.class);
        mStatusBarWindowController.add(mStatusBarWindow, getStatusBarHeight());
    }
+6 −6
Original line number Diff line number Diff line
@@ -96,21 +96,21 @@ public class NavigationBarControllerTest extends SysuiTestCase {
    @Test
    public void testCreateNavigationBarsIncludeDefaultTrue() {
        initializeDisplayManager();
        doNothing().when(mNavigationBarController).createNavigationBar(any());
        doNothing().when(mNavigationBarController).createNavigationBar(any(), any());

        mNavigationBarController.createNavigationBars(true);
        mNavigationBarController.createNavigationBars(true, null);

        verify(mNavigationBarController).createNavigationBar(any(Display.class));
        verify(mNavigationBarController).createNavigationBar(any(Display.class), any());
    }

    @Test
    public void testCreateNavigationBarsIncludeDefaultFalse() {
        initializeDisplayManager();
        doNothing().when(mNavigationBarController).createNavigationBar(any());
        doNothing().when(mNavigationBarController).createNavigationBar(any(), any());

        mNavigationBarController.createNavigationBars(false);
        mNavigationBarController.createNavigationBars(false, null);

        verify(mNavigationBarController, never()).createNavigationBar(any());
        verify(mNavigationBarController, never()).createNavigationBar(any(), any());
    }

    private void initializeDisplayManager() {