Remove references to nav bar views in StatusBar
All relevant logic is in the CarNavigationBarController which means we don't need to account for the views in two different parts of SystemUI. Bug: 143143539 Test: atest CarNavigationBarControllerTest Change-Id: I0a54ddf3966a8e373909062df78ec2665f4a9c9d
This commit is contained in:
@@ -25,6 +25,7 @@ import android.os.RemoteException;
|
||||
import android.os.ServiceManager;
|
||||
import android.view.Display;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.WindowManager;
|
||||
|
||||
@@ -291,7 +292,8 @@ public class CarNavigationBar extends SystemUI implements CommandQueue.Callbacks
|
||||
}
|
||||
|
||||
boolean isKeyboardVisible = (vis & InputMethodService.IME_VISIBLE) != 0;
|
||||
mCarNavigationBarController.setBottomWindowVisibility(!isKeyboardVisible);
|
||||
mCarNavigationBarController.setBottomWindowVisibility(
|
||||
isKeyboardVisible ? View.GONE : View.VISIBLE);
|
||||
}
|
||||
|
||||
private void updateNavBarForKeyguardContent() {
|
||||
|
||||
@@ -98,31 +98,30 @@ public class CarNavigationBarController {
|
||||
}
|
||||
|
||||
/** Toggles the bottom nav bar visibility. */
|
||||
public boolean setBottomWindowVisibility(boolean isVisible) {
|
||||
return setWindowVisibility(getBottomWindow(), isVisible);
|
||||
public boolean setBottomWindowVisibility(@View.Visibility int visibility) {
|
||||
return setWindowVisibility(getBottomWindow(), visibility);
|
||||
}
|
||||
|
||||
/** Toggles the left nav bar visibility. */
|
||||
public boolean setLeftWindowVisibility(boolean isVisible) {
|
||||
return setWindowVisibility(getLeftWindow(), isVisible);
|
||||
public boolean setLeftWindowVisibility(@View.Visibility int visibility) {
|
||||
return setWindowVisibility(getLeftWindow(), visibility);
|
||||
}
|
||||
|
||||
/** Toggles the right nav bar visibility. */
|
||||
public boolean setRightWindowVisibility(boolean isVisible) {
|
||||
return setWindowVisibility(getRightWindow(), isVisible);
|
||||
public boolean setRightWindowVisibility(@View.Visibility int visibility) {
|
||||
return setWindowVisibility(getRightWindow(), visibility);
|
||||
}
|
||||
|
||||
private boolean setWindowVisibility(ViewGroup window, boolean isVisible) {
|
||||
private boolean setWindowVisibility(ViewGroup window, @View.Visibility int visibility) {
|
||||
if (window == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
int newVisibility = isVisible ? View.VISIBLE : View.GONE;
|
||||
if (window.getVisibility() == newVisibility) {
|
||||
if (window.getVisibility() == visibility) {
|
||||
return false;
|
||||
}
|
||||
|
||||
window.setVisibility(newVisibility);
|
||||
window.setVisibility(visibility);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -228,6 +227,63 @@ public class CarNavigationBarController {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows all of the keyguard specific buttons on the valid instances of
|
||||
* {@link CarNavigationBarView}.
|
||||
*/
|
||||
public void showAllKeyguardButtons(boolean isSetUp) {
|
||||
checkAllBars(isSetUp);
|
||||
if (mTopView != null) {
|
||||
mTopView.showKeyguardButtons();
|
||||
}
|
||||
if (mBottomView != null) {
|
||||
mBottomView.showKeyguardButtons();
|
||||
}
|
||||
if (mLeftView != null) {
|
||||
mLeftView.showKeyguardButtons();
|
||||
}
|
||||
if (mRightView != null) {
|
||||
mRightView.showKeyguardButtons();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Hides all of the keyguard specific buttons on the valid instances of
|
||||
* {@link CarNavigationBarView}.
|
||||
*/
|
||||
public void hideAllKeyguardButtons(boolean isSetUp) {
|
||||
checkAllBars(isSetUp);
|
||||
if (mTopView != null) {
|
||||
mTopView.hideKeyguardButtons();
|
||||
}
|
||||
if (mBottomView != null) {
|
||||
mBottomView.hideKeyguardButtons();
|
||||
}
|
||||
if (mLeftView != null) {
|
||||
mLeftView.hideKeyguardButtons();
|
||||
}
|
||||
if (mRightView != null) {
|
||||
mRightView.hideKeyguardButtons();
|
||||
}
|
||||
}
|
||||
|
||||
/** Toggles whether the notifications icon has an unseen indicator or not. */
|
||||
public void toggleAllNotificationsUnseenIndicator(boolean isSetUp, boolean hasUnseen) {
|
||||
checkAllBars(isSetUp);
|
||||
if (mTopView != null) {
|
||||
mTopView.toggleNotificationUnseenIndicator(hasUnseen);
|
||||
}
|
||||
if (mBottomView != null) {
|
||||
mBottomView.toggleNotificationUnseenIndicator(hasUnseen);
|
||||
}
|
||||
if (mLeftView != null) {
|
||||
mLeftView.toggleNotificationUnseenIndicator(hasUnseen);
|
||||
}
|
||||
if (mRightView != null) {
|
||||
mRightView.toggleNotificationUnseenIndicator(hasUnseen);
|
||||
}
|
||||
}
|
||||
|
||||
/** Interface for controlling the notifications shade. */
|
||||
public interface NotificationsShadeController {
|
||||
/** Toggles the visibility of the notifications shade. */
|
||||
@@ -244,4 +300,11 @@ public class CarNavigationBarController {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void checkAllBars(boolean isSetUp) {
|
||||
mTopView = getTopBar(isSetUp);
|
||||
mBottomView = getBottomBar(isSetUp);
|
||||
mLeftView = getLeftBar(isSetUp);
|
||||
mRightView = getRightBar(isSetUp);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -150,6 +150,11 @@ public class CarNavigationButton extends com.android.keyguard.AlphaOptimizedImag
|
||||
updateImage();
|
||||
}
|
||||
|
||||
/** Gets whether the icon is in an unseen state. */
|
||||
public boolean getUnseen() {
|
||||
return mHasUnseen;
|
||||
}
|
||||
|
||||
private void updateImage() {
|
||||
if (mHasUnseen) {
|
||||
setImageResource(mSelected ? UNSEEN_SELECTED_ICON_RESOURCE_ID
|
||||
|
||||
@@ -168,13 +168,7 @@ 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 final CarNavigationBarController mCarNavigationBarController;
|
||||
@@ -425,12 +419,12 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
|
||||
new DeviceProvisionedController.DeviceProvisionedListener() {
|
||||
@Override
|
||||
public void onUserSetupChanged() {
|
||||
mHandler.post(() -> restartNavBarsIfNecessary());
|
||||
mHandler.post(() -> resetSystemBarsIfNecessary());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUserSwitched() {
|
||||
mHandler.post(() -> restartNavBarsIfNecessary());
|
||||
mHandler.post(() -> resetSystemBarsIfNecessary());
|
||||
}
|
||||
});
|
||||
|
||||
@@ -444,11 +438,11 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
|
||||
mSwitchToGuestTimer = new SwitchToGuestTimer(mContext);
|
||||
}
|
||||
|
||||
private void restartNavBarsIfNecessary() {
|
||||
private void resetSystemBarsIfNecessary() {
|
||||
boolean currentUserSetup = mDeviceProvisionedController.isCurrentUserSetup();
|
||||
if (mDeviceIsSetUpForUser != currentUserSetup) {
|
||||
mDeviceIsSetUpForUser = currentUserSetup;
|
||||
restartNavBars();
|
||||
resetSystemBars();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -456,19 +450,9 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
|
||||
* Remove all content from navbars and rebuild them. Used to allow for different nav bars
|
||||
* before and after the device is provisioned. . Also for change of density and font size.
|
||||
*/
|
||||
private void restartNavBars() {
|
||||
private void resetSystemBars() {
|
||||
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.
|
||||
@@ -480,51 +464,22 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
|
||||
* the full screen user selector is shown.
|
||||
*/
|
||||
void setNavBarVisibility(@View.Visibility int visibility) {
|
||||
if (mNavigationBarWindow != null) {
|
||||
mNavigationBarWindow.setVisibility(visibility);
|
||||
}
|
||||
if (mLeftNavigationBarWindow != null) {
|
||||
mLeftNavigationBarWindow.setVisibility(visibility);
|
||||
}
|
||||
if (mRightNavigationBarWindow != null) {
|
||||
mRightNavigationBarWindow.setVisibility(visibility);
|
||||
}
|
||||
mCarNavigationBarController.setBottomWindowVisibility(visibility);
|
||||
mCarNavigationBarController.setLeftWindowVisibility(visibility);
|
||||
mCarNavigationBarController.setRightWindowVisibility(visibility);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hideKeyguard() {
|
||||
boolean result = super.hideKeyguard();
|
||||
if (mNavigationBarView != null) {
|
||||
mNavigationBarView.hideKeyguardButtons();
|
||||
}
|
||||
if (mLeftNavigationBarView != null) {
|
||||
mLeftNavigationBarView.hideKeyguardButtons();
|
||||
}
|
||||
if (mRightNavigationBarView != null) {
|
||||
mRightNavigationBarView.hideKeyguardButtons();
|
||||
}
|
||||
mCarNavigationBarController.hideAllKeyguardButtons(mDeviceIsSetUpForUser);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showKeyguard() {
|
||||
super.showKeyguard();
|
||||
updateNavBarForKeyguardContent();
|
||||
}
|
||||
|
||||
/**
|
||||
* Switch to the keyguard applicable content contained in the nav bars
|
||||
*/
|
||||
private void updateNavBarForKeyguardContent() {
|
||||
if (mNavigationBarView != null) {
|
||||
mNavigationBarView.showKeyguardButtons();
|
||||
}
|
||||
if (mLeftNavigationBarView != null) {
|
||||
mLeftNavigationBarView.showKeyguardButtons();
|
||||
}
|
||||
if (mRightNavigationBarView != null) {
|
||||
mRightNavigationBarView.showKeyguardButtons();
|
||||
}
|
||||
mCarNavigationBarController.showAllKeyguardButtons(mDeviceIsSetUpForUser);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -628,20 +583,11 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
|
||||
mNotificationDataManager = new NotificationDataManager();
|
||||
mNotificationDataManager.setOnUnseenCountUpdateListener(
|
||||
() -> {
|
||||
if (mNavigationBarView != null && mNotificationDataManager != null) {
|
||||
Boolean hasUnseen =
|
||||
if (mNotificationDataManager != null) {
|
||||
boolean hasUnseen =
|
||||
mNotificationDataManager.getUnseenNotificationCount() > 0;
|
||||
if (mNavigationBarView != null) {
|
||||
mNavigationBarView.toggleNotificationUnseenIndicator(hasUnseen);
|
||||
}
|
||||
|
||||
if (mLeftNavigationBarView != null) {
|
||||
mLeftNavigationBarView.toggleNotificationUnseenIndicator(hasUnseen);
|
||||
}
|
||||
|
||||
if (mRightNavigationBarView != null) {
|
||||
mRightNavigationBarView.toggleNotificationUnseenIndicator(hasUnseen);
|
||||
}
|
||||
mCarNavigationBarController.toggleAllNotificationsUnseenIndicator(
|
||||
mDeviceIsSetUpForUser, hasUnseen);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -895,37 +841,27 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
|
||||
|
||||
@Override
|
||||
protected void createNavigationBar(@Nullable RegisterStatusBarResult result) {
|
||||
buildNavBarWindows();
|
||||
mTopNavigationBarContainer = mStatusBarWindow
|
||||
.findViewById(R.id.car_top_navigation_bar_container);
|
||||
|
||||
buildNavBarContent();
|
||||
}
|
||||
|
||||
private void buildNavBarContent() {
|
||||
buildTopBar();
|
||||
|
||||
mNavigationBarView = mCarNavigationBarController.getBottomBar(mDeviceIsSetUpForUser);
|
||||
mCarNavigationBarController.registerBottomBarTouchListener(
|
||||
mNavBarNotificationTouchListener);
|
||||
|
||||
mLeftNavigationBarView = mCarNavigationBarController.getLeftBar(mDeviceIsSetUpForUser);
|
||||
mCarNavigationBarController.registerLeftBarTouchListener(
|
||||
mNavBarNotificationTouchListener);
|
||||
|
||||
mRightNavigationBarView = mCarNavigationBarController.getLeftBar(mDeviceIsSetUpForUser);
|
||||
mCarNavigationBarController.registerRightBarTouchListener(
|
||||
mNavBarNotificationTouchListener);
|
||||
|
||||
mCarNavigationBarController.registerNotificationController(() -> togglePanel());
|
||||
}
|
||||
|
||||
private void buildNavBarWindows() {
|
||||
mTopNavigationBarContainer = mStatusBarWindow
|
||||
.findViewById(R.id.car_top_navigation_bar_container);
|
||||
|
||||
mNavigationBarWindow = mCarNavigationBarController.getBottomWindow();
|
||||
mLeftNavigationBarWindow = mCarNavigationBarController.getLeftWindow();
|
||||
mRightNavigationBarWindow = mCarNavigationBarController.getRightWindow();
|
||||
}
|
||||
|
||||
private void buildTopBar() {
|
||||
mTopNavigationBarContainer.removeAllViews();
|
||||
mTopNavigationBarView = mCarNavigationBarController.getTopBar(mDeviceIsSetUpForUser);
|
||||
@@ -1099,7 +1035,7 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
|
||||
@Override
|
||||
public void onDensityOrFontScaleChanged() {
|
||||
super.onDensityOrFontScaleChanged();
|
||||
restartNavBars();
|
||||
resetSystemBars();
|
||||
// Need to update the background on density changed in case the change was due to night
|
||||
// mode.
|
||||
mNotificationPanelBackground = getDefaultWallpaper();
|
||||
|
||||
@@ -31,7 +31,9 @@ import androidx.test.filters.SmallTest;
|
||||
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.plugins.DarkIconDispatcher;
|
||||
import com.android.systemui.statusbar.car.hvac.HvacController;
|
||||
import com.android.systemui.statusbar.phone.StatusBarIconController;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -60,6 +62,10 @@ public class CarNavigationBarControllerTest extends SysuiTestCase {
|
||||
mNavigationBarViewFactory = new NavigationBarViewFactory(mContext);
|
||||
mHvacControllerLazy = () -> mHvacController;
|
||||
mTestableResources = mContext.getOrCreateTestableResources();
|
||||
|
||||
// Needed to inflate top navigation bar.
|
||||
mDependency.injectMockDependency(DarkIconDispatcher.class);
|
||||
mDependency.injectMockDependency(StatusBarIconController.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -189,7 +195,7 @@ public class CarNavigationBarControllerTest extends SysuiTestCase {
|
||||
mHvacControllerLazy);
|
||||
|
||||
ViewGroup window = mCarNavigationBar.getBottomWindow();
|
||||
mCarNavigationBar.setBottomWindowVisibility(true);
|
||||
mCarNavigationBar.setBottomWindowVisibility(View.VISIBLE);
|
||||
|
||||
assertThat(window.getVisibility()).isEqualTo(View.VISIBLE);
|
||||
}
|
||||
@@ -201,7 +207,7 @@ public class CarNavigationBarControllerTest extends SysuiTestCase {
|
||||
mHvacControllerLazy);
|
||||
|
||||
ViewGroup window = mCarNavigationBar.getBottomWindow();
|
||||
mCarNavigationBar.setBottomWindowVisibility(false);
|
||||
mCarNavigationBar.setBottomWindowVisibility(View.GONE);
|
||||
|
||||
assertThat(window.getVisibility()).isEqualTo(View.GONE);
|
||||
}
|
||||
@@ -213,7 +219,7 @@ public class CarNavigationBarControllerTest extends SysuiTestCase {
|
||||
mHvacControllerLazy);
|
||||
|
||||
ViewGroup window = mCarNavigationBar.getLeftWindow();
|
||||
mCarNavigationBar.setLeftWindowVisibility(true);
|
||||
mCarNavigationBar.setLeftWindowVisibility(View.VISIBLE);
|
||||
|
||||
assertThat(window.getVisibility()).isEqualTo(View.VISIBLE);
|
||||
}
|
||||
@@ -225,7 +231,7 @@ public class CarNavigationBarControllerTest extends SysuiTestCase {
|
||||
mHvacControllerLazy);
|
||||
|
||||
ViewGroup window = mCarNavigationBar.getLeftWindow();
|
||||
mCarNavigationBar.setLeftWindowVisibility(false);
|
||||
mCarNavigationBar.setLeftWindowVisibility(View.GONE);
|
||||
|
||||
assertThat(window.getVisibility()).isEqualTo(View.GONE);
|
||||
}
|
||||
@@ -237,7 +243,7 @@ public class CarNavigationBarControllerTest extends SysuiTestCase {
|
||||
mHvacControllerLazy);
|
||||
|
||||
ViewGroup window = mCarNavigationBar.getRightWindow();
|
||||
mCarNavigationBar.setRightWindowVisibility(true);
|
||||
mCarNavigationBar.setRightWindowVisibility(View.VISIBLE);
|
||||
|
||||
assertThat(window.getVisibility()).isEqualTo(View.VISIBLE);
|
||||
}
|
||||
@@ -249,7 +255,7 @@ public class CarNavigationBarControllerTest extends SysuiTestCase {
|
||||
mHvacControllerLazy);
|
||||
|
||||
ViewGroup window = mCarNavigationBar.getRightWindow();
|
||||
mCarNavigationBar.setRightWindowVisibility(false);
|
||||
mCarNavigationBar.setRightWindowVisibility(View.GONE);
|
||||
|
||||
assertThat(window.getVisibility()).isEqualTo(View.GONE);
|
||||
}
|
||||
@@ -313,4 +319,90 @@ public class CarNavigationBarControllerTest extends SysuiTestCase {
|
||||
|
||||
assertThat(controller).isNotNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testShowAllKeyguardButtons_bottomEnabled_bottomKeyguardButtonsVisible() {
|
||||
mTestableResources.addOverride(R.bool.config_enableBottomNavigationBar, true);
|
||||
mCarNavigationBar = new CarNavigationBarController(mContext, mNavigationBarViewFactory,
|
||||
mHvacControllerLazy);
|
||||
CarNavigationBarView bottomBar = mCarNavigationBar.getBottomBar(/* isSetUp= */ true);
|
||||
View bottomKeyguardButtons = bottomBar.findViewById(R.id.lock_screen_nav_buttons);
|
||||
|
||||
mCarNavigationBar.showAllKeyguardButtons(/* isSetUp= */ true);
|
||||
|
||||
assertThat(bottomKeyguardButtons.getVisibility()).isEqualTo(View.VISIBLE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testShowAllKeyguardButtons_bottomEnabled_bottomNavButtonsGone() {
|
||||
mTestableResources.addOverride(R.bool.config_enableBottomNavigationBar, true);
|
||||
mCarNavigationBar = new CarNavigationBarController(mContext, mNavigationBarViewFactory,
|
||||
mHvacControllerLazy);
|
||||
CarNavigationBarView bottomBar = mCarNavigationBar.getBottomBar(/* isSetUp= */ true);
|
||||
View bottomButtons = bottomBar.findViewById(R.id.nav_buttons);
|
||||
|
||||
mCarNavigationBar.showAllKeyguardButtons(/* isSetUp= */ true);
|
||||
|
||||
assertThat(bottomButtons.getVisibility()).isEqualTo(View.GONE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHideAllKeyguardButtons_bottomEnabled_bottomKeyguardButtonsGone() {
|
||||
mTestableResources.addOverride(R.bool.config_enableBottomNavigationBar, true);
|
||||
mCarNavigationBar = new CarNavigationBarController(mContext, mNavigationBarViewFactory,
|
||||
mHvacControllerLazy);
|
||||
CarNavigationBarView bottomBar = mCarNavigationBar.getBottomBar(/* isSetUp= */ true);
|
||||
View bottomKeyguardButtons = bottomBar.findViewById(R.id.lock_screen_nav_buttons);
|
||||
|
||||
mCarNavigationBar.showAllKeyguardButtons(/* isSetUp= */ true);
|
||||
assertThat(bottomKeyguardButtons.getVisibility()).isEqualTo(View.VISIBLE);
|
||||
mCarNavigationBar.hideAllKeyguardButtons(/* isSetUp= */ true);
|
||||
|
||||
assertThat(bottomKeyguardButtons.getVisibility()).isEqualTo(View.GONE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHideAllKeyguardButtons_bottomEnabled_bottomNavButtonsVisible() {
|
||||
mTestableResources.addOverride(R.bool.config_enableBottomNavigationBar, true);
|
||||
mCarNavigationBar = new CarNavigationBarController(mContext, mNavigationBarViewFactory,
|
||||
mHvacControllerLazy);
|
||||
CarNavigationBarView bottomBar = mCarNavigationBar.getBottomBar(/* isSetUp= */ true);
|
||||
View bottomButtons = bottomBar.findViewById(R.id.nav_buttons);
|
||||
|
||||
mCarNavigationBar.showAllKeyguardButtons(/* isSetUp= */ true);
|
||||
assertThat(bottomButtons.getVisibility()).isEqualTo(View.GONE);
|
||||
mCarNavigationBar.hideAllKeyguardButtons(/* isSetUp= */ true);
|
||||
|
||||
assertThat(bottomButtons.getVisibility()).isEqualTo(View.VISIBLE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testToggleAllNotificationsUnseenIndicator_bottomEnabled_hasUnseen_setCorrectly() {
|
||||
mTestableResources.addOverride(R.bool.config_enableBottomNavigationBar, true);
|
||||
mCarNavigationBar = new CarNavigationBarController(mContext, mNavigationBarViewFactory,
|
||||
mHvacControllerLazy);
|
||||
CarNavigationBarView bottomBar = mCarNavigationBar.getBottomBar(/* isSetUp= */ true);
|
||||
CarNavigationButton notifications = bottomBar.findViewById(R.id.notifications);
|
||||
|
||||
boolean hasUnseen = true;
|
||||
mCarNavigationBar.toggleAllNotificationsUnseenIndicator(/* isSetUp= */ true,
|
||||
hasUnseen);
|
||||
|
||||
assertThat(notifications.getUnseen()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testToggleAllNotificationsUnseenIndicator_bottomEnabled_noUnseen_setCorrectly() {
|
||||
mTestableResources.addOverride(R.bool.config_enableBottomNavigationBar, true);
|
||||
mCarNavigationBar = new CarNavigationBarController(mContext, mNavigationBarViewFactory,
|
||||
mHvacControllerLazy);
|
||||
CarNavigationBarView bottomBar = mCarNavigationBar.getBottomBar(/* isSetUp= */ true);
|
||||
CarNavigationButton notifications = bottomBar.findViewById(R.id.notifications);
|
||||
|
||||
boolean hasUnseen = false;
|
||||
mCarNavigationBar.toggleAllNotificationsUnseenIndicator(/* isSetUp= */ true,
|
||||
hasUnseen);
|
||||
|
||||
assertThat(notifications.getUnseen()).isFalse();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user