am e54dbc4a: am 3ba16c1d: LayoutLib: fix layout when nav bar is absent. [DO NOT MERGE]

* commit 'e54dbc4ac74d110c4121932a22d04447a0e15b65':
  LayoutLib: fix layout when nav bar is absent. [DO NOT MERGE]
This commit is contained in:
Deepanshu Gupta
2015-08-26 20:21:38 +00:00
committed by Android Git Automerger

View File

@@ -165,13 +165,13 @@ class Layout extends RelativeLayout {
FrameLayout contentRoot = new FrameLayout(getContext()); FrameLayout contentRoot = new FrameLayout(getContext());
LayoutParams params = createLayoutParams(MATCH_PARENT, MATCH_PARENT); LayoutParams params = createLayoutParams(MATCH_PARENT, MATCH_PARENT);
int rule = mBuilder.isNavBarVertical() ? START_OF : ABOVE; int rule = mBuilder.isNavBarVertical() ? START_OF : ABOVE;
if (mBuilder.solidBars()) { if (mBuilder.hasNavBar() && mBuilder.solidBars()) {
params.addRule(rule, getId(ID_NAV_BAR)); params.addRule(rule, getId(ID_NAV_BAR));
} }
int below = -1; int below = -1;
if (mBuilder.mActionBarSize <= 0 && mBuilder.mTitleBarSize > 0) { if (mBuilder.mActionBarSize <= 0 && mBuilder.mTitleBarSize > 0) {
below = getId(ID_TITLE_BAR); below = getId(ID_TITLE_BAR);
} else if (mBuilder.solidBars()) { } else if (mBuilder.hasStatusBar() && mBuilder.solidBars()) {
below = getId(ID_STATUS_BAR); below = getId(ID_STATUS_BAR);
} }
if (below != -1) { if (below != -1) {
@@ -238,10 +238,10 @@ class Layout extends RelativeLayout {
} }
LayoutParams layoutParams = createLayoutParams(MATCH_PARENT, MATCH_PARENT); LayoutParams layoutParams = createLayoutParams(MATCH_PARENT, MATCH_PARENT);
int rule = mBuilder.isNavBarVertical() ? START_OF : ABOVE; int rule = mBuilder.isNavBarVertical() ? START_OF : ABOVE;
if (mBuilder.solidBars()) { if (mBuilder.hasNavBar() && mBuilder.solidBars()) {
layoutParams.addRule(rule, getId(ID_NAV_BAR)); layoutParams.addRule(rule, getId(ID_NAV_BAR));
} }
if (mBuilder.solidBars()) { if (mBuilder.hasStatusBar() && mBuilder.solidBars()) {
layoutParams.addRule(BELOW, getId(ID_STATUS_BAR)); layoutParams.addRule(BELOW, getId(ID_STATUS_BAR));
} }
actionBar.getRootView().setLayoutParams(layoutParams); actionBar.getRootView().setLayoutParams(layoutParams);
@@ -254,7 +254,7 @@ class Layout extends RelativeLayout {
int simulatedPlatformVersion) { int simulatedPlatformVersion) {
TitleBar titleBar = new TitleBar(context, title, simulatedPlatformVersion); TitleBar titleBar = new TitleBar(context, title, simulatedPlatformVersion);
LayoutParams params = createLayoutParams(MATCH_PARENT, mBuilder.mTitleBarSize); LayoutParams params = createLayoutParams(MATCH_PARENT, mBuilder.mTitleBarSize);
if (mBuilder.solidBars()) { if (mBuilder.hasStatusBar() && mBuilder.solidBars()) {
params.addRule(BELOW, getId(ID_STATUS_BAR)); params.addRule(BELOW, getId(ID_STATUS_BAR));
} }
if (mBuilder.isNavBarVertical() && mBuilder.solidBars()) { if (mBuilder.isNavBarVertical() && mBuilder.solidBars()) {
@@ -333,10 +333,6 @@ class Layout extends RelativeLayout {
findNavBar(); findNavBar();
} }
public boolean isNavBarVertical() {
return mNavBarOrientation == VERTICAL;
}
private void findBackground() { private void findBackground() {
if (!mParams.isBgColorOverridden()) { if (!mParams.isBgColorOverridden()) {
mWindowBackground = mResources.findItemInTheme(ATTR_WINDOW_BACKGROUND, true); mWindowBackground = mResources.findItemInTheme(ATTR_WINDOW_BACKGROUND, true);
@@ -444,16 +440,27 @@ class Layout extends RelativeLayout {
} }
/** /**
* Return if both status bar and nav bar are solid (content doesn't overlap with these * Return true if the status bar or nav bar are present, they are not translucent (i.e
* bars). * content doesn't overlap with them).
*/ */
private boolean solidBars() { private boolean solidBars() {
return hasNavBar() && !mTranslucentNav && !mTranslucentStatus && mStatusBarSize > 0; return !(hasNavBar() && mTranslucentNav) && !(hasStatusBar() && mTranslucentStatus);
} }
private boolean hasNavBar() { private boolean hasNavBar() {
return Config.showOnScreenNavBar(mParams.getSimulatedPlatformVersion()) && return Config.showOnScreenNavBar(mParams.getSimulatedPlatformVersion()) &&
hasSoftwareButtons() && mNavBarSize > 0; hasSoftwareButtons() && mNavBarSize > 0;
} }
private boolean hasStatusBar() {
return mStatusBarSize > 0;
}
/**
* Return true if the nav bar is present and is vertical.
*/
private boolean isNavBarVertical() {
return hasNavBar() && mNavBarOrientation == VERTICAL;
}
} }
} }