diff --git a/src/api-impl-jni/android_content_res_AssetManager.c b/src/api-impl-jni/android_content_res_AssetManager.c index 18a2cbf8..cb4fc13d 100644 --- a/src/api-impl-jni/android_content_res_AssetManager.c +++ b/src/api-impl-jni/android_content_res_AssetManager.c @@ -441,3 +441,18 @@ JNIEXPORT jlong JNICALL Java_android_content_res_AssetManager_openXmlAssetNative Asset_delete(asset); return _INTPTR(res_xml); } + +JNIEXPORT jobjectArray JNICALL Java_android_content_res_AssetManager_getLocales(JNIEnv *env, jobject this) +{ + struct AssetManager *asset_manager = _PTR(_GET_LONG_FIELD(this, "mObject")); + char **locales = AssetManager_getLocales(asset_manager, true); + int i = 0; + while (locales[i] != NULL) i++; + jobjectArray array = (*env)->NewObjectArray(env, i, (*env)->FindClass(env, "java/lang/String"), NULL); + for (i = 0; locales[i] != NULL; i++) { + (*env)->SetObjectArrayElement(env, array, i, (*env)->NewStringUTF(env, locales[i])); + free(locales[i]); + } + free(locales); + return array; +} diff --git a/src/api-impl/android/graphics/drawable/VectorDrawable.java b/src/api-impl/android/graphics/drawable/VectorDrawable.java index 6276960b..16db3420 100644 --- a/src/api-impl/android/graphics/drawable/VectorDrawable.java +++ b/src/api-impl/android/graphics/drawable/VectorDrawable.java @@ -1,6 +1,7 @@ package android.graphics.drawable; import java.io.IOException; +import java.util.Locale; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; @@ -27,10 +28,12 @@ public class VectorDrawable extends Drawable { int tint = a.getColor(R.styleable.VectorDrawable_tint, 0); float viewportWidth = a.getFloat(R.styleable.VectorDrawable_viewportWidth, 24); float viewportHeight = a.getFloat(R.styleable.VectorDrawable_viewportHeight, 24); + float width = a.getDimension(R.styleable.VectorDrawable_width, 24); + float height = a.getDimension(R.styleable.VectorDrawable_height, 24); a.recycle(); StringBuilder sb = new StringBuilder(); - sb.append(String.format("", - viewportWidth, viewportHeight, viewportWidth, viewportHeight)); + sb.append(String.format(Locale.ENGLISH, "", + width, height, viewportWidth, viewportHeight)); while ((type = parser.next()) != XmlPullParser.END_DOCUMENT && (parser.getDepth() >= innerDepth || type != XmlPullParser.END_TAG)) { @@ -42,7 +45,7 @@ public class VectorDrawable extends Drawable { int strokeColor = tint != 0 ? tint : a.getColor(R.styleable.VectorDrawablePath_strokeColor, 0); float strokeWidth = a.getFloat(R.styleable.VectorDrawablePath_strokeWidth, 0); a.recycle(); - sb.append(String.format("", + sb.append(String.format(Locale.ENGLISH, "", fillColor & 0xFFFFFF, (fillColor >> 24) & 0xFF, strokeColor & 0xFFFFFF, (strokeColor >> 24) & 0xFF, strokeWidth, pathData)); } }