Add AppPermissionPreferenceTest

Unit test for AppPermissionPreference.

Bug: 236346018
Test: Unit test
Change-Id: I83e19bd8d4d667fb6cb2be8aed85ba7f0a8f149e
This commit is contained in:
Chaohui Wang
2023-02-02 13:34:09 +08:00
parent a72e62b3a3
commit e4c9959fd7
3 changed files with 126 additions and 6 deletions

View File

@@ -27,6 +27,7 @@ import androidx.compose.runtime.livedata.observeAsState
import androidx.compose.runtime.remember
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.lifecycle.LiveData
import com.android.settings.R
import com.android.settingslib.spa.widget.preference.Preference
import com.android.settingslib.spa.widget.preference.PreferenceModel
@@ -36,13 +37,17 @@ private const val TAG = "AppPermissionPreference"
private const val EXTRA_HIDE_INFO_BUTTON = "hideInfoButton"
@Composable
fun AppPermissionPreference(app: ApplicationInfo) {
fun AppPermissionPreference(
app: ApplicationInfo,
summaryLiveData: LiveData<AppPermissionSummaryState> = rememberAppPermissionSummary(app),
) {
val context = LocalContext.current
val summaryLiveData = remember { AppPermissionSummaryLiveData(context, app) }
val summaryState = summaryLiveData.observeAsState(initial = AppPermissionSummaryState(
summary = stringResource(R.string.summary_placeholder),
enabled = false,
))
val summaryState = summaryLiveData.observeAsState(
initial = AppPermissionSummaryState(
summary = stringResource(R.string.summary_placeholder),
enabled = false,
)
)
Preference(
model = remember {
object : PreferenceModel {

View File

@@ -20,6 +20,9 @@ import android.content.Context
import android.content.pm.ApplicationInfo
import android.content.pm.PackageManager.OnPermissionsChangedListener
import android.icu.text.ListFormatter
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.platform.LocalContext
import androidx.lifecycle.LiveData
import com.android.settings.R
import com.android.settingslib.applications.PermissionsSummaryHelper
@@ -33,6 +36,12 @@ data class AppPermissionSummaryState(
val enabled: Boolean,
)
@Composable
fun rememberAppPermissionSummary(app: ApplicationInfo): AppPermissionSummaryLiveData {
val context = LocalContext.current
return remember { AppPermissionSummaryLiveData(context, app) }
}
class AppPermissionSummaryLiveData(
private val context: Context,
private val app: ApplicationInfo,