diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/ResourceDrawableIdHelper.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/ResourceDrawableIdHelper.kt index 12f24b5aa892..496da026c492 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/ResourceDrawableIdHelper.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/ResourceDrawableIdHelper.kt @@ -19,6 +19,7 @@ import org.xmlpull.v1.XmlPullParser @ThreadSafe public class ResourceDrawableIdHelper private constructor() { private val resourceDrawableIdMap: MutableMap = HashMap() + private val vectorDrawableCheckCache: MutableMap> = HashMap() @Synchronized public fun clear() { @@ -64,7 +65,15 @@ public class ResourceDrawableIdHelper private constructor() { } public fun isVectorDrawable(context: Context, name: String): Boolean { - return getOpeningXmlTag(context, name) == "vector" + val cachedResult = vectorDrawableCheckCache[context]?.get(name); + if (cachedResult != null) { + return cachedResult + } + + + val result = getOpeningXmlTag(context, name) == "vector" + vectorDrawableCheckCache.getOrPut(context, { HashMap() }).put(name, result) + return result } /**