From 6f97584622204b4484c74a84d8b3e2f65039a6b5 Mon Sep 17 00:00:00 2001 From: rhunk <101876869+rhunk@users.noreply.github.com> Date: Sat, 27 May 2023 19:41:21 +0200 Subject: [PATCH] perf: mapping manager --- .../me/rhunk/snapenhance/mapping/impl/GridMediaItemMapper.kt | 1 + .../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 index ab4b4aff..2b2a6b5e 100644 --- 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 ) { 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 index a90d7bc9..048cdcb0 100644 --- 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>, @@ -30,8 +31,8 @@ class PlusSubscriptionMapper : Mapper() { val members = mutableMapOf() 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 }