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,
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.ItemResourceValue |
findItemInStyle(com.android.ide.common.rendering.api.StyleResourceValue style,
com.android.ide.common.rendering.api.ResourceReference attr) |
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 |
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) |
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 |
getTheme() |
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)
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 |
setLogger(com.android.ide.common.rendering.api.LayoutLog logger) |
void |
setProjectIdChecker(java.util.function.Predicate<com.android.ide.common.rendering.api.ResourceReference> predicate)
Provides a mechanism to check if a given resource of type
ResourceType.ID is defined
in the project. |
boolean |
styleExtends(com.android.ide.common.rendering.api.StyleResourceValue child,
com.android.ide.common.rendering.api.StyleResourceValue ancestor) |
boolean |
themeIsParentOf(com.android.ide.common.rendering.api.StyleResourceValue parentTheme,
com.android.ide.common.rendering.api.StyleResourceValue childTheme) |
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 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(@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 setProjectIdChecker(@NonNull
java.util.function.Predicate<com.android.ide.common.rendering.api.ResourceReference> predicate)
ResourceType.ID is defined
in the project.
TODO(namespaces): stop relying on R.txt and remove this.
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(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@Nullable
public com.android.ide.common.rendering.api.ItemResourceValue 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.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 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 themepublic 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