Merge "No status bar for external display"

This commit is contained in:
TreeHugger Robot
2018-12-06 02:06:22 +00:00
committed by Android (Google) Code Review
2 changed files with 21 additions and 6 deletions

View File

@@ -222,6 +222,7 @@ public class DisplayPolicy {
private volatile int mDockMode = Intent.EXTRA_DOCK_STATE_UNDOCKED;
private volatile boolean mHdmiPlugged;
private volatile boolean mHasStatusBar;
private volatile boolean mHasNavigationBar;
// Can the navigation bar ever move to the side?
private volatile boolean mNavigationBarCanMove;
@@ -523,6 +524,7 @@ public class DisplayPolicy {
mNavigationBarCanMove = width != height && shortSizeDp < 600;
if (mDisplayContent.isDefaultDisplay) {
mHasStatusBar = true;
mHasNavigationBar = mContext.getResources().getBoolean(R.bool.config_showNavigationBar);
// Allow a system property to override this. Used by the emulator.
@@ -534,6 +536,7 @@ public class DisplayPolicy {
mHasNavigationBar = true;
}
} else {
mHasStatusBar = false;
mHasNavigationBar = mDisplayContent.getDisplay().supportsSystemDecorations();
}
}
@@ -589,6 +592,10 @@ public class DisplayPolicy {
return mHasNavigationBar;
}
public boolean hasStatusBar() {
return mHasStatusBar;
}
public boolean navigationBarCanMove() {
return mNavigationBarCanMove;
}
@@ -2493,12 +2500,19 @@ public class DisplayPolicy {
final int landscapeRotation = displayRotation.getLandscapeRotation();
final int seascapeRotation = displayRotation.getSeascapeRotation();
mStatusBarHeightForRotation[portraitRotation] =
mStatusBarHeightForRotation[upsideDownRotation] =
res.getDimensionPixelSize(R.dimen.status_bar_height_portrait);
mStatusBarHeightForRotation[landscapeRotation] =
mStatusBarHeightForRotation[seascapeRotation] =
res.getDimensionPixelSize(R.dimen.status_bar_height_landscape);
if (hasStatusBar()) {
mStatusBarHeightForRotation[portraitRotation] =
mStatusBarHeightForRotation[upsideDownRotation] =
res.getDimensionPixelSize(R.dimen.status_bar_height_portrait);
mStatusBarHeightForRotation[landscapeRotation] =
mStatusBarHeightForRotation[seascapeRotation] =
res.getDimensionPixelSize(R.dimen.status_bar_height_landscape);
} else {
mStatusBarHeightForRotation[portraitRotation] =
mStatusBarHeightForRotation[upsideDownRotation] =
mStatusBarHeightForRotation[landscapeRotation] =
mStatusBarHeightForRotation[seascapeRotation] = 0;
}
// Height of the navigation bar when presented horizontally at bottom
mNavigationBarHeightForRotationDefault[portraitRotation] =

View File

@@ -79,6 +79,7 @@ public class DisplayPolicyTestsBase extends WindowTestsBase {
resources.addOverride(R.dimen.navigation_bar_width, NAV_BAR_HEIGHT);
when(mDisplayPolicy.getSystemUiContext()).thenReturn(context);
when(mDisplayPolicy.hasNavigationBar()).thenReturn(true);
when(mDisplayPolicy.hasStatusBar()).thenReturn(true);
final int shortSizeDp =
Math.min(DISPLAY_WIDTH, DISPLAY_HEIGHT) * DENSITY_DEFAULT / DISPLAY_DENSITY;