Loading packages/SystemUI/src/com/android/systemui/qs/tiles/viewmodel/QSTileViewModelAdapter.kt +24 −32 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.systemui.qs.tiles.viewmodel import android.content.Context import android.os.UserHandle import android.util.Log import androidx.annotation.GuardedBy import com.android.internal.logging.InstanceId import com.android.systemui.Dumpable import com.android.systemui.animation.Expandable Loading @@ -34,6 +33,7 @@ import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject import java.io.PrintWriter import java.util.concurrent.CopyOnWriteArraySet import java.util.function.Supplier import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Job Loading @@ -57,10 +57,8 @@ constructor( private val context get() = qsHost.context @GuardedBy("callbacks") private val callbacks: MutableCollection<QSTile.Callback> = mutableSetOf() @GuardedBy("listeningClients") private val listeningClients: MutableCollection<Any> = mutableSetOf() private val callbacks = CopyOnWriteArraySet<QSTile.Callback>() private val listeningClients = CopyOnWriteArraySet<Any>() // Cancels the jobs when the adapter is no longer alive private var tileAdapterJob: Job? = null Loading Loading @@ -113,19 +111,17 @@ constructor( override fun addCallback(callback: QSTile.Callback?) { callback ?: return synchronized(callbacks) { callbacks.add(callback) state?.let(callback::onStateChanged) } } override fun removeCallback(callback: QSTile.Callback?) { callback ?: return synchronized(callbacks) { callbacks.remove(callback) } callbacks.remove(callback) } override fun removeCallbacks() { synchronized(callbacks) { callbacks.clear() } callbacks.clear() } override fun click(expandable: Expandable?) { Loading Loading @@ -163,7 +159,6 @@ constructor( override fun setListening(client: Any?, listening: Boolean) { client ?: return synchronized(listeningClients) { if (listening) { listeningClients.add(client) if (listeningClients.size == 1) { Loading @@ -172,10 +167,8 @@ constructor( .filterNotNull() .map { mapState(context, it, qsTileViewModel.config) } .onEach { legacyState -> synchronized(callbacks) { callbacks.forEach { it.onStateChanged(legacyState) } } } .launchIn(applicationScope) } } else { Loading @@ -185,10 +178,9 @@ constructor( } } } } override fun isListening(): Boolean = synchronized(listeningClients) { listeningClients.isNotEmpty() } listeningClients.isNotEmpty() override fun setDetailListening(show: Boolean) { // do nothing like QSTileImpl Loading Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/viewmodel/QSTileViewModelAdapter.kt +24 −32 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.systemui.qs.tiles.viewmodel import android.content.Context import android.os.UserHandle import android.util.Log import androidx.annotation.GuardedBy import com.android.internal.logging.InstanceId import com.android.systemui.Dumpable import com.android.systemui.animation.Expandable Loading @@ -34,6 +33,7 @@ import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject import java.io.PrintWriter import java.util.concurrent.CopyOnWriteArraySet import java.util.function.Supplier import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Job Loading @@ -57,10 +57,8 @@ constructor( private val context get() = qsHost.context @GuardedBy("callbacks") private val callbacks: MutableCollection<QSTile.Callback> = mutableSetOf() @GuardedBy("listeningClients") private val listeningClients: MutableCollection<Any> = mutableSetOf() private val callbacks = CopyOnWriteArraySet<QSTile.Callback>() private val listeningClients = CopyOnWriteArraySet<Any>() // Cancels the jobs when the adapter is no longer alive private var tileAdapterJob: Job? = null Loading Loading @@ -113,19 +111,17 @@ constructor( override fun addCallback(callback: QSTile.Callback?) { callback ?: return synchronized(callbacks) { callbacks.add(callback) state?.let(callback::onStateChanged) } } override fun removeCallback(callback: QSTile.Callback?) { callback ?: return synchronized(callbacks) { callbacks.remove(callback) } callbacks.remove(callback) } override fun removeCallbacks() { synchronized(callbacks) { callbacks.clear() } callbacks.clear() } override fun click(expandable: Expandable?) { Loading Loading @@ -163,7 +159,6 @@ constructor( override fun setListening(client: Any?, listening: Boolean) { client ?: return synchronized(listeningClients) { if (listening) { listeningClients.add(client) if (listeningClients.size == 1) { Loading @@ -172,10 +167,8 @@ constructor( .filterNotNull() .map { mapState(context, it, qsTileViewModel.config) } .onEach { legacyState -> synchronized(callbacks) { callbacks.forEach { it.onStateChanged(legacyState) } } } .launchIn(applicationScope) } } else { Loading @@ -185,10 +178,9 @@ constructor( } } } } override fun isListening(): Boolean = synchronized(listeningClients) { listeningClients.isNotEmpty() } listeningClients.isNotEmpty() override fun setDetailListening(show: Boolean) { // do nothing like QSTileImpl Loading