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
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user