commit a633f913d3a77add7259eea6ea4dd3a08e3315f6
parent 47a549ea2d101816a8f9c0bb900c19d7ec3f1487
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date:   Wed,  5 Jun 2024 17:04:51 +0200

fix(mapper): streaks expiration

Signed-off-by: rhunk <101876869+rhunk@users.noreply.github.com>

Diffstat:
Mmapper/src/main/kotlin/me/rhunk/snapenhance/mapper/ext/DexMethod.kt | 15+++++++++------
Mmapper/src/main/kotlin/me/rhunk/snapenhance/mapper/impl/StreaksExpirationMapper.kt | 2+-
2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/mapper/src/main/kotlin/me/rhunk/snapenhance/mapper/ext/DexMethod.kt b/mapper/src/main/kotlin/me/rhunk/snapenhance/mapper/ext/DexMethod.kt @@ -6,13 +6,16 @@ import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction22c import com.android.tools.smali.dexlib2.iface.reference.FieldReference import com.android.tools.smali.dexlib2.iface.reference.StringReference -fun MethodImplementation.findConstString(string: String, contains: Boolean = false): Boolean = instructions.filterIsInstance(Instruction21c::class.java).any { +fun MethodImplementation.findConstString( + string: String, + contains: Boolean = false, + startsWith: Boolean = false, + ignoreCase: Boolean = false +): Boolean = instructions.filterIsInstance<Instruction21c>().any { (it.reference as? StringReference)?.string?.let { str -> - if (contains) { - str.contains(string) - } else { - str == string - } + if (contains && str.contains(string, ignoreCase = ignoreCase)) return@any true + if (startsWith && str.startsWith(string, ignoreCase = ignoreCase)) return@any true + str == string } == true } diff --git a/mapper/src/main/kotlin/me/rhunk/snapenhance/mapper/impl/StreaksExpirationMapper.kt b/mapper/src/main/kotlin/me/rhunk/snapenhance/mapper/impl/StreaksExpirationMapper.kt @@ -21,7 +21,7 @@ class StreaksExpirationMapper: AbstractClassMapper("StreaksExpirationMapper") { var streaksResultClass: String? = null for (clazz in classes) { val toStringMethod = clazz.methods.firstOrNull { it.name == "toString" } ?: continue - if (toStringMethod.implementation?.findConstString("StreaksResult(", contains = true) != true) continue + if (toStringMethod.implementation?.findConstString("StreaksResult(", startsWith = true) != true) continue streaksResultClass = clazz.type break }