From 2e4d93245764a1c1d7515361ddbb8fc1665f814e Mon Sep 17 00:00:00 2001 From: Deepanshu Gupta Date: Thu, 12 Mar 2015 18:46:36 -0700 Subject: Fix NoActionBar themes rendering. Also fix some warnings. Bug: http://b.android.com/159780 Change-Id: I64fd4259b802722af7a271f51d5943018ed11e9e --- .../src/com/android/layoutlib/bridge/bars/AppCompatActionBar.java | 6 +++--- .../src/com/android/layoutlib/bridge/bars/BridgeActionBar.java | 3 ++- .../src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java | 3 +-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/AppCompatActionBar.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/AppCompatActionBar.java index e5023b873e23..f54815e544c4 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/AppCompatActionBar.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/AppCompatActionBar.java @@ -55,7 +55,7 @@ public class AppCompatActionBar extends BridgeActionBar { View contentView = getDecorContent().findViewById(contentRootId); if (contentView != null) { assert contentView instanceof FrameLayout; - setContentRoot(((FrameLayout) contentView)); + setContentRoot((FrameLayout) contentView); } else { // Something went wrong. Create a new FrameLayout in the enclosing layout. FrameLayout contentRoot = new FrameLayout(context); @@ -104,8 +104,8 @@ public class AppCompatActionBar extends BridgeActionBar { protected void setIcon(String icon) { // Do this only if the action bar doesn't already have an icon. if (icon != null && !icon.isEmpty() && mWindowDecorActionBar != null) { - if (((Boolean) invoke(getMethod(mWindowActionBarClass, "hasIcon"), mWindowDecorActionBar) - )) { + if (invoke(getMethod(mWindowActionBarClass, "hasIcon"), mWindowDecorActionBar) + == Boolean.TRUE) { Drawable iconDrawable = getDrawable(icon, false); if (iconDrawable != null) { Method setIcon = getMethod(mWindowActionBarClass, "setIcon", Drawable.class); diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/BridgeActionBar.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/BridgeActionBar.java index b29d25f78d65..c25db358bf1d 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/BridgeActionBar.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/BridgeActionBar.java @@ -44,6 +44,7 @@ public abstract class BridgeActionBar { private final View mDecorContent; private final ActionBarCallback mCallback; + @SuppressWarnings("NullableProblems") // Should be initialized by subclasses. @NonNull private FrameLayout mContentRoot; public BridgeActionBar(@NonNull BridgeContext context, @NonNull SessionParams params, @@ -91,7 +92,7 @@ public abstract class BridgeActionBar { */ protected abstract ResourceValue getLayoutResource(BridgeContext context); - protected void setContentRoot(FrameLayout contentRoot) { + protected void setContentRoot(@NonNull FrameLayout contentRoot) { mContentRoot = contentRoot; } diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java index 58acab9aa318..b086355fac97 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java @@ -1114,8 +1114,7 @@ public class RenderSessionImpl extends RenderAction { } } else { // action bar overrides title bar so only look for this one if action bar is hidden - boolean windowNoTitle = getBooleanThemeValue(resources, - "windowNoTitle", false, !isThemeAppCompat(resources)); + boolean windowNoTitle = getBooleanThemeValue(resources, "windowNoTitle", false, true); if (!windowNoTitle) { -- cgit v1.2.3-59-g8ed1b