/** * Robolectric implementation of {@link android.util.AttributeSet}. * @deprecated Use {@link Robolectric#buildAttributeSet()} */ @Deprecated public static AttributeSet create(Context context, List<Attribute> attributesList) { return create(context, attributesList, shadowOf(context.getAssets()).getResourceLoader()); }
public ResName resolveResName(ResName resName, String qualifiers) { TypedResource value = getResourceLoader().getValue(resName, qualifiers); return resolveResource(value, qualifiers, resName); }
@Implementation public InputStream openRawResource(int id) throws Resources.NotFoundException { return shadowOf(realResources.getAssets()).getResourceLoader().getRawValue(id); }
private TypedResource resolveResourceValue(TypedResource value, String qualifiers, ResName resName) { while (value != null && value.isReference()) { String s = value.asString(); if (AttributeResource.isNull(s) || AttributeResource.isEmpty(s)) { value = null; } else { String refStr = s.substring(1).replace("+", ""); resName = ResName.qualifyResName(refStr, resName); value = getResourceLoader().getValue(resName, qualifiers); } } return value; }
private ResName resolveResource(TypedResource value, String qualifiers, ResName resName) { while (value != null && value.isReference()) { String s = value.asString(); if (AttributeResource.isNull(s) || AttributeResource.isEmpty(s)) { value = null; } else { String refStr = s.substring(1).replace("+", ""); resName = ResName.qualifyResName(refStr, resName); value = getResourceLoader().getValue(resName, qualifiers); } } return resName; }
public XmlResourceParser loadXmlResourceParser(int resId, String type) throws Resources.NotFoundException { ResName resName = getResName(resId); ResName resolvedResName = resolveResName(resName, RuntimeEnvironment.getQualifiers()); if (resolvedResName == null) { throw new RuntimeException("couldn't resolve " + resName.getFullyQualifiedName()); } resName = resolvedResName; XmlBlock block = getResourceLoader().getXml(resName, RuntimeEnvironment.getQualifiers()); if (block == null) { throw new Resources.NotFoundException(resName.getFullyQualifiedName()); } return ResourceParser.from(block, resName.packageName, getResourceLoader()); }
@Implementation public String getQuantityString(int resId, int quantity) throws Resources.NotFoundException { ShadowAssetManager shadowAssetManager = shadowOf(realResources.getAssets()); TypedResource typedResource = shadowAssetManager.getResourceLoader().getValue(resId, RuntimeEnvironment.getQualifiers()); if (typedResource != null && typedResource instanceof PluralResourceLoader.PluralRules) { PluralResourceLoader.PluralRules pluralRules = (PluralResourceLoader.PluralRules) typedResource; Plural plural = pluralRules.find(quantity); if (plural == null) { return null; } TypedResource<?> resolvedTypedResource = shadowAssetManager.resolve( new TypedResource<>(plural.getString(), ResType.CHAR_SEQUENCE), RuntimeEnvironment.getQualifiers(), resId); return resolvedTypedResource == null ? null : resolvedTypedResource.asString(); } else { return null; } }