summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Diego Perez <diegoperez@google.com> 2017-03-21 15:38:30 +0000
committer Diego Perez <diegoperez@google.com> 2017-03-22 14:16:53 +0000
commit9fb4d6876a78fb336cb3650aca84bce723f96ecb (patch)
treef47b72be422472e24e96b3e7f34bcff85ecb3cd5
parentc9c57d4478b6203ca1f298c39dfcfaadce0a63ef (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.java11
-rw-r--r--tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java34
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)));
}
}
}