summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/CarSystemUI/src/com/android/systemui/navigationbar/car/NavigationBarViewFactory.java2
-rw-r--r--packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java116
2 files changed, 76 insertions, 42 deletions
diff --git a/packages/CarSystemUI/src/com/android/systemui/navigationbar/car/NavigationBarViewFactory.java b/packages/CarSystemUI/src/com/android/systemui/navigationbar/car/NavigationBarViewFactory.java
index 128721eede2b..519b33a2f53e 100644
--- a/packages/CarSystemUI/src/com/android/systemui/navigationbar/car/NavigationBarViewFactory.java
+++ b/packages/CarSystemUI/src/com/android/systemui/navigationbar/car/NavigationBarViewFactory.java
@@ -108,7 +108,7 @@ public class NavigationBarViewFactory {
private ViewGroup getWindowCached(Type type) {
if (mCachedContainerMap.containsKey(type)) {
- return mCachedViewMap.get(type);
+ return mCachedContainerMap.get(type);
}
ViewGroup window = (ViewGroup) View.inflate(mContext,
diff --git a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java
index 3424eeaeb854..cd81a5cb5c4f 100644
--- a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java
+++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java
@@ -161,9 +161,18 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
private Drawable mNotificationPanelBackground;
private ViewGroup mTopNavigationBarContainer;
+ private ViewGroup mNavigationBarWindow;
+ private ViewGroup mLeftNavigationBarWindow;
+ private ViewGroup mRightNavigationBarWindow;
private CarNavigationBarView mTopNavigationBarView;
+ private CarNavigationBarView mNavigationBarView;
+ private CarNavigationBarView mLeftNavigationBarView;
+ private CarNavigationBarView mRightNavigationBarView;
private final Object mQueueLock = new Object();
+ private boolean mShowLeft;
+ private boolean mShowRight;
+ private boolean mShowBottom;
private final NavigationBarViewFactory mNavigationBarViewFactory;
private CarFacetButtonController mCarFacetButtonController;
private DeviceProvisionedController mDeviceProvisionedController;
@@ -429,6 +438,16 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
mHvacController.removeAllComponents();
mCarFacetButtonController.removeAll();
+ if (mNavigationBarWindow != null) {
+ mNavigationBarView = null;
+ }
+ if (mLeftNavigationBarWindow != null) {
+ mLeftNavigationBarView = null;
+ }
+ if (mRightNavigationBarWindow != null) {
+ mRightNavigationBarView = null;
+ }
+
buildNavBarContent();
// CarFacetButtonController was reset therefore we need to re-add the status bar elements
// to the controller.
@@ -451,28 +470,28 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
* the full screen user selector is shown.
*/
void setNavBarVisibility(@View.Visibility int visibility) {
- if (mNavigationBarViewFactory.getBottomWindow() != null) {
- mNavigationBarViewFactory.getBottomWindow().setVisibility(visibility);
+ if (mNavigationBarWindow != null) {
+ mNavigationBarWindow.setVisibility(visibility);
}
- if (mNavigationBarViewFactory.getLeftWindow() != null) {
- mNavigationBarViewFactory.getLeftWindow().setVisibility(visibility);
+ if (mLeftNavigationBarWindow != null) {
+ mLeftNavigationBarWindow.setVisibility(visibility);
}
- if (mNavigationBarViewFactory.getRightWindow() != null) {
- mNavigationBarViewFactory.getRightWindow().setVisibility(visibility);
+ if (mRightNavigationBarWindow != null) {
+ mRightNavigationBarWindow.setVisibility(visibility);
}
}
@Override
public boolean hideKeyguard() {
boolean result = super.hideKeyguard();
- if (mNavigationBarViewFactory.getBottomBar(mDeviceIsSetUpForUser) != null) {
- mNavigationBarViewFactory.getBottomBar(mDeviceIsSetUpForUser).hideKeyguardButtons();
+ if (mNavigationBarView != null) {
+ mNavigationBarView.hideKeyguardButtons();
}
- if (mNavigationBarViewFactory.getLeftBar(mDeviceIsSetUpForUser) != null) {
- mNavigationBarViewFactory.getLeftBar(mDeviceIsSetUpForUser).hideKeyguardButtons();
+ if (mLeftNavigationBarView != null) {
+ mLeftNavigationBarView.hideKeyguardButtons();
}
- if (mNavigationBarViewFactory.getRightBar(mDeviceIsSetUpForUser) != null) {
- mNavigationBarViewFactory.getRightBar(mDeviceIsSetUpForUser).hideKeyguardButtons();
+ if (mRightNavigationBarView != null) {
+ mRightNavigationBarView.hideKeyguardButtons();
}
return result;
}
@@ -487,14 +506,14 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
* Switch to the keyguard applicable content contained in the nav bars
*/
private void updateNavBarForKeyguardContent() {
- if (mNavigationBarViewFactory.getBottomBar(mDeviceIsSetUpForUser) != null) {
- mNavigationBarViewFactory.getBottomBar(mDeviceIsSetUpForUser).showKeyguardButtons();
+ if (mNavigationBarView != null) {
+ mNavigationBarView.showKeyguardButtons();
}
- if (mNavigationBarViewFactory.getLeftBar(mDeviceIsSetUpForUser) != null) {
- mNavigationBarViewFactory.getLeftBar(mDeviceIsSetUpForUser).showKeyguardButtons();
+ if (mLeftNavigationBarView != null) {
+ mLeftNavigationBarView.showKeyguardButtons();
}
- if (mNavigationBarViewFactory.getRightBar(mDeviceIsSetUpForUser) != null) {
- mNavigationBarViewFactory.getRightBar(mDeviceIsSetUpForUser).showKeyguardButtons();
+ if (mRightNavigationBarView != null) {
+ mRightNavigationBarView.showKeyguardButtons();
}
}
@@ -599,26 +618,19 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
mNotificationDataManager = new NotificationDataManager();
mNotificationDataManager.setOnUnseenCountUpdateListener(
() -> {
- if (mNavigationBarViewFactory.getBottomBar(mDeviceIsSetUpForUser) != null
- && mNotificationDataManager != null) {
+ if (mNavigationBarView != null && mNotificationDataManager != null) {
Boolean hasUnseen =
mNotificationDataManager.getUnseenNotificationCount() > 0;
- if (mNavigationBarViewFactory.getBottomBar(mDeviceIsSetUpForUser) != null) {
- mNavigationBarViewFactory.getBottomBar(
- mDeviceIsSetUpForUser).toggleNotificationUnseenIndicator(
- hasUnseen);
+ if (mNavigationBarView != null) {
+ mNavigationBarView.toggleNotificationUnseenIndicator(hasUnseen);
}
- if (mNavigationBarViewFactory.getLeftBar(mDeviceIsSetUpForUser) != null) {
- mNavigationBarViewFactory.getLeftBar(
- mDeviceIsSetUpForUser).toggleNotificationUnseenIndicator(
- hasUnseen);
+ if (mLeftNavigationBarView != null) {
+ mLeftNavigationBarView.toggleNotificationUnseenIndicator(hasUnseen);
}
- if (mNavigationBarViewFactory.getRightBar(mDeviceIsSetUpForUser) != null) {
- mNavigationBarViewFactory.getRightBar(
- mDeviceIsSetUpForUser).toggleNotificationUnseenIndicator(
- hasUnseen);
+ if (mRightNavigationBarView != null) {
+ mRightNavigationBarView.toggleNotificationUnseenIndicator(hasUnseen);
}
}
});
@@ -873,6 +885,10 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
@Override
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);
+
buildNavBarWindows();
buildNavBarContent();
}
@@ -880,22 +896,40 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
private void buildNavBarContent() {
buildTopBar();
- CarNavigationBarView bottom = mNavigationBarViewFactory.getBottomBar(mDeviceIsSetUpForUser);
- bottom.setStatusBar(this);
- bottom.setStatusBarWindowTouchListener(mNavBarNotificationTouchListener);
+ if (mShowBottom) {
+ mNavigationBarView = mNavigationBarViewFactory.getBottomBar(mDeviceIsSetUpForUser);
+ mNavigationBarView.setStatusBar(this);
+ mNavigationBarView.setStatusBarWindowTouchListener(mNavBarNotificationTouchListener);
+ }
- CarNavigationBarView left = mNavigationBarViewFactory.getLeftBar(mDeviceIsSetUpForUser);
- left.setStatusBar(this);
- left.setStatusBarWindowTouchListener(mNavBarNotificationTouchListener);
+ if (mShowLeft) {
+ mLeftNavigationBarView = mNavigationBarViewFactory.getLeftBar(mDeviceIsSetUpForUser);
+ mLeftNavigationBarView.setStatusBar(this);
+ mLeftNavigationBarView.setStatusBarWindowTouchListener(
+ mNavBarNotificationTouchListener);
+ }
- CarNavigationBarView right = mNavigationBarViewFactory.getLeftBar(mDeviceIsSetUpForUser);
- right.setStatusBar(this);
- right.setStatusBarWindowTouchListener(mNavBarNotificationTouchListener);
+ if (mShowRight) {
+ mRightNavigationBarView = mNavigationBarViewFactory.getLeftBar(mDeviceIsSetUpForUser);
+ mRightNavigationBarView.setStatusBar(this);
+ mRightNavigationBarView.setStatusBarWindowTouchListener(
+ mNavBarNotificationTouchListener);
+ }
}
private void buildNavBarWindows() {
mTopNavigationBarContainer = mStatusBarWindow
.findViewById(R.id.car_top_navigation_bar_container);
+
+ if (mShowBottom) {
+ mNavigationBarWindow = mNavigationBarViewFactory.getBottomWindow();
+ }
+ if (mShowLeft) {
+ mLeftNavigationBarWindow = mNavigationBarViewFactory.getLeftWindow();
+ }
+ if (mShowRight) {
+ mRightNavigationBarWindow = mNavigationBarViewFactory.getRightWindow();
+ }
}
private void buildTopBar() {