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 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,
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.ResourceValue |
dereference(com.android.ide.common.rendering.api.ResourceValue value) |
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) |
java.util.List<com.android.ide.common.rendering.api.StyleResourceValue> |
getAllThemes() |
com.android.ide.common.rendering.api.StyleResourceValue |
getDefaultTheme() |
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) |
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. |
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) |
java.lang.String |
getThemeName() |
com.android.ide.common.rendering.api.ResourceValue |
getUnresolvedResource(com.android.ide.common.rendering.api.ResourceReference reference) |
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) |
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 |
setFrameworkResourceIdProvider(com.android.ide.common.rendering.api.RenderResources.ResourceIdProvider provider) |
void |
setLibrariesIdProvider(com.android.ide.common.rendering.api.RenderResources.ResourceIdProvider 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) |
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 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
public static ResourceResolver create(java.util.Map<com.android.ide.common.rendering.api.ResourceNamespace,java.util.Map<com.android.resources.ResourceType,ResourceValueMap>> resources, java.lang.String themeName, boolean isProjectTheme)
ResourceResolver object.resources - all 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 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.
public 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()
@Deprecated public java.util.Map<com.android.resources.ResourceType,ResourceValueMap> getProjectResources()
@Deprecated public java.util.Map<com.android.resources.ResourceType,ResourceValueMap> getFrameworkResources()
public void setLibrariesIdProvider(@NonNull
com.android.ide.common.rendering.api.RenderResources.ResourceIdProvider provider)
public void setFrameworkResourceIdProvider(@NonNull
com.android.ide.common.rendering.api.RenderResources.ResourceIdProvider provider)
setFrameworkResourceIdProvider in class com.android.ide.common.rendering.api.RenderResourcespublic void setFrameworkResourceIdProvider(@NonNull
com.android.ide.common.rendering.api.RenderResources.FrameworkResourceIdProvider provider)
setFrameworkResourceIdProvider in class com.android.ide.common.rendering.api.RenderResourcespublic 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(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.RenderResourcespublic java.util.List<com.android.ide.common.rendering.api.StyleResourceValue> getAllThemes()
getAllThemes in class com.android.ide.common.rendering.api.RenderResourcespublic 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@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.RenderResourcespublic 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.RenderResourcespublic com.android.ide.common.rendering.api.ResourceValue getUnresolvedResource(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.RenderResourcespublic 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.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
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 themepublic boolean themeExtends(@NonNull
java.lang.String parentStyle,
@NonNull
java.lang.String themeStyle)
themeStyle extends the theme given by
parentStylepublic 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