public class ResourceResolver
extends com.android.ide.common.rendering.api.RenderResources
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
ATTR_EXAMPLE |
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 |
static java.lang.String |
XLIFF_G_TAG |
static java.lang.String |
XLIFF_NAMESPACE_PREFIX |
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.resources.ResourceType,ResourceValueMap> projectResources,
java.util.Map<com.android.resources.ResourceType,ResourceValueMap> frameworkResources,
java.lang.String themeName,
boolean isProjectTheme)
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.ItemResourceValue |
findItemInStyle(com.android.ide.common.rendering.api.StyleResourceValue style,
java.lang.String attrName)
Deprecated.
|
com.android.ide.common.rendering.api.ItemResourceValue |
findItemInStyle(com.android.ide.common.rendering.api.StyleResourceValue style,
java.lang.String itemName,
boolean isFrameworkAttr) |
com.android.ide.common.rendering.api.ResourceValue |
findResValue(java.lang.String reference,
boolean forceFrameworkOnly) |
java.util.List<com.android.ide.common.rendering.api.StyleResourceValue> |
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) |
java.util.Map<com.android.resources.ResourceType,ResourceValueMap> |
getFrameworkResources() |
com.android.ide.common.rendering.api.StyleResourceValue |
getParent(com.android.ide.common.rendering.api.StyleResourceValue style) |
static java.lang.String |
getParentName(com.android.ide.common.rendering.api.StyleResourceValue style)
Computes the name of the parent style, or
null if the style is a root style. |
com.android.ide.common.rendering.api.ResourceValue |
getProjectResource(com.android.resources.ResourceType resourceType,
java.lang.String resourceName) |
java.util.Map<com.android.resources.ResourceType,ResourceValueMap> |
getProjectResources() |
com.android.ide.common.rendering.api.StyleResourceValue |
getStyle(java.lang.String styleName,
boolean isFramework) |
com.android.ide.common.rendering.api.StyleResourceValue |
getTheme(java.lang.String name,
boolean frameworkTheme) |
java.lang.String |
getThemeName() |
boolean |
isProjectTheme() |
boolean |
isTheme(com.android.ide.common.rendering.api.ResourceValue value,
java.util.Map<com.android.ide.common.rendering.api.ResourceValue,java.lang.Boolean> cache)
Returns true if the given
ResourceValue represents a theme |
com.android.ide.common.rendering.api.ResourceValue |
resolveResValue(com.android.ide.common.rendering.api.ResourceValue resValue) |
com.android.ide.common.rendering.api.ResourceValue |
resolveValue(com.android.resources.ResourceType type,
java.lang.String name,
java.lang.String value,
boolean isFrameworkValue) |
void |
setDeviceDefaults(java.lang.String deviceDefaultParent)
This will override the DeviceDefault styles so they point to the given parent styles (e.g.
|
void |
setFrameworkResourceIdProvider(com.android.ide.common.rendering.api.RenderResources.FrameworkResourceIdProvider provider) |
void |
setLogger(com.android.ide.common.rendering.api.LayoutLog logger) |
boolean |
themeExtends(java.lang.String parentStyle,
java.lang.String themeStyle)
Returns true if the given
themeStyle extends the theme given by
parentStyle |
boolean |
themeIsParentOf(com.android.ide.common.rendering.api.StyleResourceValue parentTheme,
com.android.ide.common.rendering.api.StyleResourceValue childTheme) |
public static final java.lang.String THEME_NAME
public static final java.lang.String THEME_NAME_DOT
public static final java.lang.String XLIFF_NAMESPACE_PREFIX
public static final java.lang.String XLIFF_G_TAG
public static final java.lang.String ATTR_EXAMPLE
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
public static final int MAX_RESOURCE_INDIRECTION
public static ResourceResolver create(java.util.Map<com.android.resources.ResourceType,ResourceValueMap> projectResources, java.util.Map<com.android.resources.ResourceType,ResourceValueMap> frameworkResources, java.lang.String themeName, boolean isProjectTheme)
ResourceResolver
object.projectResources
- the project resources.frameworkResources
- the framework resources.themeName
- the name of the current theme.isProjectTheme
- Is this a project theme?ResourceResolver
@Nullable public static ResourceResolver copy(@Nullable ResourceResolver original)
ResourceResolver
copied from the given instance.ResourceResolver
or null if the passed instance is nullpublic void setDeviceDefaults(@NonNull java.lang.String deviceDefaultParent)
LEGACY_THEME
is passed, parents will be directed to the default themes (i.e. Theme).public java.lang.String getThemeName()
public boolean isProjectTheme()
public java.util.Map<com.android.resources.ResourceType,ResourceValueMap> getProjectResources()
public java.util.Map<com.android.resources.ResourceType,ResourceValueMap> getFrameworkResources()
public void setFrameworkResourceIdProvider(com.android.ide.common.rendering.api.RenderResources.FrameworkResourceIdProvider provider)
setFrameworkResourceIdProvider
in class com.android.ide.common.rendering.api.RenderResources
public void setLogger(com.android.ide.common.rendering.api.LayoutLog logger)
setLogger
in class com.android.ide.common.rendering.api.RenderResources
public com.android.ide.common.rendering.api.StyleResourceValue getDefaultTheme()
getDefaultTheme
in class com.android.ide.common.rendering.api.RenderResources
public void applyStyle(com.android.ide.common.rendering.api.StyleResourceValue theme, boolean useAsPrimary)
applyStyle
in class com.android.ide.common.rendering.api.RenderResources
public void clearStyles()
clearStyles
in class com.android.ide.common.rendering.api.RenderResources
public java.util.List<com.android.ide.common.rendering.api.StyleResourceValue> getAllThemes()
getAllThemes
in class com.android.ide.common.rendering.api.RenderResources
public com.android.ide.common.rendering.api.StyleResourceValue getTheme(java.lang.String name, boolean frameworkTheme)
getTheme
in class com.android.ide.common.rendering.api.RenderResources
public boolean themeIsParentOf(com.android.ide.common.rendering.api.StyleResourceValue parentTheme, com.android.ide.common.rendering.api.StyleResourceValue childTheme)
themeIsParentOf
in class com.android.ide.common.rendering.api.RenderResources
public com.android.ide.common.rendering.api.ResourceValue getFrameworkResource(com.android.resources.ResourceType resourceType, java.lang.String resourceName)
getFrameworkResource
in class com.android.ide.common.rendering.api.RenderResources
public com.android.ide.common.rendering.api.ResourceValue getProjectResource(com.android.resources.ResourceType resourceType, java.lang.String resourceName)
getProjectResource
in class com.android.ide.common.rendering.api.RenderResources
@Deprecated public com.android.ide.common.rendering.api.ItemResourceValue findItemInStyle(com.android.ide.common.rendering.api.StyleResourceValue style, java.lang.String attrName)
findItemInStyle
in class com.android.ide.common.rendering.api.RenderResources
public com.android.ide.common.rendering.api.ItemResourceValue findItemInStyle(com.android.ide.common.rendering.api.StyleResourceValue style, java.lang.String itemName, boolean isFrameworkAttr)
findItemInStyle
in class com.android.ide.common.rendering.api.RenderResources
public com.android.ide.common.rendering.api.ResourceValue findResValue(java.lang.String reference, boolean forceFrameworkOnly)
findResValue
in class com.android.ide.common.rendering.api.RenderResources
public com.android.ide.common.rendering.api.ResourceValue resolveValue(com.android.resources.ResourceType type, java.lang.String name, java.lang.String value, boolean isFrameworkValue)
resolveValue
in class com.android.ide.common.rendering.api.RenderResources
public com.android.ide.common.rendering.api.ResourceValue resolveResValue(com.android.ide.common.rendering.api.ResourceValue resValue)
resolveResValue
in class com.android.ide.common.rendering.api.RenderResources
@Nullable public static java.lang.String getParentName(com.android.ide.common.rendering.api.StyleResourceValue style)
null
if the style is a root style.
You probably want to use ResolutionUtils,getParentQualifiedName(StyleResourceValue)
instead@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
@Nullable public com.android.ide.common.rendering.api.StyleResourceValue getStyle(@NonNull java.lang.String styleName, boolean isFramework)
getStyle
in class com.android.ide.common.rendering.api.RenderResources
public 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 themepublic boolean themeExtends(@NonNull java.lang.String parentStyle, @NonNull java.lang.String themeStyle)
themeStyle
extends the theme given by
parentStyle
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