Use mutableSet

This commit is contained in:
Benoit Marty 2019-10-08 13:52:26 +02:00
parent 50a0660ab6
commit e80191b2e0

View file

@ -42,7 +42,7 @@ internal class DefaultPushRuleService @Inject constructor(private val getPushRul
private val monarchy: Monarchy
) : PushRuleService {
private var listeners = ArrayList<PushRuleService.PushRuleListener>()
private var listeners = mutableSetOf<PushRuleService.PushRuleListener>()
override fun fetchPushRules(scope: String) {
getPushRulesTask
@ -99,14 +99,17 @@ internal class DefaultPushRuleService @Inject constructor(private val getPushRul
}
override fun removePushRuleListener(listener: PushRuleService.PushRuleListener) {
synchronized(listeners) {
listeners.remove(listener)
}
}
override fun addPushRuleListener(listener: PushRuleService.PushRuleListener) {
if (!listeners.contains(listener))
synchronized(listeners) {
listeners.add(listener)
}
}
// fun processEvents(events: List<Event>) {
// var hasDoneSomething = false
@ -121,6 +124,7 @@ internal class DefaultPushRuleService @Inject constructor(private val getPushRul
// }
fun dispatchBing(event: Event, rule: PushRule) {
synchronized(listeners) {
try {
val actionsList = rule.getActions()
listeners.forEach {
@ -130,18 +134,22 @@ internal class DefaultPushRuleService @Inject constructor(private val getPushRul
Timber.e(e, "Error while dispatching bing")
}
}
}
fun dispatchRoomJoined(roomId: String) {
synchronized(listeners) {
try {
listeners.forEach {
it.onRoomJoined(roomId)
}
} catch (e: Throwable) {
Timber.e(e, "Error while dispatching room left")
Timber.e(e, "Error while dispatching room joined")
}
}
}
fun dispatchRoomLeft(roomId: String) {
synchronized(listeners) {
try {
listeners.forEach {
it.onRoomLeft(roomId)
@ -150,18 +158,22 @@ internal class DefaultPushRuleService @Inject constructor(private val getPushRul
Timber.e(e, "Error while dispatching room left")
}
}
}
fun dispatchRedactedEventId(redactedEventId: String) {
synchronized(listeners) {
try {
listeners.forEach {
it.onEventRedacted(redactedEventId)
}
} catch (e: Throwable) {
Timber.e(e, "Error while dispatching room left")
Timber.e(e, "Error while dispatching redacted event")
}
}
}
fun dispatchFinish() {
synchronized(listeners) {
try {
listeners.forEach {
it.batchFinish()
@ -170,4 +182,5 @@ internal class DefaultPushRuleService @Inject constructor(private val getPushRul
Timber.e(e, "Error while dispatching finish")
}
}
}
}