Display App installed in other user in All Apps
Only for admin user. Also clean up unused getInstallationStatus(). Fix: 277299765 Test: Manually with All Apps when multiple users is on Test: Unit test Change-Id: I4de681c101a605e3517dcd8765bf7a95d1b76417
This commit is contained in:
@@ -986,17 +986,6 @@ public final class Utils extends com.android.settingslib.Utils {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the resource id to represent the install status for an app
|
||||
*/
|
||||
@StringRes
|
||||
public static int getInstallationStatus(ApplicationInfo info) {
|
||||
if ((info.flags & ApplicationInfo.FLAG_INSTALLED) == 0) {
|
||||
return R.string.not_installed;
|
||||
}
|
||||
return info.enabled ? R.string.installed : R.string.disabled;
|
||||
}
|
||||
|
||||
private static boolean isVolumeValid(VolumeInfo volume) {
|
||||
return (volume != null) && (volume.getType() == VolumeInfo.TYPE_PRIVATE)
|
||||
&& volume.isMountedReadable();
|
||||
|
@@ -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 -> ""
|
||||
}
|
||||
}
|
||||
|
@@ -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) }
|
||||
})
|
||||
}
|
||||
|
@@ -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,
|
||||
)
|
||||
}
|
||||
|
@@ -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(),
|
||||
)
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user