Avoid empty line for storage summary

Bug: 292036686
Test: manual - on All Apps
Test: unit test
Change-Id: Id5069b8172191f3277b825f82407551f6eb4e202
This commit is contained in:
Chaohui Wang
2024-01-17 17:55:16 +08:00
committed by mxyyiyi
parent 77615e83d2
commit ca0542d2d7
2 changed files with 42 additions and 4 deletions

View File

@@ -34,6 +34,7 @@ import com.android.settingslib.spa.framework.util.mapItem
import com.android.settingslib.spa.widget.preference.Preference
import com.android.settingslib.spa.widget.preference.PreferenceModel
import com.android.settingslib.spa.widget.ui.SpinnerOption
import com.android.settingslib.spaprivileged.framework.compose.getPlaceholder
import com.android.settingslib.spaprivileged.model.app.AppListModel
import com.android.settingslib.spaprivileged.model.app.AppRecord
import com.android.settingslib.spaprivileged.model.app.installed
@@ -131,7 +132,11 @@ class AllAppListModel(
override fun getSummary(option: Int, record: AppRecordWithSize): () -> String {
val storageSummary = record.app.getStorageSummary()
return {
val summaryList = mutableListOf(storageSummary.value)
val summaryList = mutableListOf<String>()
val storageSummaryValue = storageSummary.value
if (storageSummaryValue.isNotBlank()) {
summaryList += storageSummaryValue
}
when {
!record.app.installed && !record.app.isArchived -> {
summaryList += context.getString(R.string.not_installed)
@@ -142,6 +147,7 @@ class AllAppListModel(
}
}
summaryList.joinToString(separator = System.lineSeparator())
.ifEmpty { context.getPlaceholder() } // Use placeholder to reduce flaky
}
}

View File

@@ -31,6 +31,7 @@ import com.android.settings.R
import com.android.settingslib.spa.framework.compose.stateOf
import com.android.settingslib.spa.testutils.FakeNavControllerWrapper
import com.android.settingslib.spa.testutils.firstWithTimeoutOrNull
import com.android.settingslib.spaprivileged.framework.compose.getPlaceholder
import com.android.settingslib.spaprivileged.template.app.AppListInput
import com.android.settingslib.spaprivileged.template.app.AppListItemModel
import com.google.common.truth.Truth.assertThat
@@ -142,7 +143,7 @@ class AllAppListTest {
}
@Test
fun allAppListModel_getSummary() {
fun listModelGetSummary_regular() {
val listModel = AllAppListModel(context) { stateOf(SUMMARY) }
lateinit var summary: () -> String
@@ -154,7 +155,19 @@ class AllAppListTest {
}
@Test
fun allAppListModel_getSummaryWhenDisabled() {
fun listModelGetSummary_emptyStorage() {
val listModel = AllAppListModel(context) { stateOf("") }
lateinit var summary: () -> String
composeTestRule.setContent {
summary = listModel.getSummary(option = 0, record = AppRecordWithSize(app = APP))
}
assertThat(summary()).isEqualTo(context.getPlaceholder())
}
@Test
fun listModelGetSummary_disabled() {
val listModel = AllAppListModel(context) { stateOf(SUMMARY) }
val disabledApp = ApplicationInfo().apply {
packageName = PACKAGE_NAME
@@ -172,7 +185,26 @@ class AllAppListTest {
}
@Test
fun allAppListModel_getSummaryWhenNotInstalled() {
fun listModelGetSummary_emptyStorageAndDisabled() {
val listModel = AllAppListModel(context) { stateOf("") }
val disabledApp = ApplicationInfo().apply {
packageName = PACKAGE_NAME
flags = ApplicationInfo.FLAG_INSTALLED
enabled = false
}
lateinit var summary: () -> String
composeTestRule.setContent {
summary =
listModel.getSummary(option = 0, record = AppRecordWithSize(app = disabledApp))
}
assertThat(summary())
.isEqualTo(context.getString(com.android.settingslib.R.string.disabled))
}
@Test
fun listModelGetSummary_notInstalled() {
val listModel = AllAppListModel(context) { stateOf(SUMMARY) }
val notInstalledApp = ApplicationInfo().apply {
packageName = PACKAGE_NAME