diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/core/features/impl/experiments/BetterLocation.kt b/core/src/main/kotlin/me/rhunk/snapenhance/core/features/impl/experiments/BetterLocation.kt index 65199c08..c5c6a97e 100644 --- a/core/src/main/kotlin/me/rhunk/snapenhance/core/features/impl/experiments/BetterLocation.kt +++ b/core/src/main/kotlin/me/rhunk/snapenhance/core/features/impl/experiments/BetterLocation.kt @@ -26,8 +26,10 @@ import me.rhunk.snapenhance.core.event.events.impl.AddViewEvent import me.rhunk.snapenhance.core.event.events.impl.UnaryCallEvent import me.rhunk.snapenhance.core.features.Feature import me.rhunk.snapenhance.core.util.RandomWalking +import me.rhunk.snapenhance.core.util.dataBuilder import me.rhunk.snapenhance.core.util.hook.HookStage import me.rhunk.snapenhance.core.util.hook.hook +import me.rhunk.snapenhance.core.util.hook.hookConstructor import me.rhunk.snapenhance.core.util.ktx.getId import me.rhunk.snapenhance.core.util.ktx.getObjectField import me.rhunk.snapenhance.core.util.ktx.isDarkTheme @@ -191,6 +193,17 @@ class BetterLocation : Feature("Better Location") { val batteryLevel = locationHistory[userId]?.batteryLevel?.takeIf { it > -1F } ?: return@hook param.setArg(0, param.arg(0) + " (${(batteryLevel * 100).toInt()}%)") } + + findClass("com.snap.map_friend_focus_view.MapFocusViewFriendSectionDataModel").hookConstructor(HookStage.AFTER) { param -> + val instance = param.thisObject() + val userId = instance.getObjectField("_userId") as? String ?: return@hookConstructor + val batteryLevel = locationHistory[userId]?.batteryLevel?.takeIf { it > -1F } ?: return@hookConstructor + + param.thisObject().dataBuilder { + val prevText = get("_lastSeen")?.let { " - $it" } ?: "" + set("_lastSeen", "(${(batteryLevel * 100).toInt()}%)$prevText") + } + } } context.event.subscribe(AddViewEvent::class) { event ->