Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 08e44ec9 authored by William Leshner's avatar William Leshner Committed by Android (Google) Code Review
Browse files

Merge "Revert^2 "Fix a crash when registering/unregistering a smartspace timer...

Merge "Revert^2 "Fix a crash when registering/unregistering a smartspace timer listener."" into main
parents 826fd099 155d4cfc
Loading
Loading
Loading
Loading
+13 −4
Original line number Diff line number Diff line
@@ -21,7 +21,9 @@ import android.os.Parcelable
import android.widget.RemoteViews
import com.android.systemui.communal.smartspace.CommunalSmartspaceController
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.plugins.BcSmartspaceDataPlugin
import java.util.concurrent.Executor
import javax.inject.Inject
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
@@ -41,6 +43,7 @@ class SmartspaceRepositoryImpl
@Inject
constructor(
    private val communalSmartspaceController: CommunalSmartspaceController,
    @Main private val uiExecutor: Executor,
) : SmartspaceRepository, BcSmartspaceDataPlugin.SmartspaceTargetListener {

    override val isSmartspaceRemoteViewsEnabled: Boolean
@@ -51,13 +54,19 @@ constructor(
    override val communalSmartspaceTargets: Flow<List<SmartspaceTarget>> =
        _communalSmartspaceTargets
            .onStart {
                communalSmartspaceController.addListener(listener = this@SmartspaceRepositoryImpl)
                uiExecutor.execute {
                    communalSmartspaceController.addListener(
                        listener = this@SmartspaceRepositoryImpl
                    )
                }
            }
            .onCompletion {
                uiExecutor.execute {
                    communalSmartspaceController.removeListener(
                        listener = this@SmartspaceRepositoryImpl
                    )
                }
            }

    override fun onSmartspaceTargetsUpdated(targetsNullable: MutableList<out Parcelable>?) {
        targetsNullable?.let { targets ->