[Spa] Fix "State<T> as a parameter" of Preference

Bug: 292036686
Test: manual - with Settings
Test: unit tests
Change-Id: I8a9faaefe4780667a2747a4ef1573361d3258705
This commit is contained in:
Chaohui Wang
2023-11-02 14:54:53 +08:00
parent 855307c73e
commit 3b21249d72
37 changed files with 193 additions and 192 deletions

View File

@@ -21,7 +21,6 @@ import android.content.pm.ApplicationInfo
import android.content.pm.PackageManager
import android.graphics.drawable.Drawable
import androidx.compose.runtime.SideEffect
import androidx.compose.runtime.State
import androidx.compose.ui.test.assertIsDisplayed
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.onNodeWithText
@@ -146,12 +145,12 @@ class AllAppListTest {
fun allAppListModel_getSummary() {
val listModel = AllAppListModel(context) { stateOf(SUMMARY) }
lateinit var summaryState: State<String>
lateinit var summary: () -> String
composeTestRule.setContent {
summaryState = listModel.getSummary(option = 0, record = AppRecordWithSize(app = APP))
summary = listModel.getSummary(option = 0, record = AppRecordWithSize(app = APP))
}
assertThat(summaryState.value).isEqualTo(SUMMARY)
assertThat(summary()).isEqualTo(SUMMARY)
}
@Test
@@ -163,13 +162,13 @@ class AllAppListTest {
enabled = false
}
lateinit var summaryState: State<String>
lateinit var summary: () -> String
composeTestRule.setContent {
summaryState =
summary =
listModel.getSummary(option = 0, record = AppRecordWithSize(app = disabledApp))
}
assertThat(summaryState.value).isEqualTo("$SUMMARY${System.lineSeparator()}Disabled")
assertThat(summary()).isEqualTo("$SUMMARY${System.lineSeparator()}Disabled")
}
@Test
@@ -179,13 +178,13 @@ class AllAppListTest {
packageName = PACKAGE_NAME
}
lateinit var summaryState: State<String>
lateinit var summary: () -> String
composeTestRule.setContent {
summaryState =
summary =
listModel.getSummary(option = 0, record = AppRecordWithSize(app = notInstalledApp))
}
assertThat(summaryState.value)
assertThat(summary())
.isEqualTo("$SUMMARY${System.lineSeparator()}Not installed for this user")
}
@@ -207,7 +206,7 @@ class AllAppListTest {
AppListItemModel(
record = AppRecordWithSize(app = app),
label = LABEL,
summary = stateOf(SUMMARY),
summary = { SUMMARY },
).AppItem()
}
}
@@ -224,13 +223,13 @@ class AllAppListTest {
isArchived = true
}
lateinit var summaryState: State<String>
lateinit var summary: () -> String
composeTestRule.setContent {
summaryState =
summary =
listModel.getSummary(option = 0, record = AppRecordWithSize(app = archivedApp))
}
assertThat(summaryState.value).isEqualTo(SUMMARY)
assertThat(summary()).isEqualTo(SUMMARY)
}
private fun getAppListInput(): AppListInput<AppRecordWithSize> {
@@ -252,7 +251,7 @@ class AllAppListTest {
AppListItemModel(
record = AppRecordWithSize(app = APP),
label = LABEL,
summary = stateOf(SUMMARY),
summary = { SUMMARY },
).AppItem()
}
}

View File

@@ -21,7 +21,6 @@ import android.content.pm.ApplicationInfo
import android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_SPLIT_SCREEN
import android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_UNSET
import android.os.Build
import androidx.compose.runtime.State
import androidx.compose.ui.test.assertIsDisplayed
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.onNodeWithText
@@ -29,7 +28,6 @@ import androidx.compose.ui.test.performClick
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
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.template.app.AppListItemModel
@@ -132,7 +130,7 @@ class UserAspectRatioAppsPageProviderTest {
AppListItemModel(
record = APP_RECORD_SUGGESTED,
label = LABEL,
summary = stateOf(SUMMARY)
summary = { SUMMARY }
).AppItem()
}
}
@@ -141,23 +139,23 @@ class UserAspectRatioAppsPageProviderTest {
@Test
fun aspectRatioAppListModel_getSummaryDefault() {
val summaryState = setSummaryState(USER_MIN_ASPECT_RATIO_UNSET)
assertThat(summaryState.value)
.isEqualTo(context.getString(R.string.user_aspect_ratio_app_default))
val summary = getSummary(USER_MIN_ASPECT_RATIO_UNSET)
assertThat(summary).isEqualTo(context.getString(R.string.user_aspect_ratio_app_default))
}
@Test
fun aspectRatioAppListModel_getSummaryWhenSplitScreen() {
val summaryState = setSummaryState(USER_MIN_ASPECT_RATIO_SPLIT_SCREEN)
assertThat(summaryState.value)
.isEqualTo(context.getString(R.string.user_aspect_ratio_half_screen))
val summary = getSummary(USER_MIN_ASPECT_RATIO_SPLIT_SCREEN)
assertThat(summary).isEqualTo(context.getString(R.string.user_aspect_ratio_half_screen))
}
private fun setSummaryState(userOverride: Int): State<String> {
private fun getSummary(userOverride: Int): String {
val listModel = UserAspectRatioAppListModel(context)
lateinit var summaryState: State<String>
lateinit var summary: () -> String
composeTestRule.setContent {
summaryState = listModel.getSummary(option = 0,
summary = listModel.getSummary(option = 0,
record = UserAspectRatioAppListItemModel(
app = APP,
userOverride = userOverride,
@@ -165,7 +163,7 @@ class UserAspectRatioAppsPageProviderTest {
canDisplay = true,
))
}
return summaryState
return summary()
}

View File

@@ -29,7 +29,6 @@ import androidx.compose.ui.test.performClick
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.settings.R
import com.android.settingslib.spa.framework.compose.stateOf
import com.android.settingslib.spa.testutils.FakeNavControllerWrapper
import com.android.settingslib.spaprivileged.template.app.AppListItemModel
import com.google.common.truth.Truth.assertThat
@@ -244,7 +243,7 @@ class BackgroundInstalledAppsPageProviderTest {
app = APP,
dateOfInstall = TEST_FIRST_INSTALL_TIME),
label = TEST_LABEL,
summary = stateOf(TEST_SUMMARY),
summary = { TEST_SUMMARY },
).AppItem()
}
}

View File

@@ -20,7 +20,6 @@ import android.content.Context
import android.content.pm.ApplicationInfo
import android.content.pm.PackageManager
import android.content.pm.PackageManager.PackageInfoFlags
import androidx.compose.runtime.State
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
@@ -79,20 +78,20 @@ class PlatformCompatAppListModelTest {
@Test
fun getSummary() = runTest {
val summaryState = getSummaryState(APP)
val summary = getSummary(APP)
assertThat(summaryState.value).isEqualTo(PACKAGE_NAME)
assertThat(summary).isEqualTo(PACKAGE_NAME)
}
private fun getSummaryState(app: ApplicationInfo): State<String> {
lateinit var summary: State<String>
private fun getSummary(app: ApplicationInfo): String {
lateinit var summary: () -> String
composeTestRule.setContent {
summary = listModel.getSummary(
option = 0,
record = PlatformCompatAppRecord(app),
)
}
return summary
return summary()
}
private companion object {