com.android.ide.common.resources
Class ResourceItemResolver
java.lang.Object
com.android.ide.common.rendering.api.RenderResources
com.android.ide.common.resources.ResourceItemResolver
public class ResourceItemResolver
- extends com.android.ide.common.rendering.api.RenderResources
Like ResourceResolver
but for a single item, so it does not need the full resource maps
to be resolved up front. Typically used for cases where we may not have fully configured
resource maps and we need to look up a specific value, such as in Android Studio where
a color reference is found in an XML style file, and we want to resolve it in order to
display the final resolved color in the editor margin.
Nested Class Summary |
static interface |
ResourceItemResolver.ResourceProvider
Interface implemented by clients of the ResourceItemResolver which allows
it to lazily look up the project resources, the framework resources and optionally
to provide a fully configured resource resolver, if any |
Nested classes/interfaces inherited from class com.android.ide.common.rendering.api.RenderResources |
com.android.ide.common.rendering.api.RenderResources.FrameworkResourceIdProvider |
Fields inherited from class com.android.ide.common.rendering.api.RenderResources |
REFERENCE_NULL |
Method Summary |
com.android.ide.common.rendering.api.ResourceValue |
findItemInStyle(com.android.ide.common.rendering.api.StyleResourceValue style,
java.lang.String attrName)
|
com.android.ide.common.rendering.api.ResourceValue |
findItemInStyle(com.android.ide.common.rendering.api.StyleResourceValue style,
java.lang.String attrName,
boolean isFrameworkAttr)
|
com.android.ide.common.rendering.api.ResourceValue |
findItemInTheme(java.lang.String itemName)
|
com.android.ide.common.rendering.api.ResourceValue |
findItemInTheme(java.lang.String attrName,
boolean isFrameworkAttr)
|
com.android.ide.common.rendering.api.ResourceValue |
findResValue(java.lang.String reference,
boolean inFramework)
|
com.android.ide.common.rendering.api.StyleResourceValue |
getCurrentTheme()
|
static java.lang.String |
getDisplayString(com.android.resources.ResourceType type,
java.lang.String name,
boolean isFramework,
java.util.List<com.android.ide.common.rendering.api.ResourceValue> lookupChain)
Returns a display string for a resource lookup |
static java.lang.String |
getDisplayString(java.lang.String url,
java.util.List<com.android.ide.common.rendering.api.ResourceValue> lookupChain)
Returns a display string for a resource lookup |
java.util.List<com.android.ide.common.rendering.api.ResourceValue> |
getLookupChain()
Returns the lookup chain being used by this resolver |
com.android.ide.common.rendering.api.StyleResourceValue |
getTheme(java.lang.String name,
boolean frameworkTheme)
|
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 |
setLookupChainList(java.util.List<com.android.ide.common.rendering.api.ResourceValue> lookupChain)
Optional method to set a list the resolver should record all value resolutions
into. |
boolean |
themeIsParentOf(com.android.ide.common.rendering.api.StyleResourceValue parentTheme,
com.android.ide.common.rendering.api.StyleResourceValue childTheme)
|
Methods inherited from class com.android.ide.common.rendering.api.RenderResources |
applyStyle, clearStyles, getAllThemes, getDefaultTheme, getFrameworkResource, getProjectResource, setFrameworkResourceIdProvider, setLogger |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ResourceItemResolver
public ResourceItemResolver(@NonNull
FolderConfiguration configuration,
@NonNull
ResourceItemResolver.ResourceProvider resourceProvider,
@Nullable
com.android.ide.common.rendering.api.LayoutLog logger)
ResourceItemResolver
public ResourceItemResolver(@NonNull
FolderConfiguration configuration,
@NonNull
ResourceRepository frameworkResources,
@NonNull
AbstractResourceRepository appResources,
@Nullable
com.android.ide.common.rendering.api.LayoutLog logger)
resolveResValue
@Nullable
public com.android.ide.common.rendering.api.ResourceValue resolveResValue(@Nullable
com.android.ide.common.rendering.api.ResourceValue resValue)
- Overrides:
resolveResValue
in class com.android.ide.common.rendering.api.RenderResources
findResValue
@Nullable
public com.android.ide.common.rendering.api.ResourceValue findResValue(@Nullable
java.lang.String reference,
boolean inFramework)
- Overrides:
findResValue
in class com.android.ide.common.rendering.api.RenderResources
getCurrentTheme
public com.android.ide.common.rendering.api.StyleResourceValue getCurrentTheme()
- Overrides:
getCurrentTheme
in class com.android.ide.common.rendering.api.RenderResources
resolveValue
public com.android.ide.common.rendering.api.ResourceValue resolveValue(com.android.resources.ResourceType type,
java.lang.String name,
java.lang.String value,
boolean isFrameworkValue)
- Overrides:
resolveValue
in class com.android.ide.common.rendering.api.RenderResources
getTheme
public com.android.ide.common.rendering.api.StyleResourceValue getTheme(java.lang.String name,
boolean frameworkTheme)
- Overrides:
getTheme
in class com.android.ide.common.rendering.api.RenderResources
themeIsParentOf
public boolean themeIsParentOf(com.android.ide.common.rendering.api.StyleResourceValue parentTheme,
com.android.ide.common.rendering.api.StyleResourceValue childTheme)
- Overrides:
themeIsParentOf
in class com.android.ide.common.rendering.api.RenderResources
findItemInTheme
public com.android.ide.common.rendering.api.ResourceValue findItemInTheme(java.lang.String itemName)
- Overrides:
findItemInTheme
in class com.android.ide.common.rendering.api.RenderResources
findItemInTheme
public com.android.ide.common.rendering.api.ResourceValue findItemInTheme(java.lang.String attrName,
boolean isFrameworkAttr)
- Overrides:
findItemInTheme
in class com.android.ide.common.rendering.api.RenderResources
findItemInStyle
public com.android.ide.common.rendering.api.ResourceValue findItemInStyle(com.android.ide.common.rendering.api.StyleResourceValue style,
java.lang.String attrName)
- Overrides:
findItemInStyle
in class com.android.ide.common.rendering.api.RenderResources
findItemInStyle
public com.android.ide.common.rendering.api.ResourceValue findItemInStyle(com.android.ide.common.rendering.api.StyleResourceValue style,
java.lang.String attrName,
boolean isFrameworkAttr)
- Overrides:
findItemInStyle
in class com.android.ide.common.rendering.api.RenderResources
setLookupChainList
public void setLookupChainList(@Nullable
java.util.List<com.android.ide.common.rendering.api.ResourceValue> lookupChain)
- Optional method to set a list the resolver should record all value resolutions
into. Useful if you want to find out the resolution chain for a resource,
e.g.
@color/buttonForeground => @color/foreground => @android:color/black
.
There is no getter. Clients setting this list should look it up themselves.
Note also that if this resolver has to delegate to a full resource resolver,
e.g. to follow theme attributes, those resolutions will not be recorded.
- Parameters:
lookupChain
- the list to set, or null
getLookupChain
@Nullable
public java.util.List<com.android.ide.common.rendering.api.ResourceValue> getLookupChain()
- Returns the lookup chain being used by this resolver
getDisplayString
public static java.lang.String getDisplayString(@NonNull
com.android.resources.ResourceType type,
@NonNull
java.lang.String name,
boolean isFramework,
@NonNull
java.util.List<com.android.ide.common.rendering.api.ResourceValue> lookupChain)
- Returns a display string for a resource lookup
- Parameters:
type
- the resource typename
- the resource nameisFramework
- whether the item is in the frameworklookupChain
- the list of resolved items to display
- Returns:
- the display string
getDisplayString
@NonNull
public static java.lang.String getDisplayString(@NonNull
java.lang.String url,
@NonNull
java.util.List<com.android.ide.common.rendering.api.ResourceValue> lookupChain)
- Returns a display string for a resource lookup
- Parameters:
url
- the resource url, such as @string/foo
lookupChain
- the list of resolved items to display
- Returns:
- the display string