RemoteTracker.kt (1265B) - raw
1 package me.rhunk.snapenhance 2 3 import me.rhunk.snapenhance.bridge.logger.TrackerInterface 4 import me.rhunk.snapenhance.common.data.ScopedTrackerRule 5 import me.rhunk.snapenhance.common.data.TrackerEventsResult 6 import me.rhunk.snapenhance.common.data.TrackerRule 7 import me.rhunk.snapenhance.common.data.TrackerRuleEvent 8 import me.rhunk.snapenhance.common.util.toSerialized 9 import me.rhunk.snapenhance.storage.getRuleTrackerScopes 10 import me.rhunk.snapenhance.storage.getTrackerEvents 11 import me.rhunk.snapenhance.storage.updateFriendScore 12 13 14 class RemoteTracker( 15 private val context: RemoteSideContext 16 ): TrackerInterface.Stub() { 17 fun init() {} 18 19 override fun getTrackedEvents(eventType: String): String? { 20 val events = mutableMapOf<TrackerRule, MutableList<TrackerRuleEvent>>() 21 22 context.database.getTrackerEvents(eventType).forEach { (event, rule) -> 23 events.getOrPut(rule) { mutableListOf() }.add(event) 24 } 25 26 return TrackerEventsResult(events.mapKeys { 27 ScopedTrackerRule(it.key, context.database.getRuleTrackerScopes(it.key.id)) 28 }).toSerialized() 29 } 30 31 override fun updateFriendScore(userId: String, score: Long): Long { 32 return context.database.updateFriendScore(userId, score) 33 } 34 }