Merge "Display App installed in other user in All Apps" into udc-dev am: 4c1e924442 am: 03e8ebc4dc

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/22546422

Change-Id: Ifa44a57f688fcbac11a4c77942a74d1cabc395ef
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Chaohui Wang
2023-04-12 06:04:32 +00:00
committed by Automerger Merge Worker
9 changed files with 58 additions and 46 deletions

View File

@@ -38,6 +38,7 @@ import com.android.settingslib.spa.widget.preference.PreferenceModel
import com.android.settingslib.spa.widget.ui.SpinnerOption
import com.android.settingslib.spaprivileged.model.app.AppListModel
import com.android.settingslib.spaprivileged.model.app.AppRecord
import com.android.settingslib.spaprivileged.model.app.installed
import com.android.settingslib.spaprivileged.template.app.AppList
import com.android.settingslib.spaprivileged.template.app.AppListInput
import com.android.settingslib.spaprivileged.template.app.AppListItem
@@ -75,6 +76,7 @@ fun AllAppListPage(
title = stringResource(R.string.all_apps),
listModel = rememberContext(::AllAppListModel),
showInstantApps = true,
matchAnyUserForAdmin = true,
moreOptions = { ResetAppPreferences(resetAppDialogPresenter::open) },
appList = appList,
)
@@ -133,8 +135,13 @@ class AllAppListModel(
return remember {
derivedStateOf {
storageSummary.value +
when (isDisabled(record)) {
true -> System.lineSeparator() + context.getString(R.string.disabled)
when {
!record.app.installed -> {
System.lineSeparator() + context.getString(R.string.not_installed)
}
isDisabled(record) -> {
System.lineSeparator() + context.getString(R.string.disabled)
}
else -> ""
}
}

View File

@@ -30,8 +30,10 @@ import com.android.settings.notification.app.AppNotificationSettings
import com.android.settings.spa.notification.AppNotificationRepository
import com.android.settings.spa.notification.IAppNotificationRepository
import com.android.settingslib.spa.framework.compose.rememberContext
import com.android.settingslib.spa.framework.compose.stateOf
import com.android.settingslib.spa.widget.preference.Preference
import com.android.settingslib.spa.widget.preference.PreferenceModel
import com.android.settingslib.spaprivileged.model.app.installed
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.flow.flowOn
@@ -53,6 +55,7 @@ fun AppNotificationPreference(
override val summary = summaryFlow.collectAsStateWithLifecycle(
initialValue = stringResource(R.string.summary_placeholder)
)
override val enabled = stateOf(app.installed)
override val onClick = { navigateToAppNotificationSettings(context, app) }
})
}

View File

@@ -141,7 +141,9 @@ class PackageInfoPresenter(
private fun getPackageInfo() =
packageManagers.getPackageInfoAsUser(
packageName = packageName,
flags = PackageManager.MATCH_DISABLED_COMPONENTS or PackageManager.GET_PERMISSIONS,
flags = PackageManager.MATCH_ANY_USER or
PackageManager.MATCH_DISABLED_COMPONENTS or
PackageManager.GET_PERMISSIONS,
userId = userId,
)
}

View File

@@ -28,6 +28,7 @@ import androidx.compose.runtime.livedata.observeAsState
import com.android.settings.R
import com.android.settingslib.spaprivileged.model.app.AppOpsController
import com.android.settingslib.spaprivileged.model.app.AppRecord
import com.android.settingslib.spaprivileged.model.app.installed
import com.android.settingslib.spaprivileged.model.app.userId
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListModel
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider
@@ -67,11 +68,12 @@ class PictureInPictureListModel(private val context: Context) :
}
override fun transformItem(app: ApplicationInfo): PictureInPictureRecord {
val packageInfo =
packageManager.getPackageInfoAsUser(app.packageName, GET_ACTIVITIES_FLAGS, app.userId)
return createPictureInPictureRecord(
app = app,
isSupport = packageInfo.supportsPictureInPicture(),
isSupport = app.installed &&
packageManager
.getPackageInfoAsUser(app.packageName, GET_ACTIVITIES_FLAGS, app.userId)
.supportsPictureInPicture(),
)
}