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

Commit 5ceaf6c5 authored by Beth Thibodeau's avatar Beth Thibodeau
Browse files

Keep smartspace session object

The object was getting prematurely optimized out because it wasn't referenced
in code later, but it is necessary to keep alive in order to get
recommendation updates.
Add annotation to make sure it's kept, and explicitly close when destroy
is called

Bug: 273739913
Bug: 283493228
Test: manual - verify session is not destroyed after restarting SysUI
Change-Id: I98bd7ce5878f9f261e1c09673faaae35e954f173
parent 6c0a668d
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@ import android.text.TextUtils
import android.util.Log
import android.util.Pair as APair
import androidx.media.utils.MediaConstants
import com.android.internal.annotations.Keep
import com.android.internal.logging.InstanceId
import com.android.internal.statusbar.IStatusBarService
import com.android.keyguard.KeyguardUpdateMonitor
@@ -220,7 +221,7 @@ class MediaDataManager(
    private val mediaEntries: LinkedHashMap<String, MediaData> = LinkedHashMap()
    // There should ONLY be at most one Smartspace media recommendation.
    var smartspaceMediaData: SmartspaceMediaData = EMPTY_SMARTSPACE_MEDIA_DATA
    private var smartspaceSession: SmartspaceSession? = null
    @Keep private var smartspaceSession: SmartspaceSession? = null
    private var allowMediaRecommendations = allowMediaRecommendations(context)

    private val artworkWidth =
@@ -380,6 +381,8 @@ class MediaDataManager(

    fun destroy() {
        smartspaceMediaDataProvider.unregisterListener(this)
        smartspaceSession?.close()
        smartspaceSession = null
        context.unregisterReceiver(appChangeReceiver)
    }