diff options
| -rw-r--r-- | packages/CarSystemUI/src/com/android/systemui/navigationbar/car/NavigationBarViewFactory.java | 2 | ||||
| -rw-r--r-- | packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java | 116 |
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() { |