From 48a285ce1bfc663187731830627410cc6ff406c8 Mon Sep 17 00:00:00 2001 From: Diego Perez Date: Tue, 6 Dec 2016 18:22:00 +0000 Subject: [PATCH] Fix status and nav bar translucency Bug: http://b.android.com/204831 Test: Added new UI tests Change-Id: I992f4ccc391d9a4a0dda941689ec29fb44acf69b --- .../android/layoutlib/bridge/impl/Layout.java | 26 +++++++----- .../MyApplication/golden/four_corners.png | Bin 0 -> 4600 bytes .../golden/four_corners_translucent.png | Bin 0 -> 4565 bytes .../golden/four_corners_translucent_land.png | Bin 0 -> 4634 bytes .../src/main/res/layout/four_corners.xml | 38 ++++++++++++++++++ .../layoutlib/bridge/intensive/Main.java | 26 ++++++++++++ 6 files changed, 80 insertions(+), 10 deletions(-) create mode 100644 tools/layoutlib/bridge/tests/res/testApp/MyApplication/golden/four_corners.png create mode 100644 tools/layoutlib/bridge/tests/res/testApp/MyApplication/golden/four_corners_translucent.png create mode 100644 tools/layoutlib/bridge/tests/res/testApp/MyApplication/golden/four_corners_translucent_land.png create mode 100644 tools/layoutlib/bridge/tests/res/testApp/MyApplication/src/main/res/layout/four_corners.xml diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/Layout.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/Layout.java index 97698df0f22ab..726ff223bd8f2 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/Layout.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/Layout.java @@ -166,13 +166,13 @@ class Layout extends RelativeLayout { FrameLayout contentRoot = new FrameLayout(getContext()); LayoutParams params = createLayoutParams(MATCH_PARENT, MATCH_PARENT); int rule = mBuilder.isNavBarVertical() ? START_OF : ABOVE; - if (mBuilder.hasNavBar() && mBuilder.solidBars()) { + if (mBuilder.hasSolidNavBar()) { params.addRule(rule, getId(ID_NAV_BAR)); } int below = -1; if (mBuilder.mActionBarSize <= 0 && mBuilder.mTitleBarSize > 0) { below = getId(ID_TITLE_BAR); - } else if (mBuilder.hasStatusBar() && mBuilder.solidBars()) { + } else if (mBuilder.hasSolidStatusBar()) { below = getId(ID_STATUS_BAR); } if (below != -1) { @@ -241,10 +241,10 @@ class Layout extends RelativeLayout { } LayoutParams layoutParams = createLayoutParams(MATCH_PARENT, MATCH_PARENT); int rule = mBuilder.isNavBarVertical() ? START_OF : ABOVE; - if (mBuilder.hasNavBar() && mBuilder.solidBars()) { + if (mBuilder.hasSolidNavBar()) { layoutParams.addRule(rule, getId(ID_NAV_BAR)); } - if (mBuilder.hasStatusBar() && mBuilder.solidBars()) { + if (mBuilder.hasSolidStatusBar()) { layoutParams.addRule(BELOW, getId(ID_STATUS_BAR)); } actionBar.getRootView().setLayoutParams(layoutParams); @@ -257,10 +257,10 @@ class Layout extends RelativeLayout { int simulatedPlatformVersion) { TitleBar titleBar = new TitleBar(context, title, simulatedPlatformVersion); LayoutParams params = createLayoutParams(MATCH_PARENT, mBuilder.mTitleBarSize); - if (mBuilder.hasStatusBar() && mBuilder.solidBars()) { + if (mBuilder.hasSolidStatusBar()) { params.addRule(BELOW, getId(ID_STATUS_BAR)); } - if (mBuilder.isNavBarVertical() && mBuilder.solidBars()) { + if (mBuilder.isNavBarVertical() && mBuilder.hasSolidNavBar()) { params.addRule(START_OF, getId(ID_NAV_BAR)); } titleBar.setLayoutParams(params); @@ -419,11 +419,17 @@ class Layout extends RelativeLayout { } /** - * Return true if the status bar or nav bar are present, they are not translucent (i.e - * content doesn't overlap with them). + * Return true if the nav bar is present and not translucent */ - private boolean solidBars() { - return !(hasNavBar() && mTranslucentNav) && !(hasStatusBar() && mTranslucentStatus); + private boolean hasSolidNavBar() { + return hasNavBar() && !mTranslucentNav; + } + + /** + * Return true if the status bar is present and not translucent + */ + private boolean hasSolidStatusBar() { + return hasStatusBar() && !mTranslucentStatus; } private boolean hasNavBar() { diff --git a/tools/layoutlib/bridge/tests/res/testApp/MyApplication/golden/four_corners.png b/tools/layoutlib/bridge/tests/res/testApp/MyApplication/golden/four_corners.png new file mode 100644 index 0000000000000000000000000000000000000000..868cd51f8bb57ec9d59cb12c64b47e0dcf6f800f GIT binary patch literal 4600 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 literal 0 HcmV?d00001 diff --git a/tools/layoutlib/bridge/tests/res/testApp/MyApplication/golden/four_corners_translucent.png b/tools/layoutlib/bridge/tests/res/testApp/MyApplication/golden/four_corners_translucent.png new file mode 100644 index 0000000000000000000000000000000000000000..601f711f32d3bedecbda0411ffdfdd7a00eeb80d GIT binary patch literal 4565 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 literal 0 HcmV?d00001 diff --git a/tools/layoutlib/bridge/tests/res/testApp/MyApplication/golden/four_corners_translucent_land.png b/tools/layoutlib/bridge/tests/res/testApp/MyApplication/golden/four_corners_translucent_land.png new file mode 100644 index 0000000000000000000000000000000000000000..0b8f1a96791c0bfef5a0b016c0a8272ef2fa2fad GIT binary patch literal 4634 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 literal 0 HcmV?d00001 diff --git a/tools/layoutlib/bridge/tests/res/testApp/MyApplication/src/main/res/layout/four_corners.xml b/tools/layoutlib/bridge/tests/res/testApp/MyApplication/src/main/res/layout/four_corners.xml new file mode 100644 index 0000000000000..c42284a262ae8 --- /dev/null +++ b/tools/layoutlib/bridge/tests/res/testApp/MyApplication/src/main/res/layout/four_corners.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java b/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java index 24cbbca02b77a..c813a12923181 100644 --- a/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java +++ b/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java @@ -39,6 +39,7 @@ import com.android.layoutlib.bridge.intensive.setup.LayoutPullParser; import com.android.resources.Density; import com.android.resources.Navigation; import com.android.resources.ResourceType; +import com.android.resources.ScreenOrientation; import com.android.tools.layoutlib.java.System_Delegate; import com.android.utils.ILogger; @@ -341,6 +342,31 @@ public class Main { renderAndVerify("activity.xml", "activity.png"); } + @Test + public void testTranslucentBars() throws ClassNotFoundException { + LayoutLibTestCallback layoutLibCallback = + new LayoutLibTestCallback(getLogger(), mDefaultClassLoader); + layoutLibCallback.initResources(); + + LayoutPullParser parser = createLayoutPullParser("four_corners.xml"); + SessionParams params = getSessionParams(parser, ConfigGenerator.NEXUS_5, + layoutLibCallback, "Theme.Material.Light.NoActionBar.TranslucentDecor", false, + RenderingMode.NORMAL, 22); + renderAndVerify(params, "four_corners_translucent.png"); + + parser = createLayoutPullParser("four_corners.xml"); + params = getSessionParams(parser, ConfigGenerator.NEXUS_5_LAND, + layoutLibCallback, "Theme.Material.Light.NoActionBar.TranslucentDecor", false, + RenderingMode.NORMAL, 22); + renderAndVerify(params, "four_corners_translucent_land.png"); + + parser = createLayoutPullParser("four_corners.xml"); + params = getSessionParams(parser, ConfigGenerator.NEXUS_5, + layoutLibCallback, "Theme.Material.Light.NoActionBar", false, + RenderingMode.NORMAL, 22); + renderAndVerify(params, "four_corners.png"); + } + private static void gc() { // See RuntimeUtil#gc in jlibs (http://jlibs.in/) Object obj = new Object();