Minor improvements for delegated source id lists

(cherry picked from commit 1d593de65440ddb531ee0421d17c6033a52dd5bb)
This commit is contained in:
Jobobby04 2022-07-26 16:30:51 -04:00
parent d09de07a3f
commit 2b9d564841

View File

@ -253,7 +253,7 @@ open class SourceManager(private val context: Context) {
),
).associateBy { it.originalSourceQualifiedClassName }
val currentDelegatedSources = ListenMutableMap(mutableMapOf<Long, DelegatedSource>(), ::handleSourceLibrary)
val currentDelegatedSources: MutableMap<Long, DelegatedSource> = ListenMutableMap(mutableMapOf(), ::handleSourceLibrary)
data class DelegatedSource(
val sourceName: String,
@ -264,19 +264,10 @@ open class SourceManager(private val context: Context) {
)
}
class ListenMutableMap<K, V>(private val internalMap: MutableMap<K, V>, val listener: () -> Unit) : MutableMap<K, V> {
override val size: Int
get() = internalMap.size
override fun containsKey(key: K): Boolean = internalMap.containsKey(key)
override fun containsValue(value: V): Boolean = internalMap.containsValue(value)
override fun get(key: K): V? = internalMap[key]
override fun isEmpty(): Boolean = internalMap.isEmpty()
override val entries: MutableSet<MutableMap.MutableEntry<K, V>>
get() = internalMap.entries
override val keys: MutableSet<K>
get() = internalMap.keys
override val values: MutableCollection<V>
get() = internalMap.values
private class ListenMutableMap<K, V>(
private val internalMap: MutableMap<K, V>,
private val listener: () -> Unit,
) : MutableMap<K, V> by internalMap {
override fun clear() {
val clearResult = internalMap.clear()
listener()