From b54b78e21554b8450893d4c28e0fe3e9b8c4425e Mon Sep 17 00:00:00 2001 From: Deepanshu Gupta Date: Mon, 9 Jun 2014 19:55:41 -0700 Subject: LayoutLib: Support more ContextThemeWrappers ContextThemeWrapper may be the base context for another ContextThemeWrapper. We now extract the base context till we reach the final context. Change-Id: I034444a2d1579241543fd24248530b299e72498a --- tools/layoutlib/bridge/src/android/view/BridgeInflater.java | 4 ++-- tools/layoutlib/bridge/src/android/view/MenuInflater_Delegate.java | 2 +- .../bridge/src/com/android/internal/view/menu/BridgeMenuItemImpl.java | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'tools') diff --git a/tools/layoutlib/bridge/src/android/view/BridgeInflater.java b/tools/layoutlib/bridge/src/android/view/BridgeInflater.java index af22f44..36102f1 100644 --- a/tools/layoutlib/bridge/src/android/view/BridgeInflater.java +++ b/tools/layoutlib/bridge/src/android/view/BridgeInflater.java @@ -151,7 +151,7 @@ public final class BridgeInflater extends LayoutInflater { @Override public View inflate(int resource, ViewGroup root) { Context context = getContext(); - if (context instanceof ContextThemeWrapper) { + while (context instanceof ContextThemeWrapper) { context = ((ContextThemeWrapper) context).getBaseContext(); } if (context instanceof BridgeContext) { @@ -217,7 +217,7 @@ public final class BridgeInflater extends LayoutInflater { private void setupViewInContext(View view, AttributeSet attrs) { Context context = getContext(); - if (context instanceof ContextThemeWrapper) { + while (context instanceof ContextThemeWrapper) { context = ((ContextThemeWrapper) context).getBaseContext(); } if (context instanceof BridgeContext) { diff --git a/tools/layoutlib/bridge/src/android/view/MenuInflater_Delegate.java b/tools/layoutlib/bridge/src/android/view/MenuInflater_Delegate.java index 0dddf3d..dafc96b 100644 --- a/tools/layoutlib/bridge/src/android/view/MenuInflater_Delegate.java +++ b/tools/layoutlib/bridge/src/android/view/MenuInflater_Delegate.java @@ -48,7 +48,7 @@ public class MenuInflater_Delegate { AttributeSet attrs) { if (menuItem instanceof BridgeMenuItemImpl) { Context context = thisInflater.getContext(); - if (context instanceof ContextThemeWrapper) { + while (context instanceof ContextThemeWrapper) { context = ((ContextThemeWrapper) context).getBaseContext(); } if (context instanceof BridgeContext) { diff --git a/tools/layoutlib/bridge/src/com/android/internal/view/menu/BridgeMenuItemImpl.java b/tools/layoutlib/bridge/src/com/android/internal/view/menu/BridgeMenuItemImpl.java index cdb839a..8d1d0c1 100644 --- a/tools/layoutlib/bridge/src/com/android/internal/view/menu/BridgeMenuItemImpl.java +++ b/tools/layoutlib/bridge/src/com/android/internal/view/menu/BridgeMenuItemImpl.java @@ -42,7 +42,7 @@ public class BridgeMenuItemImpl extends MenuItemImpl { CharSequence title, int showAsAction) { super(menu, group, id, categoryOrder, ordering, title, showAsAction); Context context = menu.getContext(); - if (context instanceof ContextThemeWrapper) { + while (context instanceof ContextThemeWrapper) { context = ((ContextThemeWrapper) context).getBaseContext(); } if (context instanceof BridgeContext) { -- cgit v1.1