diff options
| author | 2017-03-21 15:38:30 +0000 | |
|---|---|---|
| committer | 2017-03-22 14:16:53 +0000 | |
| commit | 9fb4d6876a78fb336cb3650aca84bce723f96ecb (patch) | |
| tree | f47b72be422472e24e96b3e7f34bcff85ecb3cd5 | |
| parent | c9c57d4478b6203ca1f298c39dfcfaadce0a63ef (diff) | |
Layoutlib changes to support the new ResourceUrl
Updates the resource handling after the changes to the ResourceUrl API
changes.
Test: Existing tests should pass
Change-Id: I314a20673cf94e4ef27e9712d3fa7b6f69bba796
| -rw-r--r-- | tools/layoutlib/bridge/src/android/content/res/Resources_Delegate.java | 11 | ||||
| -rw-r--r-- | tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java | 34 |
2 files changed, 27 insertions, 18 deletions
diff --git a/tools/layoutlib/bridge/src/android/content/res/Resources_Delegate.java b/tools/layoutlib/bridge/src/android/content/res/Resources_Delegate.java index c20ee12ee30c..e3bc34b64582 100644 --- a/tools/layoutlib/bridge/src/android/content/res/Resources_Delegate.java +++ b/tools/layoutlib/bridge/src/android/content/res/Resources_Delegate.java @@ -33,6 +33,7 @@ import com.android.layoutlib.bridge.impl.ResourceHelper; import com.android.layoutlib.bridge.util.NinePatchInputStream; import com.android.ninepatch.NinePatch; import com.android.resources.ResourceType; +import com.android.resources.ResourceUrl; import com.android.tools.layoutlib.annotations.LayoutlibDelegate; import com.android.util.Pair; @@ -59,6 +60,8 @@ import java.io.FileNotFoundException; import java.io.InputStream; import java.util.Iterator; +import static com.android.SdkConstants.ANDROID_NS_NAME; + @SuppressWarnings("deprecation") public class Resources_Delegate { @@ -137,8 +140,8 @@ public class Resources_Delegate { if (value == null) { // Unable to resolve the attribute, just leave the unresolved value - value = new ResourceValue(resourceInfo.getFirst(), attributeName, attributeName, - platformResFlag_out[0]); + value = new ResourceValue(ResourceUrl.create(resourceInfo.getFirst(), attributeName, + platformResFlag_out[0]), attributeName); } return Pair.of(attributeName, value); } @@ -678,7 +681,7 @@ public class Resources_Delegate { String packageName; if (resourceInfo != null) { if (platformOut[0]) { - packageName = SdkConstants.ANDROID_NS_NAME; + packageName = ANDROID_NS_NAME; } else { packageName = resources.mContext.getPackageName(); packageName = packageName == null ? SdkConstants.APP_PREFIX : packageName; @@ -696,7 +699,7 @@ public class Resources_Delegate { Pair<ResourceType, String> resourceInfo = getResourceInfo(resources, resid, platformOut); if (resourceInfo != null) { if (platformOut[0]) { - return SdkConstants.ANDROID_NS_NAME; + return ANDROID_NS_NAME; } String packageName = resources.mContext.getPackageName(); return packageName == null ? SdkConstants.APP_PREFIX : packageName; diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java index a38584740e80..432fddaad3a4 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java @@ -31,6 +31,7 @@ import com.android.layoutlib.bridge.android.view.WindowManagerImpl; import com.android.layoutlib.bridge.impl.ParserFactory; import com.android.layoutlib.bridge.impl.Stack; import com.android.resources.ResourceType; +import com.android.resources.ResourceUrl; import com.android.util.Pair; import com.android.util.PropertiesMap; import com.android.util.PropertiesMap.Property; @@ -86,7 +87,6 @@ import android.util.TypedValue; import android.view.BridgeInflater; import android.view.Display; import android.view.DisplayAdjustments; -import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; @@ -107,6 +107,7 @@ import java.util.List; import java.util.Map; import static android.os._Original_Build.VERSION_CODES.JELLY_BEAN_MR1; +import static com.android.SdkConstants.ANDROID_NS_NAME; import static com.android.layoutlib.bridge.android.RenderParamsFlags.FLAG_KEY_APPLICATION_PACKAGE; /** @@ -121,20 +122,23 @@ public class BridgeContext extends Context { static { FRAMEWORK_PATCHED_VALUES.put("animateFirstView", new ResourceValue( - ResourceType.BOOL, "animateFirstView", "false", false)); - FRAMEWORK_PATCHED_VALUES.put("animateLayoutChanges", - new ResourceValue(ResourceType.BOOL, "animateLayoutChanges", "false", false)); + ResourceUrl.create(ANDROID_NS_NAME, ResourceType.BOOL, "animateFirstView"), + "false")); + FRAMEWORK_PATCHED_VALUES.put("animateLayoutChanges", new ResourceValue( + ResourceUrl.create(ANDROID_NS_NAME, ResourceType.BOOL, "animateLayoutChanges"), + "false")); - FRAMEWORK_REPLACE_VALUES.put("textEditSuggestionItemLayout", - new ResourceValue(ResourceType.LAYOUT, "textEditSuggestionItemLayout", - "text_edit_suggestion_item", true)); - FRAMEWORK_REPLACE_VALUES.put("textEditSuggestionContainerLayout", - new ResourceValue(ResourceType.LAYOUT, "textEditSuggestionContainerLayout", - "text_edit_suggestion_container", true)); - FRAMEWORK_REPLACE_VALUES.put("textEditSuggestionHighlightStyle", - new ResourceValue(ResourceType.STYLE, "textEditSuggestionHighlightStyle", - "TextAppearance.Holo.SuggestionHighlight", true)); + FRAMEWORK_REPLACE_VALUES.put("textEditSuggestionItemLayout", new ResourceValue( + ResourceUrl.create(ANDROID_NS_NAME, ResourceType.LAYOUT, + "textEditSuggestionItemLayout"), "text_edit_suggestion_item")); + FRAMEWORK_REPLACE_VALUES.put("textEditSuggestionContainerLayout", new ResourceValue( + ResourceUrl.create(ANDROID_NS_NAME, ResourceType.LAYOUT, + "textEditSuggestionContainerLayout"), "text_edit_suggestion_container")); + FRAMEWORK_REPLACE_VALUES.put("textEditSuggestionHighlightStyle", new ResourceValue( + ResourceUrl.create(ANDROID_NS_NAME, ResourceType.STYLE, + "textEditSuggestionHighlightStyle"), + "TextAppearance.Holo.SuggestionHighlight")); } @@ -963,7 +967,9 @@ public class BridgeContext extends Context { // there is a value in the XML, but we need to resolve it in case it's // referencing another resource or a theme value. ta.bridgeSetValue(index, attrName, frameworkAttr, - mRenderResources.resolveValue(null, attrName, value, isPlatformFile)); + mRenderResources.resolveResValue(new ResourceValue( + ResourceUrl.create(ResourceType.STRING, attrName, + isPlatformFile), value))); } } } |