private TypedResource getAndResolve(int resId, String qualifiers, boolean resolveRefs) { TypedResource value = resourceTable.getValue(resId, qualifiers); if (resolveRefs) { value = resolve(value, qualifiers, resId); } return value; }
private TypedResource getAndResolve(int resId, String qualifiers, boolean resolveRefs) { TypedResource value = resourceTable.getValue(resId, qualifiers); if (resolveRefs) { value = resolve(value, qualifiers, resId); } return value; }
@HiddenApi @Implementation public CharSequence[] getResourceTextArray(int resId) { TypedResource value = getAndResolve(resId, RuntimeEnvironment.getQualifiers(), true); if (value == null) return null; List<TypedResource> items = getConverter(value).getItems(value); CharSequence[] charSequences = new CharSequence[items.size()]; for (int i = 0; i < items.size(); i++) { TypedResource typedResource = resolve(items.get(i), RuntimeEnvironment.getQualifiers(), resId); charSequences[i] = getConverter(typedResource).asCharSequence(typedResource); } return charSequences; }
@HiddenApi @Implementation public int[] getArrayIntResource(int resId) { TypedResource value = getAndResolve(resId, RuntimeEnvironment.getQualifiers(), true); if (value == null) return null; List<TypedResource> items = getConverter(value).getItems(value); int[] ints = new int[items.size()]; for (int i = 0; i < items.size(); i++) { TypedResource typedResource = resolve(items.get(i), RuntimeEnvironment.getQualifiers(), resId); ints[i] = getConverter(typedResource).asInt(typedResource); } return ints; }
private TypedResource getAndResolve(int resId, String qualifiers, boolean resolveRefs) { TypedResource value = resourceLoader.getValue(resId, qualifiers); if (resolveRefs) { value = resolve(value, qualifiers, resId); } // todo: make the drawable loader put stuff into the normal spot... String resourceTypeName = getResourceTypeName(resId); if (value == null && DrawableResourceLoader.isStillHandledHere(resourceTypeName)) { FileTypedResource typedResource = (FileTypedResource) resourceLoader.getValue(resId, qualifiers); return new TypedResource<>(typedResource.getFsFile(), ResType.FILE); } // todo: gross. this is so resources.getString(R.layout.foo) works for ABS. if (value == null && "layout".equals(resourceTypeName)) { throw new UnsupportedOperationException("ugh, this doesn't work still?"); } return value; }
@HiddenApi @Implementation public CharSequence[] getResourceTextArray(int resId) { TypedResource value = getAndResolve(resId, RuntimeEnvironment.getQualifiers(), true); if (value == null) return null; List<TypedResource> items = getConverter(value).getItems(value); CharSequence[] charSequences = new CharSequence[items.size()]; for (int i = 0; i < items.size(); i++) { TypedResource typedResource = resolve(items.get(i), RuntimeEnvironment.getQualifiers(), resId); charSequences[i] = getConverter(typedResource).asCharSequence(typedResource); } return charSequences; }
@HiddenApi @Implementation public int[] getArrayIntResource(int resId) { TypedResource value = getAndResolve(resId, RuntimeEnvironment.getQualifiers(), true); if (value == null) return null; List<TypedResource> items = getConverter(value).getItems(value); int[] ints = new int[items.size()]; for (int i = 0; i < items.size(); i++) { TypedResource typedResource = resolve(items.get(i), RuntimeEnvironment.getQualifiers(), resId); ints[i] = getConverter(typedResource).asInt(typedResource); } return ints; }
typedValue.resourceId = resourceTable.getResourceId(refResName); typedValue.data = typedValue.resourceId; typedResource = resolve(typedResource, RuntimeEnvironment.getQualifiers(), typedValue.resourceId);
@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; } }
@HiddenApi @Implementation public CharSequence[] getResourceTextArray(int resId) { TypedResource value = getAndResolve(resId, RuntimeEnvironment.getQualifiers(), true); if (value == null) return null; TypedResource[] items = getConverter(value).getItems(value); CharSequence[] charSequences = new CharSequence[items.length]; for (int i = 0; i < items.length; i++) { TypedResource typedResource = resolve(items[i], RuntimeEnvironment.getQualifiers(), resId); charSequences[i] = getConverter(typedResource).asCharSequence(typedResource); } return charSequences; }
@HiddenApi @Implementation public int[] getArrayIntResource(int resId) { TypedResource value = getAndResolve(resId, RuntimeEnvironment.getQualifiers(), true); if (value == null) return null; TypedResource[] items = getConverter(value).getItems(value); int[] ints = new int[items.length]; for (int i = 0; i < items.length; i++) { TypedResource typedResource = resolve(items[i], RuntimeEnvironment.getQualifiers(), resId); ints[i] = getConverter(typedResource).asInt(typedResource); } return ints; }
@Implementation public String getQuantityString(int resId, int quantity) throws Resources.NotFoundException { ShadowAssetManager shadowAssetManager = shadowOf(realResources.getAssets()); TypedResource typedResource = shadowAssetManager.getResourceTable().getValue(resId, RuntimeEnvironment.getQualifiers()); if (typedResource != null && typedResource instanceof PluralRules) { PluralRules pluralRules = (PluralRules) typedResource; Plural plural = pluralRules.find(quantity); if (plural == null) { return null; } TypedResource<?> resolvedTypedResource = shadowAssetManager.resolve( new TypedResource<>(plural.getString(), ResType.CHAR_SEQUENCE, pluralRules.getXmlContext()), RuntimeEnvironment.getQualifiers(), resId); return resolvedTypedResource == null ? null : resolvedTypedResource.asString(); } else { return null; } }
typedValue.resourceId = resourceTable.getResourceId(refResName); typedValue.data = typedValue.resourceId; typedResource = resolve(typedResource, RuntimeEnvironment.getQualifiers(), typedValue.resourceId);
@Implementation public String getQuantityString(int resId, int quantity) throws Resources.NotFoundException { ShadowAssetManager shadowAssetManager = shadowOf(realResources.getAssets()); TypedResource typedResource = shadowAssetManager.getResourceTable().getValue(resId, RuntimeEnvironment.getQualifiers()); if (typedResource != null && typedResource instanceof PluralRules) { PluralRules pluralRules = (PluralRules) typedResource; Plural plural = pluralRules.find(quantity); if (plural == null) { return null; } TypedResource<?> resolvedTypedResource = shadowAssetManager.resolve( new TypedResource<>(plural.getString(), ResType.CHAR_SEQUENCE, pluralRules.getXmlContext()), RuntimeEnvironment.getQualifiers(), resId); return resolvedTypedResource == null ? null : resolvedTypedResource.asString(); } else { return null; } }
@Implementation public String getQuantityString(int resId, int quantity) throws Resources.NotFoundException { ShadowAssetManager shadowAssetManager = shadowOf(realResourcesImpl.getAssets()); TypedResource typedResource = shadowAssetManager.getResourceTable().getValue(resId, RuntimeEnvironment.getQualifiers()); if (typedResource != null && typedResource instanceof PluralRules) { PluralRules pluralRules = (PluralRules) typedResource; Plural plural = pluralRules.find(quantity); if (plural == null) { return null; } TypedResource<?> resolvedTypedResource = shadowAssetManager.resolve( new TypedResource<>(plural.getString(), ResType.CHAR_SEQUENCE, pluralRules.getXmlContext()), RuntimeEnvironment.getQualifiers(), resId); return resolvedTypedResource == null ? null : resolvedTypedResource.asString(); } else { return null; } }
@Implementation public String getQuantityString(int resId, int quantity) throws Resources.NotFoundException { ShadowAssetManager shadowAssetManager = shadowOf(realResourcesImpl.getAssets()); TypedResource typedResource = shadowAssetManager.getResourceTable().getValue(resId, RuntimeEnvironment.getQualifiers()); if (typedResource != null && typedResource instanceof PluralRules) { PluralRules pluralRules = (PluralRules) typedResource; Plural plural = pluralRules.find(quantity); if (plural == null) { return null; } TypedResource<?> resolvedTypedResource = shadowAssetManager.resolve( new TypedResource<>(plural.getString(), ResType.CHAR_SEQUENCE, pluralRules.getXmlContext()), RuntimeEnvironment.getQualifiers(), resId); return resolvedTypedResource == null ? null : resolvedTypedResource.asString(); } else { return null; } }