Commit e0d20ee5 authored by Mygod's avatar Mygod

Remove unnecessary synchronization

parent c2bf045b
package com.github.shadowsocks.utils package com.github.shadowsocks.utils
import androidx.activity.ComponentActivity import androidx.activity.ComponentActivity
import androidx.annotation.MainThread
import androidx.lifecycle.DefaultLifecycleObserver import androidx.lifecycle.DefaultLifecycleObserver
import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.LifecycleOwner
import java.util.*
import java.util.concurrent.ConcurrentHashMap
/** /**
* See also: https://stackoverflow.com/a/30821062/2245107 * See also: https://stackoverflow.com/a/30821062/2245107
*/ */
object SingleInstanceActivity : DefaultLifecycleObserver { object SingleInstanceActivity : DefaultLifecycleObserver {
private val active = Collections.newSetFromMap(ConcurrentHashMap<Class<LifecycleOwner>, Boolean>()) private val active = mutableSetOf<Class<LifecycleOwner>>()
@MainThread
fun register(activity: ComponentActivity) = if (active.add(activity.javaClass)) apply { fun register(activity: ComponentActivity) = if (active.add(activity.javaClass)) apply {
activity.lifecycle.addObserver(this) activity.lifecycle.addObserver(this)
} else { } else {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment