Merge "Reapply nav hints when systemui crashes or killed" into qt-dev
am: 970d0be2e0
Change-Id: I9a9dc5403dca4ed842bff00035287a2efa2e15d7
This commit is contained in:
@@ -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() {
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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() {
|
||||||
|
|||||||
Reference in New Issue
Block a user