Add unit test for AllAppList

Bug: 260660819
Test: Unit test
Change-Id: I15e294d8b90d385e932adc3bf0d61e6923941542
This commit is contained in:
Chaohui Wang
2022-12-05 20:10:04 +08:00
parent bda1edbb02
commit 07fc7f1044
4 changed files with 195 additions and 10 deletions

View File

@@ -19,6 +19,7 @@ package com.android.settings.spa.app
import android.content.pm.ApplicationInfo
import android.os.Bundle
import androidx.compose.runtime.Composable
import androidx.compose.runtime.State
import androidx.compose.runtime.remember
import androidx.compose.ui.res.stringResource
import com.android.settings.R
@@ -32,6 +33,8 @@ import com.android.settingslib.spa.widget.preference.Preference
import com.android.settingslib.spa.widget.preference.PreferenceModel
import com.android.settingslib.spaprivileged.model.app.AppListModel
import com.android.settingslib.spaprivileged.model.app.AppRecord
import com.android.settingslib.spaprivileged.template.app.AppList
import com.android.settingslib.spaprivileged.template.app.AppListInput
import com.android.settingslib.spaprivileged.template.app.AppListItem
import com.android.settingslib.spaprivileged.template.app.AppListPage
import com.android.settingslib.spaprivileged.template.app.getStorageSize
@@ -57,17 +60,18 @@ object AllAppListPageProvider : SettingsPageProvider {
}
@Composable
private fun AllAppListPage() {
fun AllAppListPage(
appList: @Composable AppListInput<AppRecordWithSize>.() -> Unit = { AppList() },
) {
val resetAppDialogPresenter = rememberResetAppDialogPresenter()
AppListPage(
title = stringResource(R.string.all_apps),
listModel = remember { AllAppListModel() },
showInstantApps = true,
moreOptions = { ResetAppPreferences(resetAppDialogPresenter::open) }
moreOptions = { ResetAppPreferences(resetAppDialogPresenter::open) },
appList = appList,
) {
AppListItem(
onClick = AppInfoSettingsProvider.navigator(app = record.app),
)
AppListItem(onClick = AppInfoSettingsProvider.navigator(app = record.app))
}
}
@@ -75,11 +79,13 @@ data class AppRecordWithSize(
override val app: ApplicationInfo,
) : AppRecord
private class AllAppListModel : AppListModel<AppRecordWithSize> {
class AllAppListModel(
private val getSummary: @Composable ApplicationInfo.() -> State<String> = { getStorageSize() },
) : AppListModel<AppRecordWithSize> {
override fun transform(userIdFlow: Flow<Int>, appListFlow: Flow<List<ApplicationInfo>>) =
appListFlow.mapItem(::AppRecordWithSize)
@Composable
override fun getSummary(option: Int, record: AppRecordWithSize) = record.app.getStorageSize()
override fun getSummary(option: Int, record: AppRecordWithSize) = record.app.getSummary()
}