am 51a05d74: Merge "Fix TypedArray.getTextArray()" into mnc-ub-dev

* commit '51a05d74a81aeb334ef095fc6f1aa98e5163763f':
  Fix TypedArray.getTextArray()
This commit is contained in:
Deepanshu Gupta
2015-09-23 23:17:22 +00:00
committed by Android Git Automerger
2 changed files with 16 additions and 9 deletions

View File

@@ -48,9 +48,6 @@ import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.Iterator;
/**
*
*/
public final class BridgeResources extends Resources {
private BridgeContext mContext;
@@ -278,7 +275,7 @@ public final class BridgeResources extends Resources {
* always Strings. The ideal signature for the method should be <T super String>, but java
* generics don't support it.
*/
private <T extends CharSequence> T[] fillValues(ArrayResourceValue resValue, T[] values) {
<T extends CharSequence> T[] fillValues(ArrayResourceValue resValue, T[] values) {
int i = 0;
for (Iterator<String> iterator = resValue.iterator(); iterator.hasNext(); i++) {
@SuppressWarnings("unchecked")

View File

@@ -16,6 +16,7 @@
package android.content.res;
import com.android.ide.common.rendering.api.ArrayResourceValue;
import com.android.ide.common.rendering.api.AttrResourceValue;
import com.android.ide.common.rendering.api.LayoutLog;
import com.android.ide.common.rendering.api.RenderResources;
@@ -33,6 +34,7 @@ import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import android.annotation.Nullable;
import android.content.res.Resources.NotFoundException;
import android.content.res.Resources.Theme;
import android.graphics.drawable.Drawable;
import android.util.DisplayMetrics;
@@ -740,12 +742,20 @@ public final class BridgeTypedArray extends TypedArray {
*/
@Override
public CharSequence[] getTextArray(int index) {
String value = getString(index);
if (value != null) {
return new CharSequence[] { value };
if (!hasValue(index)) {
return null;
}
return null;
ResourceValue resVal = mResourceData[index];
if (resVal instanceof ArrayResourceValue) {
ArrayResourceValue array = (ArrayResourceValue) resVal;
int count = array.getElementCount();
return count >= 0 ? mBridgeResources.fillValues(array, new CharSequence[count]) : null;
}
int id = getResourceId(index, 0);
String resIdMessage = id > 0 ? " (resource id 0x" + Integer.toHexString(id) + ')' : "";
throw new NotFoundException(
String.format("%1$s in %2$s%3$s is not a valid array resource.",
resVal.getValue(), mNames[index], resIdMessage));
}
@Override