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:
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
}