Update navigation bar upon change of display density

Restart the navigation bar upon change of density or font scale, then
the facet buttons of navigation bar will be scaled properly.

Test: Settings->Display->Advanced->Display size->Largest

bug: 122563094

Change-Id: I6d2d7ac4a801fac6f30bb78acee4c00ec2c4e507
Signed-off-by: Lei,RayX <rayx.lei@intel.com>
Signed-off-by: Guobin Zhang <guobin.zhang@intel.com>
This commit is contained in:
Guobin Zhang
2019-02-01 11:54:24 -08:00
committed by Gaurav Sarode
parent 4d1a60d70f
commit eef0e0c326

View File

@@ -105,8 +105,6 @@ public class CarStatusBar extends StatusBar implements
mHvacController.connectToCarService();
CarSystemUIFactory factory = SystemUIFactory.getInstance();
mCarFacetButtonController = factory.getCarDependencyComponent()
.getCarFacetButtonController();
mDeviceProvisionedController = Dependency.get(DeviceProvisionedController.class);
mDeviceIsProvisioned = mDeviceProvisionedController.isDeviceProvisioned();
if (!mDeviceIsProvisioned) {
@@ -137,7 +135,7 @@ public class CarStatusBar extends StatusBar implements
/**
* Remove all content from navbars and rebuild them. Used to allow for different nav bars
* before and after the device is provisioned
* before and after the device is provisioned. . Also for change of density and font size.
*/
private void restartNavBars() {
// remove and reattach all hvac components such that we don't keep a reference to unused
@@ -253,6 +251,9 @@ public class CarStatusBar extends StatusBar implements
super.makeStatusBarView();
mHvacController = new HvacController(mContext);
CarSystemUIFactory factory = SystemUIFactory.getInstance();
mCarFacetButtonController = factory.getCarDependencyComponent()
.getCarFacetButtonController();
mNotificationPanelBackground = getDefaultWallpaper();
mScrimController.setScrimBehindDrawable(mNotificationPanelBackground);
@@ -589,6 +590,7 @@ public class CarStatusBar extends StatusBar implements
@Override
public void onDensityOrFontScaleChanged() {
super.onDensityOrFontScaleChanged();
restartNavBars();
// Need to update the background on density changed in case the change was due to night
// mode.
mNotificationPanelBackground = getDefaultWallpaper();