Fix default mode for AlarmsAndRemindersAppList

When app ops permission's app ops mode is default, should check if
permission is grant.

Fix: 339846642
Test: manual - on AlarmsAndRemindersAppList
Test: unit test
Change-Id: Ia0f05211f5774637304502ead79dd98a1cf89886
This commit is contained in:
Chaohui Wang
2024-05-16 17:15:37 +08:00
parent 7a8d8fd091
commit 83aeb45f3c
3 changed files with 42 additions and 49 deletions

View File

@@ -29,7 +29,7 @@ import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
import com.android.settingslib.R
import com.android.settingslib.spa.lifecycle.collectAsCallbackWithLifecycle
import com.android.settingslib.spaprivileged.model.app.AppOps
import com.android.settingslib.spaprivileged.model.app.AppOpsController
import com.android.settingslib.spaprivileged.model.app.AppOpsPermissionController
import com.android.settingslib.spaprivileged.model.app.AppRecord
import com.android.settingslib.spaprivileged.model.app.IPackageManagers
import com.android.settingslib.spaprivileged.model.app.PackageManagers
@@ -49,7 +49,7 @@ data class AlarmsAndRemindersAppRecord(
override val app: ApplicationInfo,
val isTrumped: Boolean,
val isChangeable: Boolean,
var controller: AppOpsController,
val controller: AppOpsPermissionController,
) : AppRecord
class AlarmsAndRemindersAppListModel(
@@ -84,7 +84,7 @@ class AlarmsAndRemindersAppListModel(
@Composable
override fun isAllowed(record: AlarmsAndRemindersAppRecord): () -> Boolean? = when {
record.isTrumped -> ({ true })
else -> record.controller.isAllowed.collectAsCallbackWithLifecycle()
else -> record.controller.isAllowedFlow.collectAsCallbackWithLifecycle()
}
override fun isChangeable(record: AlarmsAndRemindersAppRecord) = record.isChangeable
@@ -114,10 +114,11 @@ class AlarmsAndRemindersAppListModel(
app = app,
isTrumped = isTrumped,
isChangeable = hasRequestPermission && !isTrumped,
controller = AppOpsController(
controller = AppOpsPermissionController(
context = context,
app = app,
appOps = APP_OPS,
permission = PERMISSION,
),
)
}