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

am: 970d0be2e0

Change-Id: I9a9dc5403dca4ed842bff00035287a2efa2e15d7
This commit is contained in:
Matthew Ng
2019-04-12 13:19:07 -07:00
committed by android-build-merger
5 changed files with 32 additions and 26 deletions

View File

@@ -16,6 +16,7 @@
package com.android.systemui.statusbar.car; package com.android.systemui.statusbar.car;
import android.annotation.Nullable;
import android.app.ActivityManager; import android.app.ActivityManager;
import android.app.ActivityTaskManager; import android.app.ActivityTaskManager;
import android.car.drivingstate.CarDrivingStateEvent; 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.NotificationClickHandlerFactory;
import com.android.car.notification.NotificationViewController; import com.android.car.notification.NotificationViewController;
import com.android.car.notification.PreprocessingManager; import com.android.car.notification.PreprocessingManager;
import com.android.internal.statusbar.RegisterStatusBarResult;
import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.systemui.BatteryMeterView; import com.android.systemui.BatteryMeterView;
import com.android.systemui.CarSystemUIFactory; import com.android.systemui.CarSystemUIFactory;
@@ -259,8 +261,8 @@ public class CarStatusBar extends StatusBar implements
@Override @Override
protected void makeStatusBarView() { protected void makeStatusBarView(@Nullable RegisterStatusBarResult result) {
super.makeStatusBarView(); super.makeStatusBarView(result);
mHvacController = new HvacController(mContext); mHvacController = new HvacController(mContext);
CarSystemUIFactory factory = SystemUIFactory.getInstance(); CarSystemUIFactory factory = SystemUIFactory.getInstance();
@@ -432,7 +434,7 @@ public class CarStatusBar extends StatusBar implements
} }
@Override @Override
protected void createNavigationBar() { protected void createNavigationBar(@Nullable RegisterStatusBarResult result) {
mShowBottom = mContext.getResources().getBoolean(R.bool.config_enableBottomNavigationBar); mShowBottom = mContext.getResources().getBoolean(R.bool.config_enableBottomNavigationBar);
mShowLeft = mContext.getResources().getBoolean(R.bool.config_enableLeftNavigationBar); mShowLeft = mContext.getResources().getBoolean(R.bool.config_enableLeftNavigationBar);
mShowRight = mContext.getResources().getBoolean(R.bool.config_enableRightNavigationBar); 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 // There has been a car customized nav bar on the default display, so just create nav bars
// on external displays. // on external displays.
mNavigationBarController.createNavigationBars(false /* includeDefaultDisplay */); mNavigationBarController.createNavigationBars(false /* includeDefaultDisplay */, result);
} }
private void buildNavBarContent() { private void buildNavBarContent() {

View File

@@ -33,6 +33,7 @@ import android.view.View;
import android.view.WindowManagerGlobal; import android.view.WindowManagerGlobal;
import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.statusbar.RegisterStatusBarResult;
import com.android.systemui.Dependency; import com.android.systemui.Dependency;
import com.android.systemui.plugins.DarkIconDispatcher; import com.android.systemui.plugins.DarkIconDispatcher;
import com.android.systemui.statusbar.CommandQueue.Callbacks; import com.android.systemui.statusbar.CommandQueue.Callbacks;
@@ -81,7 +82,7 @@ public class NavigationBarController implements Callbacks {
@Override @Override
public void onDisplayReady(int displayId) { public void onDisplayReady(int displayId) {
Display display = mDisplayManager.getDisplay(displayId); Display display = mDisplayManager.getDisplay(displayId);
createNavigationBar(display); createNavigationBar(display, null);
} }
// TODO(b/117478341): I use {@code includeDefaultDisplay} to make this method compatible to // 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. * @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(); Display[] displays = mDisplayManager.getDisplays();
for (Display display : displays) { for (Display display : displays) {
if (includeDefaultDisplay || display.getDisplayId() != DEFAULT_DISPLAY) { 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. * @param display the display to add navigation bar on.
*/ */
@VisibleForTesting @VisibleForTesting
void createNavigationBar(Display display) { void createNavigationBar(Display display, RegisterStatusBarResult result) {
if (display == null) { if (display == null) {
return; return;
} }
@@ -151,6 +153,12 @@ public class NavigationBarController implements Callbacks {
navBar.setAutoHideController(autoHideController); navBar.setAutoHideController(autoHideController);
navBar.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); navBar.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
mNavigationBars.append(displayId, navBar); mNavigationBars.append(displayId, navBar);
if (result != null) {
navBar.setImeWindowStatus(display.getDisplayId(), result.mImeToken,
result.mImeWindowVis, result.mImeBackDisposition,
result.mShowImeSwitcher);
}
}); });
} }

View File

@@ -316,6 +316,7 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback
if (savedInstanceState != null) { if (savedInstanceState != null) {
mNavigationBarView.getLightTransitionsController().restoreState(savedInstanceState); mNavigationBarView.getLightTransitionsController().restoreState(savedInstanceState);
} }
mNavigationBarView.setNavigationIconHints(mNavigationIconHints);
prepareNavigationBarView(); prepareNavigationBarView();
checkNavBarModes(); checkNavBarModes();

View File

@@ -660,7 +660,6 @@ public class StatusBar extends SystemUI implements DemoMode,
mDisplayId = mDisplay.getDisplayId(); mDisplayId = mDisplay.getDisplayId();
updateDisplaySize(); updateDisplaySize();
Resources res = mContext.getResources();
mVibrateOnOpening = mContext.getResources().getBoolean( mVibrateOnOpening = mContext.getResources().getBoolean(
R.bool.config_vibrateOnIconAnimation); R.bool.config_vibrateOnIconAnimation);
mVibratorHelper = Dependency.get(VibratorHelper.class); mVibratorHelper = Dependency.get(VibratorHelper.class);
@@ -696,7 +695,7 @@ public class StatusBar extends SystemUI implements DemoMode,
ex.rethrowFromSystemServer(); ex.rethrowFromSystemServer();
} }
createAndAddWindows(); createAndAddWindows(result);
// Make sure we always have the most current wallpaper info. // Make sure we always have the most current wallpaper info.
IntentFilter wallpaperChangedFilter = new IntentFilter(Intent.ACTION_WALLPAPER_CHANGED); IntentFilter wallpaperChangedFilter = new IntentFilter(Intent.ACTION_WALLPAPER_CHANGED);
@@ -778,7 +777,7 @@ public class StatusBar extends SystemUI implements DemoMode,
// ================================================================================ // ================================================================================
// Constructing the view // Constructing the view
// ================================================================================ // ================================================================================
protected void makeStatusBarView() { protected void makeStatusBarView(@Nullable RegisterStatusBarResult result) {
final Context context = mContext; final Context context = mContext;
updateDisplaySize(); // populates mDisplayMetrics updateDisplaySize(); // populates mDisplayMetrics
updateResources(); updateResources();
@@ -871,7 +870,7 @@ public class StatusBar extends SystemUI implements DemoMode,
mNotificationLogger.setHeadsUpManager(mHeadsUpManager); mNotificationLogger.setHeadsUpManager(mHeadsUpManager);
putComponent(HeadsUpManager.class, mHeadsUpManager); putComponent(HeadsUpManager.class, mHeadsUpManager);
createNavigationBar(); createNavigationBar(result);
if (ENABLE_LOCKSCREEN_WALLPAPER) { if (ENABLE_LOCKSCREEN_WALLPAPER) {
mLockscreenWallpaper = new LockscreenWallpaper(mContext, this, mHandler); 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. // TODO(b/117478341): This was left such that CarStatusBar can override this method.
// Try to remove this. // Try to remove this.
protected void createNavigationBar() { protected void createNavigationBar(@Nullable RegisterStatusBarResult result) {
mNavigationBarController.createNavigationBars(true /* includeDefaultDisplay */); mNavigationBarController.createNavigationBars(true /* includeDefaultDisplay */, result);
} }
/** /**
@@ -2401,12 +2400,8 @@ public class StatusBar extends SystemUI implements DemoMode,
pw.println(BarTransitions.modeToString(transitions.getMode())); pw.println(BarTransitions.modeToString(transitions.getMode()));
} }
public void createAndAddWindows() { public void createAndAddWindows(@Nullable RegisterStatusBarResult result) {
addStatusBarWindow(); makeStatusBarView(result);
}
private void addStatusBarWindow() {
makeStatusBarView();
mStatusBarWindowController = Dependency.get(StatusBarWindowController.class); mStatusBarWindowController = Dependency.get(StatusBarWindowController.class);
mStatusBarWindowController.add(mStatusBarWindow, getStatusBarHeight()); mStatusBarWindowController.add(mStatusBarWindow, getStatusBarHeight());
} }

View File

@@ -96,21 +96,21 @@ public class NavigationBarControllerTest extends SysuiTestCase {
@Test @Test
public void testCreateNavigationBarsIncludeDefaultTrue() { public void testCreateNavigationBarsIncludeDefaultTrue() {
initializeDisplayManager(); 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 @Test
public void testCreateNavigationBarsIncludeDefaultFalse() { public void testCreateNavigationBarsIncludeDefaultFalse() {
initializeDisplayManager(); 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() { private void initializeDisplayManager() {