Use collectAsCallbackWithLifecycle

Instead of observeAsCallback, since isAllowed is a flow now.

Bug: 322916468
Test: manual - on Toggle Permission page and switch between apps
Test: unit test
Change-Id: Ic33a7d6cd7c71c7cf6cd4a6e353505fa12cf0046
This commit is contained in:
Chaohui Wang
2024-02-02 21:58:40 +08:00
parent 32587dbdcf
commit 213c998557
4 changed files with 9 additions and 13 deletions

View File

@@ -26,7 +26,7 @@ import android.content.pm.ApplicationInfo
import android.os.UserManager
import androidx.compose.runtime.Composable
import com.android.settings.R
import com.android.settingslib.spa.livedata.observeAsCallback
import com.android.settingslib.spa.lifecycle.collectAsCallbackWithLifecycle
import com.android.settingslib.spaprivileged.model.app.AppOpsController
import com.android.settingslib.spaprivileged.model.app.AppRecord
import com.android.settingslib.spaprivileged.model.app.userId
@@ -81,7 +81,7 @@ class InstallUnknownAppsListModel(private val context: Context) :
@Composable
override fun isAllowed(record: InstallUnknownAppsRecord) =
record.appOpsController.isAllowed.observeAsCallback()
record.appOpsController.isAllowed.collectAsCallbackWithLifecycle()
override fun isChangeable(record: InstallUnknownAppsRecord) =
isChangeable(record, getPotentialPackageNames(record.app.userId))

View File

@@ -27,7 +27,7 @@ import android.content.pm.PackageManager.PackageInfoFlags
import android.util.Log
import androidx.compose.runtime.Composable
import com.android.settings.R
import com.android.settingslib.spa.livedata.observeAsCallback
import com.android.settingslib.spa.lifecycle.collectAsCallbackWithLifecycle
import com.android.settingslib.spaprivileged.model.app.AppOpsController
import com.android.settingslib.spaprivileged.model.app.AppRecord
import com.android.settingslib.spaprivileged.model.app.installed
@@ -92,7 +92,7 @@ class PictureInPictureListModel(private val context: Context) :
@Composable
override fun isAllowed(record: PictureInPictureRecord) =
record.appOpsController.isAllowed.observeAsCallback()
record.appOpsController.isAllowed.collectAsCallbackWithLifecycle()
override fun isChangeable(record: PictureInPictureRecord) = record.isSupport

View File

@@ -21,7 +21,6 @@ import android.app.AppOpsManager
import android.content.Context
import android.content.pm.ApplicationInfo
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.lifecycle.MutableLiveData
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.settingslib.spa.testutils.firstWithTimeoutOrNull
@@ -270,7 +269,7 @@ class WifiControlAppListModelTest {
private class FakeAppOpsController(private val fakeMode: Int) : IAppOpsController {
var setAllowedCalledWith: Boolean? = null
override val mode = MutableLiveData(fakeMode)
override val mode = flowOf(fakeMode)
override fun setAllowed(allowed: Boolean) {
setAllowedCalledWith = allowed

View File

@@ -24,7 +24,6 @@ import android.companion.AssociationRequest
import android.content.Context
import android.content.pm.ApplicationInfo
import android.platform.test.flag.junit.SetFlagsRule
import androidx.lifecycle.MutableLiveData
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.media.flags.Flags
@@ -33,6 +32,7 @@ import com.android.settings.testutils.FakeFeatureFactory
import com.android.settingslib.spaprivileged.model.app.IAppOpsController
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.flow.MutableStateFlow
import org.junit.Before
import org.junit.Rule
import org.junit.Test
@@ -223,16 +223,13 @@ class MediaRoutingControlTest {
private class FakeAppOpsController(fakeMode: Int) : IAppOpsController {
override val mode = MutableLiveData(fakeMode)
override val mode = MutableStateFlow(fakeMode)
override fun setAllowed(allowed: Boolean) {
if (allowed)
mode.postValue(AppOpsManager.MODE_ALLOWED)
else
mode.postValue(AppOpsManager.MODE_ERRORED)
mode.value = if (allowed) AppOpsManager.MODE_ALLOWED else AppOpsManager.MODE_ERRORED
}
override fun getMode(): Int = mode.value!!
override fun getMode(): Int = mode.value
}
companion object {