public class ResourceResolver
extends com.android.ide.common.rendering.api.RenderResources
| Modifier and Type | Field and Description |
|---|---|
static java.util.regex.Pattern |
DEVICE_DEFAULT_PATTERN |
static java.lang.String |
LEGACY_THEME
Constant passed to
setDeviceDefaults(String) to indicate the DeviceDefault styles
should point to the default styles |
static int |
MAX_RESOURCE_INDIRECTION
Number of indirections we'll follow for resource resolution before assuming there is a cyclic
dependency error in the input.
|
static java.lang.String |
THEME_NAME |
static java.lang.String |
THEME_NAME_DOT |
| Modifier and Type | Method and Description |
|---|---|
void |
applyStyle(com.android.ide.common.rendering.api.StyleResourceValue theme,
boolean useAsPrimary) |
void |
clearStyles() |
static ResourceResolver |
copy(ResourceResolver original)
Creates a new
ResourceResolver copied from the given instance. |
static ResourceResolver |
create(java.util.Map<com.android.ide.common.rendering.api.ResourceNamespace,java.util.Map<com.android.resources.ResourceType,ResourceValueMap>> resources,
com.android.ide.common.rendering.api.ResourceReference themeReference)
Creates a new
ResourceResolver object. |
ResourceResolver |
createRecorder(java.util.List<com.android.ide.common.rendering.api.ResourceValue> lookupChain)
Creates a new
ResourceResolver which records all resource resolution
lookups into the given list. |
com.android.ide.common.rendering.api.ResourceValue |
dereference(com.android.ide.common.rendering.api.ResourceValue value) |
com.android.ide.common.rendering.api.StyleItemResourceValue |
findItemInStyle(com.android.ide.common.rendering.api.StyleResourceValue style,
com.android.ide.common.rendering.api.ResourceReference attr) |
com.android.ide.common.rendering.api.ResourceValue |
findItemInStyle(com.android.ide.common.rendering.api.StyleResourceValue style,
java.lang.String attrName,
boolean isFrameworkAttr)
Deprecated.
|
com.android.ide.common.rendering.api.ResourceValue |
findItemInTheme(java.lang.String attrName,
boolean isFrameworkAttr)
Deprecated.
Use
RenderResources.findItemInTheme(ResourceReference). |
java.util.List<com.android.ide.common.rendering.api.StyleResourceValue> |
getAllThemes() |
java.util.Collection<com.android.ide.common.rendering.api.StyleResourceValue> |
getChildren(com.android.ide.common.rendering.api.StyleResourceValue style) |
com.android.ide.common.rendering.api.StyleResourceValue |
getCurrentTheme()
Deprecated.
Use
getDefaultTheme() or getAllThemes() |
com.android.ide.common.rendering.api.StyleResourceValue |
getDefaultTheme() |
com.android.ide.common.rendering.api.ResourceValue |
getFrameworkResource(com.android.resources.ResourceType resourceType,
java.lang.String resourceName)
Deprecated.
Use
RenderResources.getResolvedResource(ResourceReference) |
java.util.Map<com.android.resources.ResourceType,ResourceValueMap> |
getFrameworkResources()
Deprecated.
|
com.android.ide.common.rendering.api.StyleResourceValue |
getParent(com.android.ide.common.rendering.api.StyleResourceValue style) |
com.android.ide.common.rendering.api.ResourceValue |
getProjectResource(com.android.resources.ResourceType resourceType,
java.lang.String resourceName)
Deprecated.
Use
RenderResources.getResolvedResource(ResourceReference) |
java.util.Map<com.android.resources.ResourceType,ResourceValueMap> |
getProjectResources()
Deprecated.
|
com.android.ide.common.rendering.api.StyleResourceValue |
getStyle(com.android.ide.common.rendering.api.ResourceReference styleReference) |
com.android.ide.common.rendering.api.StyleResourceValue |
getStyle(java.lang.String styleName,
boolean isFramework)
Deprecated.
|
com.android.ide.common.rendering.api.StyleResourceValue |
getTheme() |
com.android.ide.common.rendering.api.StyleResourceValue |
getTheme(java.lang.String name,
boolean frameworkTheme)
Deprecated.
|
com.android.ide.common.rendering.api.ResourceValue |
getUnresolvedResource(com.android.ide.common.rendering.api.ResourceReference reference) |
boolean |
isTheme(com.android.ide.common.rendering.api.ResourceValue value,
java.util.Map<com.android.ide.common.rendering.api.ResourceValue,java.lang.Boolean> cache)
Checks if the given
ResourceValue represents a theme. |
com.android.ide.common.rendering.api.ResourceValue |
resolveResValue(com.android.ide.common.rendering.api.ResourceValue resValue)
If the given resource value contains a reference, resolves that reference to the actual
value.
|
void |
setDeviceDefaults(java.lang.String deviceDefaultParent)
This will override the DeviceDefault styles so they point to the given parent styles (e.g.
|
void |
setLogger(com.android.ide.common.rendering.api.LayoutLog logger) |
boolean |
styleExtends(com.android.ide.common.rendering.api.StyleResourceValue child,
com.android.ide.common.rendering.api.StyleResourceValue ancestor) |
boolean |
themeIsChildOfAny(com.android.ide.common.rendering.api.StyleResourceValue childTheme,
com.android.ide.common.rendering.api.StyleResourceValue... parentThemes)
Returns whether a theme is a child of at least one of the specified parents.
|
static ResourceResolver |
withValues(java.lang.Iterable<com.android.ide.common.rendering.api.ResourceValue> values,
com.android.ide.common.rendering.api.ResourceReference themeReference)
Creates a new
ResourceResolver which contains only the given ResourceValue
objects, indexed by namespace, type and name. |
static ResourceResolver |
withValues(com.android.ide.common.rendering.api.ResourceValue... values)
Creates a new
ResourceResolver which contains only the given ResourceValue
objects, indexed by namespace, type and name. |
public static final int MAX_RESOURCE_INDIRECTION
public static final java.lang.String THEME_NAME
public static final java.lang.String THEME_NAME_DOT
public static final java.lang.String LEGACY_THEME
setDeviceDefaults(String) to indicate the DeviceDefault styles
should point to the default stylespublic static final java.util.regex.Pattern DEVICE_DEFAULT_PATTERN
@NonNull public static ResourceResolver create(@NonNull java.util.Map<com.android.ide.common.rendering.api.ResourceNamespace,java.util.Map<com.android.resources.ResourceType,ResourceValueMap>> resources, @Nullable com.android.ide.common.rendering.api.ResourceReference themeReference)
ResourceResolver object.resources - all resources.themeReference - reference to the theme to be used.ResourceResolver@Nullable public static ResourceResolver copy(@Nullable ResourceResolver original)
ResourceResolver copied from the given instance.ResourceResolver or null if the passed instance is null@NonNull public static ResourceResolver withValues(@NonNull com.android.ide.common.rendering.api.ResourceValue... values)
ResourceResolver which contains only the given ResourceValue
objects, indexed by namespace, type and name. There can be no duplicate (namespace, type,
name) tuples in the input.
This method is meant for testing, where other components need to set up a simple ResourceResolver with known contents.
@NonNull public static ResourceResolver withValues(@NonNull java.lang.Iterable<com.android.ide.common.rendering.api.ResourceValue> values, @Nullable com.android.ide.common.rendering.api.ResourceReference themeReference)
ResourceResolver which contains only the given ResourceValue
objects, indexed by namespace, type and name. There can be no duplicate (namespace, type,
name) tuples in the input.
This method is meant for testing, where other components need to set up a simple ResourceResolver with known contents.
public void setDeviceDefaults(@NonNull
java.lang.String deviceDefaultParent)
LEGACY_THEME is passed, parents will be directed to the default themes (i.e. Theme).@Nullable public com.android.ide.common.rendering.api.StyleResourceValue getTheme()
@Deprecated public java.util.Map<com.android.resources.ResourceType,ResourceValueMap> getProjectResources()
@Deprecated public java.util.Map<com.android.resources.ResourceType,ResourceValueMap> getFrameworkResources()
public void setLogger(com.android.ide.common.rendering.api.LayoutLog logger)
setLogger in class com.android.ide.common.rendering.api.RenderResourcespublic com.android.ide.common.rendering.api.StyleResourceValue getDefaultTheme()
getDefaultTheme in class com.android.ide.common.rendering.api.RenderResourcespublic void applyStyle(@Nullable
com.android.ide.common.rendering.api.StyleResourceValue theme,
boolean useAsPrimary)
applyStyle in class com.android.ide.common.rendering.api.RenderResourcespublic void clearStyles()
clearStyles in class com.android.ide.common.rendering.api.RenderResources@NonNull public java.util.List<com.android.ide.common.rendering.api.StyleResourceValue> getAllThemes()
getAllThemes in class com.android.ide.common.rendering.api.RenderResourcespublic boolean themeIsChildOfAny(@NonNull
com.android.ide.common.rendering.api.StyleResourceValue childTheme,
@NonNull
com.android.ide.common.rendering.api.StyleResourceValue... parentThemes)
childTheme - the child themeparentThemes - the parent themesjava.lang.RuntimeException - if no parent themes are specified@Nullable
public com.android.ide.common.rendering.api.StyleItemResourceValue findItemInStyle(@NonNull
com.android.ide.common.rendering.api.StyleResourceValue style,
@NonNull
com.android.ide.common.rendering.api.ResourceReference attr)
findItemInStyle in class com.android.ide.common.rendering.api.RenderResources@Nullable
public com.android.ide.common.rendering.api.ResourceValue getUnresolvedResource(@NonNull
com.android.ide.common.rendering.api.ResourceReference reference)
getUnresolvedResource in class com.android.ide.common.rendering.api.RenderResources@Nullable
public com.android.ide.common.rendering.api.ResourceValue dereference(@NonNull
com.android.ide.common.rendering.api.ResourceValue value)
dereference in class com.android.ide.common.rendering.api.RenderResources@Nullable
public com.android.ide.common.rendering.api.ResourceValue resolveResValue(@Nullable
com.android.ide.common.rendering.api.ResourceValue resValue)
resolveResValue in class com.android.ide.common.rendering.api.RenderResourcesresValue - the resource value to resolveresValue is null@Nullable
public com.android.ide.common.rendering.api.StyleResourceValue getParent(@NonNull
com.android.ide.common.rendering.api.StyleResourceValue style)
getParent in class com.android.ide.common.rendering.api.RenderResources@NonNull
public java.util.Collection<com.android.ide.common.rendering.api.StyleResourceValue> getChildren(@NonNull
com.android.ide.common.rendering.api.StyleResourceValue style)
public boolean styleExtends(@NonNull
com.android.ide.common.rendering.api.StyleResourceValue child,
@NonNull
com.android.ide.common.rendering.api.StyleResourceValue ancestor)
@Nullable
public com.android.ide.common.rendering.api.StyleResourceValue getStyle(@NonNull
com.android.ide.common.rendering.api.ResourceReference styleReference)
getStyle in class com.android.ide.common.rendering.api.RenderResourcespublic boolean isTheme(@NonNull
com.android.ide.common.rendering.api.ResourceValue value,
@Nullable
java.util.Map<com.android.ide.common.rendering.api.ResourceValue,java.lang.Boolean> cache)
ResourceValue represents a theme.public ResourceResolver createRecorder(java.util.List<com.android.ide.common.rendering.api.ResourceValue> lookupChain)
ResourceResolver which records all resource resolution
lookups into the given list. Note that it is the responsibility of the caller
to clear/reset the list between subsequent lookup operations.lookupChain - the list to write resource lookups intoResourceResolver@Deprecated public com.android.ide.common.rendering.api.StyleResourceValue getCurrentTheme()
getDefaultTheme() or getAllThemes()@Deprecated
public com.android.ide.common.rendering.api.StyleResourceValue getTheme(java.lang.String name,
boolean frameworkTheme)
getStyle(ResourceReference)@Deprecated
public com.android.ide.common.rendering.api.ResourceValue getFrameworkResource(com.android.resources.ResourceType resourceType,
java.lang.String resourceName)
RenderResources.getResolvedResource(ResourceReference)@Deprecated
public com.android.ide.common.rendering.api.ResourceValue getProjectResource(com.android.resources.ResourceType resourceType,
java.lang.String resourceName)
RenderResources.getResolvedResource(ResourceReference)@Deprecated
@Nullable
public final com.android.ide.common.rendering.api.ResourceValue findItemInTheme(java.lang.String attrName,
boolean isFrameworkAttr)
RenderResources.findItemInTheme(ResourceReference).@Deprecated
@Nullable
public final com.android.ide.common.rendering.api.ResourceValue findItemInStyle(com.android.ide.common.rendering.api.StyleResourceValue style,
java.lang.String attrName,
boolean isFrameworkAttr)
findItemInStyle(StyleResourceValue, ResourceReference).@Deprecated
public final com.android.ide.common.rendering.api.StyleResourceValue getStyle(java.lang.String styleName,
boolean isFramework)
getStyle(ResourceReference)styleName - Name of the style. For example, "Widget.ListView.DropDown".