Loading packages/CarSystemUI/res/values/config.xml +8 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,14 @@ <integer name="config_rightSystemBarZOrder">0</integer> <integer name="config_bottomSystemBarZOrder">10</integer> <!-- If set to true, the corresponding system bar will be hidden when Keyboard (IME) appears. NOTE: hideBottomSystemBarKeyboard must not be overlaid directly here. To change its value, overlay config_automotiveHideNavBarForKeyboard in framework/base/core/res/res. --> <bool name="config_hideTopSystemBarForKeyboard">false</bool> <bool name="config_hideBottomSystemBarForKeyboard">@*android:bool/config_automotiveHideNavBarForKeyboard</bool> <bool name="config_hideLeftSystemBarForKeyboard">false</bool> <bool name="config_hideRightSystemBarForKeyboard">false</bool> <!-- Disable normal notification rendering; we handle that ourselves --> <bool name="config_renderNotifications">false</bool> Loading packages/CarSystemUI/src/com/android/systemui/car/navigationbar/CarNavigationBar.java +31 −9 Original line number Diff line number Diff line Loading @@ -91,7 +91,11 @@ public class CarNavigationBar extends SystemUI implements CommandQueue.Callbacks private ActivityManagerWrapper mActivityManagerWrapper; // If the nav bar should be hidden when the soft keyboard is visible. private boolean mHideNavBarForKeyboard; private boolean mHideTopBarForKeyboard; private boolean mHideLeftBarForKeyboard; private boolean mHideRightBarForKeyboard; private boolean mHideBottomBarForKeyboard; private boolean mBottomNavBarVisible; // Nav bar views. Loading Loading @@ -160,8 +164,13 @@ public class CarNavigationBar extends SystemUI implements CommandQueue.Callbacks @Override public void start() { // Set initial state. mHideNavBarForKeyboard = mResources.getBoolean( com.android.internal.R.bool.config_automotiveHideNavBarForKeyboard); mHideTopBarForKeyboard = mSystemBarConfigs.getHideForKeyboardBySide(SystemBarConfigs.TOP); mHideBottomBarForKeyboard = mSystemBarConfigs.getHideForKeyboardBySide( SystemBarConfigs.BOTTOM); mHideLeftBarForKeyboard = mSystemBarConfigs.getHideForKeyboardBySide(SystemBarConfigs.LEFT); mHideRightBarForKeyboard = mSystemBarConfigs.getHideForKeyboardBySide( SystemBarConfigs.RIGHT); mBottomNavBarVisible = false; // Connect into the status bar manager service Loading Loading @@ -411,19 +420,32 @@ public class CarNavigationBar extends SystemUI implements CommandQueue.Callbacks @Override public void setImeWindowStatus(int displayId, IBinder token, int vis, int backDisposition, boolean showImeSwitcher) { if (!mHideNavBarForKeyboard) { return; } if (mContext.getDisplayId() != displayId) { return; } boolean isKeyboardVisible = (vis & InputMethodService.IME_VISIBLE) != 0; if (mHideTopBarForKeyboard) { mCarNavigationBarController.setTopWindowVisibility( isKeyboardVisible ? View.GONE : View.VISIBLE); } if (mHideBottomBarForKeyboard) { mCarNavigationBarController.setBottomWindowVisibility( isKeyboardVisible ? View.GONE : View.VISIBLE); } if (mHideLeftBarForKeyboard) { mCarNavigationBarController.setLeftWindowVisibility( isKeyboardVisible ? View.GONE : View.VISIBLE); } if (mHideRightBarForKeyboard) { mCarNavigationBarController.setRightWindowVisibility( isKeyboardVisible ? View.GONE : View.VISIBLE); } } @Override public void onSystemBarAppearanceChanged( int displayId, Loading packages/CarSystemUI/src/com/android/systemui/car/navigationbar/CarNavigationBarController.java +7 −6 Original line number Diff line number Diff line Loading @@ -83,9 +83,7 @@ public class CarNavigationBarController { * Hides all system bars. */ public void hideBars() { if (mTopView != null) { mTopView.setVisibility(View.GONE); } setTopWindowVisibility(View.GONE); setBottomWindowVisibility(View.GONE); setLeftWindowVisibility(View.GONE); setRightWindowVisibility(View.GONE); Loading @@ -95,9 +93,7 @@ public class CarNavigationBarController { * Shows all system bars. */ public void showBars() { if (mTopView != null) { mTopView.setVisibility(View.VISIBLE); } setTopWindowVisibility(View.VISIBLE); setBottomWindowVisibility(View.VISIBLE); setLeftWindowVisibility(View.VISIBLE); setRightWindowVisibility(View.VISIBLE); Loading Loading @@ -140,6 +136,11 @@ public class CarNavigationBarController { return mShowRight ? mNavigationBarViewFactory.getRightWindow() : null; } /** Toggles the top nav bar visibility. */ public boolean setTopWindowVisibility(@View.Visibility int visibility) { return setWindowVisibility(getTopWindow(), visibility); } /** Toggles the bottom nav bar visibility. */ public boolean setBottomWindowVisibility(@View.Visibility int visibility) { return setWindowVisibility(getBottomWindow(), visibility); Loading packages/CarSystemUI/src/com/android/systemui/car/navigationbar/SystemBarConfigs.java +47 −2 Original line number Diff line number Diff line Loading @@ -100,6 +100,7 @@ public class SystemBarConfigs { checkEnabledBarsHaveUniqueBarTypes(); checkAllOverlappingBarsHaveDifferentZOrders(); checkSystemBarEnabledForNotificationPanel(); checkHideBottomBarForKeyboardConfigSync(); setInsetPaddingsForOverlappingCorners(); sortSystemBarSidesByZOrder(); } Loading @@ -124,6 +125,11 @@ public class SystemBarConfigs { } } protected boolean getHideForKeyboardBySide(@SystemBarSide int side) { return mSystemBarConfigMap.get(side) != null && mSystemBarConfigMap.get(side).getHideForKeyboard(); } protected void insetSystemBar(@SystemBarSide int side, CarNavigationBarView view) { if (mSystemBarConfigMap.get(side) == null) return; Loading Loading @@ -213,6 +219,8 @@ public class SystemBarConfigs { com.android.internal.R.dimen.status_bar_height)) .setBarType(mResources.getInteger(R.integer.config_topSystemBarType)) .setZOrder(mResources.getInteger(R.integer.config_topSystemBarZOrder)) .setHideForKeyboard(mResources.getBoolean( R.bool.config_hideTopSystemBarForKeyboard)) .build(); mSystemBarConfigMap.put(TOP, topBarConfig); } Loading @@ -226,6 +234,8 @@ public class SystemBarConfigs { .setBarType(mResources.getInteger(R.integer.config_bottomSystemBarType)) .setZOrder( mResources.getInteger(R.integer.config_bottomSystemBarZOrder)) .setHideForKeyboard(mResources.getBoolean( R.bool.config_hideBottomSystemBarForKeyboard)) .build(); mSystemBarConfigMap.put(BOTTOM, bottomBarConfig); } Loading @@ -238,6 +248,8 @@ public class SystemBarConfigs { R.dimen.car_left_navigation_bar_width)) .setBarType(mResources.getInteger(R.integer.config_leftSystemBarType)) .setZOrder(mResources.getInteger(R.integer.config_leftSystemBarZOrder)) .setHideForKeyboard(mResources.getBoolean( R.bool.config_hideLeftSystemBarForKeyboard)) .build(); mSystemBarConfigMap.put(LEFT, leftBarConfig); } Loading @@ -250,6 +262,8 @@ public class SystemBarConfigs { R.dimen.car_right_navigation_bar_width)) .setBarType(mResources.getInteger(R.integer.config_rightSystemBarType)) .setZOrder(mResources.getInteger(R.integer.config_rightSystemBarZOrder)) .setHideForKeyboard(mResources.getBoolean( R.bool.config_hideRightSystemBarForKeyboard)) .build(); mSystemBarConfigMap.put(RIGHT, rightBarConfig); } Loading Loading @@ -304,6 +318,24 @@ public class SystemBarConfigs { } } private void checkHideBottomBarForKeyboardConfigSync() throws RuntimeException { if (mBottomNavBarEnabled) { boolean actual = mResources.getBoolean(R.bool.config_hideBottomSystemBarForKeyboard); boolean expected = mResources.getBoolean( com.android.internal.R.bool.config_automotiveHideNavBarForKeyboard); if (actual != expected) { throw new RuntimeException("config_hideBottomSystemBarForKeyboard must not be " + "overlaid directly and should always refer to" + "config_automotiveHideNavBarForKeyboard. However, their values " + "currently do not sync. Set config_hideBottomSystemBarForKeyguard to " + "@*android:bool/config_automotiveHideNavBarForKeyboard. To change its " + "value, overlay config_automotiveHideNavBarForKeyboard in " + "framework/base/core/res/res."); } } } private void setInsetPaddingsForOverlappingCorners() { Map<@SystemBarSide Integer, Boolean> systemBarVisibilityOnInit = getSystemBarsVisibilityOnInit(); Loading Loading @@ -410,14 +442,17 @@ public class SystemBarConfigs { private final int mBarType; private final int mGirth; private final int mZOrder; private final boolean mHideForKeyboard; private int[] mPaddings = new int[]{0, 0, 0, 0}; private SystemBarConfig(@SystemBarSide int side, int barType, int girth, int zOrder) { private SystemBarConfig(@SystemBarSide int side, int barType, int girth, int zOrder, boolean hideForKeyboard) { mSide = side; mBarType = barType; mGirth = girth; mZOrder = zOrder; mHideForKeyboard = hideForKeyboard; } private int getSide() { Loading @@ -436,6 +471,10 @@ public class SystemBarConfigs { return mZOrder; } private boolean getHideForKeyboard() { return mHideForKeyboard; } private int[] getPaddings() { return mPaddings; } Loading Loading @@ -473,6 +512,7 @@ public class SystemBarConfigs { private int mBarType; private int mGirth; private int mZOrder; private boolean mHideForKeyboard; private SystemBarConfigBuilder setSide(@SystemBarSide int side) { mSide = side; Loading @@ -494,8 +534,13 @@ public class SystemBarConfigs { return this; } private SystemBarConfigBuilder setHideForKeyboard(boolean hide) { mHideForKeyboard = hide; return this; } private SystemBarConfig build() { return new SystemBarConfig(mSide, mBarType, mGirth, mZOrder); return new SystemBarConfig(mSide, mBarType, mGirth, mZOrder, mHideForKeyboard); } } } packages/CarSystemUI/tests/src/com/android/systemui/car/navigationbar/SystemBarConfigsTest.java +40 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.car.navigationbar; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; Loading Loading @@ -97,6 +98,16 @@ public class SystemBarConfigsTest extends SysuiTestCase { mSystemBarConfigs = new SystemBarConfigs(mResources); } @Test(expected = RuntimeException.class) public void onInit_hideBottomSystemBarForKeyboardValueDoNotSync_throwsRuntimeException() { when(mResources.getBoolean(R.bool.config_hideBottomSystemBarForKeyboard)).thenReturn(false); when(mResources.getBoolean( com.android.internal.R.bool.config_automotiveHideNavBarForKeyboard)).thenReturn( true); mSystemBarConfigs = new SystemBarConfigs(mResources); } @Test public void getTopSystemBarLayoutParams_topBarEnabled_returnsTopSystemBarLayoutParams() { mSystemBarConfigs = new SystemBarConfigs(mResources); Loading @@ -116,6 +127,26 @@ public class SystemBarConfigsTest extends SysuiTestCase { assertNull(lp); } @Test public void getTopSystemBarHideForKeyboard_hideBarForKeyboard_returnsTrue() { when(mResources.getBoolean(R.bool.config_hideTopSystemBarForKeyboard)).thenReturn(true); mSystemBarConfigs = new SystemBarConfigs(mResources); boolean hideKeyboard = mSystemBarConfigs.getHideForKeyboardBySide(SystemBarConfigs.TOP); assertTrue(hideKeyboard); } @Test public void getTopSystemBarHideForKeyboard_topBarNotEnabled_returnsFalse() { when(mResources.getBoolean(R.bool.config_enableTopNavigationBar)).thenReturn(false); mSystemBarConfigs = new SystemBarConfigs(mResources); boolean hideKeyboard = mSystemBarConfigs.getHideForKeyboardBySide(SystemBarConfigs.TOP); assertFalse(hideKeyboard); } @Test public void topSystemBarHasHigherZOrderThanHuns_topSystemBarIsNavigationBarPanelType() { when(mResources.getInteger(R.integer.config_topSystemBarZOrder)).thenReturn( Loading Loading @@ -198,5 +229,14 @@ public class SystemBarConfigsTest extends SysuiTestCase { when(mResources.getInteger(R.integer.config_bottomSystemBarZOrder)).thenReturn(10); when(mResources.getInteger(R.integer.config_leftSystemBarZOrder)).thenReturn(2); when(mResources.getInteger(R.integer.config_rightSystemBarZOrder)).thenReturn(3); when(mResources.getBoolean(R.bool.config_hideTopSystemBarForKeyboard)).thenReturn(false); when(mResources.getBoolean( com.android.internal.R.bool.config_automotiveHideNavBarForKeyboard)).thenReturn( false); when(mResources.getBoolean(R.bool.config_hideLeftSystemBarForKeyboard)).thenReturn( false); when(mResources.getBoolean(R.bool.config_hideRightSystemBarForKeyboard)).thenReturn( false); } } Loading
packages/CarSystemUI/res/values/config.xml +8 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,14 @@ <integer name="config_rightSystemBarZOrder">0</integer> <integer name="config_bottomSystemBarZOrder">10</integer> <!-- If set to true, the corresponding system bar will be hidden when Keyboard (IME) appears. NOTE: hideBottomSystemBarKeyboard must not be overlaid directly here. To change its value, overlay config_automotiveHideNavBarForKeyboard in framework/base/core/res/res. --> <bool name="config_hideTopSystemBarForKeyboard">false</bool> <bool name="config_hideBottomSystemBarForKeyboard">@*android:bool/config_automotiveHideNavBarForKeyboard</bool> <bool name="config_hideLeftSystemBarForKeyboard">false</bool> <bool name="config_hideRightSystemBarForKeyboard">false</bool> <!-- Disable normal notification rendering; we handle that ourselves --> <bool name="config_renderNotifications">false</bool> Loading
packages/CarSystemUI/src/com/android/systemui/car/navigationbar/CarNavigationBar.java +31 −9 Original line number Diff line number Diff line Loading @@ -91,7 +91,11 @@ public class CarNavigationBar extends SystemUI implements CommandQueue.Callbacks private ActivityManagerWrapper mActivityManagerWrapper; // If the nav bar should be hidden when the soft keyboard is visible. private boolean mHideNavBarForKeyboard; private boolean mHideTopBarForKeyboard; private boolean mHideLeftBarForKeyboard; private boolean mHideRightBarForKeyboard; private boolean mHideBottomBarForKeyboard; private boolean mBottomNavBarVisible; // Nav bar views. Loading Loading @@ -160,8 +164,13 @@ public class CarNavigationBar extends SystemUI implements CommandQueue.Callbacks @Override public void start() { // Set initial state. mHideNavBarForKeyboard = mResources.getBoolean( com.android.internal.R.bool.config_automotiveHideNavBarForKeyboard); mHideTopBarForKeyboard = mSystemBarConfigs.getHideForKeyboardBySide(SystemBarConfigs.TOP); mHideBottomBarForKeyboard = mSystemBarConfigs.getHideForKeyboardBySide( SystemBarConfigs.BOTTOM); mHideLeftBarForKeyboard = mSystemBarConfigs.getHideForKeyboardBySide(SystemBarConfigs.LEFT); mHideRightBarForKeyboard = mSystemBarConfigs.getHideForKeyboardBySide( SystemBarConfigs.RIGHT); mBottomNavBarVisible = false; // Connect into the status bar manager service Loading Loading @@ -411,19 +420,32 @@ public class CarNavigationBar extends SystemUI implements CommandQueue.Callbacks @Override public void setImeWindowStatus(int displayId, IBinder token, int vis, int backDisposition, boolean showImeSwitcher) { if (!mHideNavBarForKeyboard) { return; } if (mContext.getDisplayId() != displayId) { return; } boolean isKeyboardVisible = (vis & InputMethodService.IME_VISIBLE) != 0; if (mHideTopBarForKeyboard) { mCarNavigationBarController.setTopWindowVisibility( isKeyboardVisible ? View.GONE : View.VISIBLE); } if (mHideBottomBarForKeyboard) { mCarNavigationBarController.setBottomWindowVisibility( isKeyboardVisible ? View.GONE : View.VISIBLE); } if (mHideLeftBarForKeyboard) { mCarNavigationBarController.setLeftWindowVisibility( isKeyboardVisible ? View.GONE : View.VISIBLE); } if (mHideRightBarForKeyboard) { mCarNavigationBarController.setRightWindowVisibility( isKeyboardVisible ? View.GONE : View.VISIBLE); } } @Override public void onSystemBarAppearanceChanged( int displayId, Loading
packages/CarSystemUI/src/com/android/systemui/car/navigationbar/CarNavigationBarController.java +7 −6 Original line number Diff line number Diff line Loading @@ -83,9 +83,7 @@ public class CarNavigationBarController { * Hides all system bars. */ public void hideBars() { if (mTopView != null) { mTopView.setVisibility(View.GONE); } setTopWindowVisibility(View.GONE); setBottomWindowVisibility(View.GONE); setLeftWindowVisibility(View.GONE); setRightWindowVisibility(View.GONE); Loading @@ -95,9 +93,7 @@ public class CarNavigationBarController { * Shows all system bars. */ public void showBars() { if (mTopView != null) { mTopView.setVisibility(View.VISIBLE); } setTopWindowVisibility(View.VISIBLE); setBottomWindowVisibility(View.VISIBLE); setLeftWindowVisibility(View.VISIBLE); setRightWindowVisibility(View.VISIBLE); Loading Loading @@ -140,6 +136,11 @@ public class CarNavigationBarController { return mShowRight ? mNavigationBarViewFactory.getRightWindow() : null; } /** Toggles the top nav bar visibility. */ public boolean setTopWindowVisibility(@View.Visibility int visibility) { return setWindowVisibility(getTopWindow(), visibility); } /** Toggles the bottom nav bar visibility. */ public boolean setBottomWindowVisibility(@View.Visibility int visibility) { return setWindowVisibility(getBottomWindow(), visibility); Loading
packages/CarSystemUI/src/com/android/systemui/car/navigationbar/SystemBarConfigs.java +47 −2 Original line number Diff line number Diff line Loading @@ -100,6 +100,7 @@ public class SystemBarConfigs { checkEnabledBarsHaveUniqueBarTypes(); checkAllOverlappingBarsHaveDifferentZOrders(); checkSystemBarEnabledForNotificationPanel(); checkHideBottomBarForKeyboardConfigSync(); setInsetPaddingsForOverlappingCorners(); sortSystemBarSidesByZOrder(); } Loading @@ -124,6 +125,11 @@ public class SystemBarConfigs { } } protected boolean getHideForKeyboardBySide(@SystemBarSide int side) { return mSystemBarConfigMap.get(side) != null && mSystemBarConfigMap.get(side).getHideForKeyboard(); } protected void insetSystemBar(@SystemBarSide int side, CarNavigationBarView view) { if (mSystemBarConfigMap.get(side) == null) return; Loading Loading @@ -213,6 +219,8 @@ public class SystemBarConfigs { com.android.internal.R.dimen.status_bar_height)) .setBarType(mResources.getInteger(R.integer.config_topSystemBarType)) .setZOrder(mResources.getInteger(R.integer.config_topSystemBarZOrder)) .setHideForKeyboard(mResources.getBoolean( R.bool.config_hideTopSystemBarForKeyboard)) .build(); mSystemBarConfigMap.put(TOP, topBarConfig); } Loading @@ -226,6 +234,8 @@ public class SystemBarConfigs { .setBarType(mResources.getInteger(R.integer.config_bottomSystemBarType)) .setZOrder( mResources.getInteger(R.integer.config_bottomSystemBarZOrder)) .setHideForKeyboard(mResources.getBoolean( R.bool.config_hideBottomSystemBarForKeyboard)) .build(); mSystemBarConfigMap.put(BOTTOM, bottomBarConfig); } Loading @@ -238,6 +248,8 @@ public class SystemBarConfigs { R.dimen.car_left_navigation_bar_width)) .setBarType(mResources.getInteger(R.integer.config_leftSystemBarType)) .setZOrder(mResources.getInteger(R.integer.config_leftSystemBarZOrder)) .setHideForKeyboard(mResources.getBoolean( R.bool.config_hideLeftSystemBarForKeyboard)) .build(); mSystemBarConfigMap.put(LEFT, leftBarConfig); } Loading @@ -250,6 +262,8 @@ public class SystemBarConfigs { R.dimen.car_right_navigation_bar_width)) .setBarType(mResources.getInteger(R.integer.config_rightSystemBarType)) .setZOrder(mResources.getInteger(R.integer.config_rightSystemBarZOrder)) .setHideForKeyboard(mResources.getBoolean( R.bool.config_hideRightSystemBarForKeyboard)) .build(); mSystemBarConfigMap.put(RIGHT, rightBarConfig); } Loading Loading @@ -304,6 +318,24 @@ public class SystemBarConfigs { } } private void checkHideBottomBarForKeyboardConfigSync() throws RuntimeException { if (mBottomNavBarEnabled) { boolean actual = mResources.getBoolean(R.bool.config_hideBottomSystemBarForKeyboard); boolean expected = mResources.getBoolean( com.android.internal.R.bool.config_automotiveHideNavBarForKeyboard); if (actual != expected) { throw new RuntimeException("config_hideBottomSystemBarForKeyboard must not be " + "overlaid directly and should always refer to" + "config_automotiveHideNavBarForKeyboard. However, their values " + "currently do not sync. Set config_hideBottomSystemBarForKeyguard to " + "@*android:bool/config_automotiveHideNavBarForKeyboard. To change its " + "value, overlay config_automotiveHideNavBarForKeyboard in " + "framework/base/core/res/res."); } } } private void setInsetPaddingsForOverlappingCorners() { Map<@SystemBarSide Integer, Boolean> systemBarVisibilityOnInit = getSystemBarsVisibilityOnInit(); Loading Loading @@ -410,14 +442,17 @@ public class SystemBarConfigs { private final int mBarType; private final int mGirth; private final int mZOrder; private final boolean mHideForKeyboard; private int[] mPaddings = new int[]{0, 0, 0, 0}; private SystemBarConfig(@SystemBarSide int side, int barType, int girth, int zOrder) { private SystemBarConfig(@SystemBarSide int side, int barType, int girth, int zOrder, boolean hideForKeyboard) { mSide = side; mBarType = barType; mGirth = girth; mZOrder = zOrder; mHideForKeyboard = hideForKeyboard; } private int getSide() { Loading @@ -436,6 +471,10 @@ public class SystemBarConfigs { return mZOrder; } private boolean getHideForKeyboard() { return mHideForKeyboard; } private int[] getPaddings() { return mPaddings; } Loading Loading @@ -473,6 +512,7 @@ public class SystemBarConfigs { private int mBarType; private int mGirth; private int mZOrder; private boolean mHideForKeyboard; private SystemBarConfigBuilder setSide(@SystemBarSide int side) { mSide = side; Loading @@ -494,8 +534,13 @@ public class SystemBarConfigs { return this; } private SystemBarConfigBuilder setHideForKeyboard(boolean hide) { mHideForKeyboard = hide; return this; } private SystemBarConfig build() { return new SystemBarConfig(mSide, mBarType, mGirth, mZOrder); return new SystemBarConfig(mSide, mBarType, mGirth, mZOrder, mHideForKeyboard); } } }
packages/CarSystemUI/tests/src/com/android/systemui/car/navigationbar/SystemBarConfigsTest.java +40 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.car.navigationbar; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; Loading Loading @@ -97,6 +98,16 @@ public class SystemBarConfigsTest extends SysuiTestCase { mSystemBarConfigs = new SystemBarConfigs(mResources); } @Test(expected = RuntimeException.class) public void onInit_hideBottomSystemBarForKeyboardValueDoNotSync_throwsRuntimeException() { when(mResources.getBoolean(R.bool.config_hideBottomSystemBarForKeyboard)).thenReturn(false); when(mResources.getBoolean( com.android.internal.R.bool.config_automotiveHideNavBarForKeyboard)).thenReturn( true); mSystemBarConfigs = new SystemBarConfigs(mResources); } @Test public void getTopSystemBarLayoutParams_topBarEnabled_returnsTopSystemBarLayoutParams() { mSystemBarConfigs = new SystemBarConfigs(mResources); Loading @@ -116,6 +127,26 @@ public class SystemBarConfigsTest extends SysuiTestCase { assertNull(lp); } @Test public void getTopSystemBarHideForKeyboard_hideBarForKeyboard_returnsTrue() { when(mResources.getBoolean(R.bool.config_hideTopSystemBarForKeyboard)).thenReturn(true); mSystemBarConfigs = new SystemBarConfigs(mResources); boolean hideKeyboard = mSystemBarConfigs.getHideForKeyboardBySide(SystemBarConfigs.TOP); assertTrue(hideKeyboard); } @Test public void getTopSystemBarHideForKeyboard_topBarNotEnabled_returnsFalse() { when(mResources.getBoolean(R.bool.config_enableTopNavigationBar)).thenReturn(false); mSystemBarConfigs = new SystemBarConfigs(mResources); boolean hideKeyboard = mSystemBarConfigs.getHideForKeyboardBySide(SystemBarConfigs.TOP); assertFalse(hideKeyboard); } @Test public void topSystemBarHasHigherZOrderThanHuns_topSystemBarIsNavigationBarPanelType() { when(mResources.getInteger(R.integer.config_topSystemBarZOrder)).thenReturn( Loading Loading @@ -198,5 +229,14 @@ public class SystemBarConfigsTest extends SysuiTestCase { when(mResources.getInteger(R.integer.config_bottomSystemBarZOrder)).thenReturn(10); when(mResources.getInteger(R.integer.config_leftSystemBarZOrder)).thenReturn(2); when(mResources.getInteger(R.integer.config_rightSystemBarZOrder)).thenReturn(3); when(mResources.getBoolean(R.bool.config_hideTopSystemBarForKeyboard)).thenReturn(false); when(mResources.getBoolean( com.android.internal.R.bool.config_automotiveHideNavBarForKeyboard)).thenReturn( false); when(mResources.getBoolean(R.bool.config_hideLeftSystemBarForKeyboard)).thenReturn( false); when(mResources.getBoolean(R.bool.config_hideRightSystemBarForKeyboard)).thenReturn( false); } }