feat: hide quick add in friend feed

This commit is contained in:
rhunk
2023-10-25 02:35:53 +02:00
parent e82b91eee0
commit a4b7432006
7 changed files with 58 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
package me.rhunk.snapenhance.mapper.impl
import me.rhunk.snapenhance.mapper.AbstractClassMapper
import me.rhunk.snapenhance.mapper.ext.findConstString
import me.rhunk.snapenhance.mapper.ext.getClassName
import me.rhunk.snapenhance.mapper.ext.searchNextFieldReference
class FriendingDataSourcesMapper: AbstractClassMapper() {
init {
mapper {
for (classDef in classes) {
val constructor = classDef.methods.firstOrNull { it.name == "<init>" } ?: continue
if (constructor.parameterTypes.size < 4 || (0..3).any { constructor.parameterTypes[it] != "Ljava/util/List;" }) continue
val toStringMethod = classDef.methods.firstOrNull { it.name == "toString" } ?: continue
if (toStringMethod.implementation?.findConstString("quickaddSource", contains = true) != true) continue
val quickAddSourceListField = toStringMethod.implementation?.searchNextFieldReference("quickaddSource", contains = true)
?: continue
addMapping("FriendingDataSources",
"class" to classDef.getClassName(),
"quickAddSourceListField" to quickAddSourceListField.name
)
return@mapper
}
}
}
}

View File

@@ -24,6 +24,7 @@ class TestMappings {
ScoreUpdateMapper::class,
FriendRelationshipChangerMapper::class,
ViewBinderMapper::class,
FriendingDataSourcesMapper::class,
)
val gson = GsonBuilder().setPrettyPrinting().create()