fix(core): hide streak restore

This commit is contained in:
rhunk
2023-11-01 02:28:13 +01:00
parent 4759d910b3
commit eb803df196

View File

@ -4,16 +4,14 @@ import me.rhunk.snapenhance.core.features.Feature
import me.rhunk.snapenhance.core.features.FeatureLoadParams
import me.rhunk.snapenhance.core.util.hook.HookStage
import me.rhunk.snapenhance.core.util.hook.hookConstructor
import me.rhunk.snapenhance.core.util.ktx.getObjectField
import me.rhunk.snapenhance.core.util.ktx.setObjectField
class HideStreakRestore : Feature("HideStreakRestore", loadParams = FeatureLoadParams.ACTIVITY_CREATE_SYNC) {
override fun onActivityCreate() {
if (!context.config.userInterface.hideStreakRestore.get()) return
context.classCache.feedEntry.hookConstructor(HookStage.AFTER) { param ->
val streakMetadata = param.thisObject<Any>().getObjectField("mStreakMetadata") ?: return@hookConstructor
streakMetadata.setObjectField("mExpiredStreak", null)
findClass("com.snapchat.client.messaging.ExpiredStreakMetadata").hookConstructor(HookStage.AFTER) { param ->
param.thisObject<Any>().setObjectField("mIsRestorable", false)
}
}
}