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 }