160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes/* 260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes * Copyright (C) 2015 The Android Open Source Project 360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes * 460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes * Licensed under the Apache License, Version 2.0 (the "License"); 560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes * you may not use this file except in compliance with the License. 660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes * You may obtain a copy of the License at 760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes * 860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes * http://www.apache.org/licenses/LICENSE-2.0 960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes * 1060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes * Unless required by applicable law or agreed to in writing, software 1160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes * distributed under the License is distributed on an "AS IS" BASIS, 1260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes * See the License for the specific language governing permissions and 1460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes * limitations under the License. 1560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes */ 1660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 17ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikaspackage androidx.appcompat.widget; 1860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 1960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banesimport android.content.res.AssetFileDescriptor; 2060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banesimport android.content.res.ColorStateList; 2160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banesimport android.content.res.Configuration; 2260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banesimport android.content.res.Resources; 2360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banesimport android.content.res.TypedArray; 2460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banesimport android.content.res.XmlResourceParser; 2560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banesimport android.graphics.Movie; 2660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banesimport android.graphics.drawable.Drawable; 2760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banesimport android.os.Bundle; 2860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banesimport android.util.AttributeSet; 2960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banesimport android.util.DisplayMetrics; 3060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banesimport android.util.TypedValue; 3160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 323de8a4e8305507475d7890205184946a25cf45e7Aurimas Liutikasimport androidx.annotation.RequiresApi; 333de8a4e8305507475d7890205184946a25cf45e7Aurimas Liutikas 34058995d123bc50783c787ef8799318e8797d889cAurimas Liutikasimport org.xmlpull.v1.XmlPullParserException; 35058995d123bc50783c787ef8799318e8797d889cAurimas Liutikas 3660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banesimport java.io.IOException; 3760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banesimport java.io.InputStream; 3860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 3960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes/** 4060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes * This extends Resources but delegates the calls to another Resources object. This enables 4160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes * any customization done by some subclass of Resources to be also picked up. 4260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes */ 4360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banesclass ResourcesWrapper extends Resources { 4460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 4560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes private final Resources mResources; 4660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 4760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public ResourcesWrapper(Resources resources) { 4860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes super(resources.getAssets(), resources.getDisplayMetrics(), resources.getConfiguration()); 4960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes mResources = resources; 5060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 5160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 5260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 5360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public CharSequence getText(int id) throws NotFoundException { 5460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getText(id); 5560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 5660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 5760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 5860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public CharSequence getQuantityText(int id, int quantity) throws NotFoundException { 5960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getQuantityText(id, quantity); 6060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 6160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 6260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 6360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public String getString(int id) throws NotFoundException { 6460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getString(id); 6560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 6660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 6760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 6860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public String getString(int id, Object... formatArgs) throws NotFoundException { 6960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getString(id, formatArgs); 7060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 7160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 7260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 7360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public String getQuantityString(int id, int quantity, Object... formatArgs) 7460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes throws NotFoundException { 7560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getQuantityString(id, quantity, formatArgs); 7660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 7760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 7860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 7960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public String getQuantityString(int id, int quantity) throws NotFoundException { 8060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getQuantityString(id, quantity); 8160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 8260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 8360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 8460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public CharSequence getText(int id, CharSequence def) { 8560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getText(id, def); 8660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 8760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 8860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 8960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public CharSequence[] getTextArray(int id) throws NotFoundException { 9060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getTextArray(id); 9160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 9260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 9360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 9460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public String[] getStringArray(int id) throws NotFoundException { 9560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getStringArray(id); 9660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 9760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 9860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 9960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public int[] getIntArray(int id) throws NotFoundException { 10060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getIntArray(id); 10160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 10260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 10360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 10460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public TypedArray obtainTypedArray(int id) throws NotFoundException { 10560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.obtainTypedArray(id); 10660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 10760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 10860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 10960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public float getDimension(int id) throws NotFoundException { 11060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getDimension(id); 11160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 11260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 11360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 11460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public int getDimensionPixelOffset(int id) throws NotFoundException { 11560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getDimensionPixelOffset(id); 11660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 11760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 11860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 11960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public int getDimensionPixelSize(int id) throws NotFoundException { 12060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getDimensionPixelSize(id); 12160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 12260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 12360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 12460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public float getFraction(int id, int base, int pbase) { 12560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getFraction(id, base, pbase); 12660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 12760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 12860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 12960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public Drawable getDrawable(int id) throws NotFoundException { 13060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getDrawable(id); 13160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 13260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 133058995d123bc50783c787ef8799318e8797d889cAurimas Liutikas @RequiresApi(21) 13460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 13560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public Drawable getDrawable(int id, Theme theme) throws NotFoundException { 13660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getDrawable(id, theme); 13760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 13860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 139058995d123bc50783c787ef8799318e8797d889cAurimas Liutikas @RequiresApi(15) 14060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 14160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public Drawable getDrawableForDensity(int id, int density) throws NotFoundException { 14260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getDrawableForDensity(id, density); 14360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 14460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 145058995d123bc50783c787ef8799318e8797d889cAurimas Liutikas @RequiresApi(21) 14660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 14760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public Drawable getDrawableForDensity(int id, int density, Theme theme) { 14860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getDrawableForDensity(id, density, theme); 14960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 15060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 15160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 15260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public Movie getMovie(int id) throws NotFoundException { 15360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getMovie(id); 15460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 15560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 15660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 15760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public int getColor(int id) throws NotFoundException { 15860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getColor(id); 15960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 16060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 16160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 16260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public ColorStateList getColorStateList(int id) throws NotFoundException { 16360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getColorStateList(id); 16460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 16560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 16660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 16760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public boolean getBoolean(int id) throws NotFoundException { 16860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getBoolean(id); 16960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 17060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 17160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 17260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public int getInteger(int id) throws NotFoundException { 17360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getInteger(id); 17460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 17560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 17660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 17760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public XmlResourceParser getLayout(int id) throws NotFoundException { 17860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getLayout(id); 17960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 18060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 18160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 18260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public XmlResourceParser getAnimation(int id) throws NotFoundException { 18360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getAnimation(id); 18460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 18560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 18660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 18760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public XmlResourceParser getXml(int id) throws NotFoundException { 18860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getXml(id); 18960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 19060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 19160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 19260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public InputStream openRawResource(int id) throws NotFoundException { 19360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.openRawResource(id); 19460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 19560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 19660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 19760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public InputStream openRawResource(int id, TypedValue value) throws NotFoundException { 19860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.openRawResource(id, value); 19960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 20060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 20160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 20260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public AssetFileDescriptor openRawResourceFd(int id) throws NotFoundException { 20360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.openRawResourceFd(id); 20460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 20560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 20660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 20760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public void getValue(int id, TypedValue outValue, boolean resolveRefs) 20860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes throws NotFoundException { 20960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes mResources.getValue(id, outValue, resolveRefs); 21060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 21160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 212058995d123bc50783c787ef8799318e8797d889cAurimas Liutikas @RequiresApi(15) 21360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 21460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public void getValueForDensity(int id, int density, TypedValue outValue, boolean resolveRefs) 21560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes throws NotFoundException { 21660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes mResources.getValueForDensity(id, density, outValue, resolveRefs); 21760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 21860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 21960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 22060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public void getValue(String name, TypedValue outValue, boolean resolveRefs) 22160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes throws NotFoundException { 22260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes mResources.getValue(name, outValue, resolveRefs); 22360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 22460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 22560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 22660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public TypedArray obtainAttributes(AttributeSet set, int[] attrs) { 22760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.obtainAttributes(set, attrs); 22860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 22960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 23060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 23160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public void updateConfiguration(Configuration config, DisplayMetrics metrics) { 23260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes super.updateConfiguration(config, metrics); 23360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes if (mResources != null) { // called from super's constructor. So, need to check. 23460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes mResources.updateConfiguration(config, metrics); 23560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 23660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 23760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 23860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 23960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public DisplayMetrics getDisplayMetrics() { 24060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getDisplayMetrics(); 24160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 24260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 24360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 24460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public Configuration getConfiguration() { 24560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getConfiguration(); 24660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 24760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 24860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 24960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public int getIdentifier(String name, String defType, String defPackage) { 25060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getIdentifier(name, defType, defPackage); 25160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 25260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 25360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 25460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public String getResourceName(int resid) throws NotFoundException { 25560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getResourceName(resid); 25660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 25760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 25860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 25960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public String getResourcePackageName(int resid) throws NotFoundException { 26060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getResourcePackageName(resid); 26160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 26260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 26360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 26460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public String getResourceTypeName(int resid) throws NotFoundException { 26560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getResourceTypeName(resid); 26660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 26760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 26860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 26960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public String getResourceEntryName(int resid) throws NotFoundException { 27060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes return mResources.getResourceEntryName(resid); 27160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 27260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 27360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 27460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public void parseBundleExtras(XmlResourceParser parser, Bundle outBundle) 27560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes throws XmlPullParserException, IOException { 27660cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes mResources.parseBundleExtras(parser, outBundle); 27760cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 27860cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 27960cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes @Override 28060cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes public void parseBundleExtra(String tagName, AttributeSet attrs, Bundle outBundle) 28160cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes throws XmlPullParserException { 28260cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes mResources.parseBundleExtra(tagName, attrs, outBundle); 28360cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes } 28460cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes} 28560cc94cdf2f9dfd10f2fe0b3fa0fa438d51df271Chris Banes 286