commit 6f97584622204b4484c74a84d8b3e2f65039a6b5
parent 3dafa28f3106dd6c974a672057cbb9e985f6d594
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date:   Sat, 27 May 2023 19:41:21 +0200

perf: mapping manager

Diffstat:
Mapp/src/main/kotlin/me/rhunk/snapenhance/mapping/impl/GridMediaItemMapper.kt | 1+
Mapp/src/main/kotlin/me/rhunk/snapenhance/mapping/impl/PlusSubscriptionMapper.kt | 5+++--
2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/mapping/impl/GridMediaItemMapper.kt b/app/src/main/kotlin/me/rhunk/snapenhance/mapping/impl/GridMediaItemMapper.kt @@ -10,6 +10,7 @@ class GridMediaItemMapper : Mapper() { mappings: MutableMap<String, Any> ) { for (clazz in classes) { + if (clazz.isEnum || clazz.isInterface) continue if (clazz.annotations.isEmpty()) continue if (!clazz.annotations[0].toString().contains("typeReferences")) continue clazz.declaredFields.firstOrNull { diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/mapping/impl/PlusSubscriptionMapper.kt b/app/src/main/kotlin/me/rhunk/snapenhance/mapping/impl/PlusSubscriptionMapper.kt @@ -6,6 +6,7 @@ import java.lang.reflect.Method class PlusSubscriptionMapper : Mapper() { + @Suppress("PLATFORM_CLASS_MAPPED_TO_KOTLIN") override fun useClasses( classLoader: ClassLoader, classes: List<Class<*>>, @@ -30,8 +31,8 @@ class PlusSubscriptionMapper : Mapper() { val members = mutableMapOf<String, Any>() loadSubscriptionMethod.returnType.declaredFields.forEach { field -> - val serializedNameAnnotation = field.declaredAnnotations.first() - val propertyName = serializedNameAnnotation.annotationClass.members.first { it.name == "name" }.call(serializedNameAnnotation) as String + val serializedNameAnnotation = (field.declaredAnnotations.first() as java.lang.annotation.Annotation) + val propertyName = serializedNameAnnotation.annotationType().getDeclaredMethod("name").also { it.isAccessible = true }.invoke(serializedNameAnnotation) as String members[propertyName] = field.name }