From 2db6819b8ec621e27be9c6a6a6014485137f2e49 Mon Sep 17 00:00:00 2001 From: Chaohui Wang Date: Thu, 8 Sep 2022 15:56:05 +0800 Subject: [PATCH] Support primary user only AppListPage Some App List does not distinguish between multiple profiles. In these case, shows the App List for the primary user only. Bug: 235727273 Test: Manual with Settings App Change-Id: Ic8f770b92bc31fb851f49bf8117b4a29cc8459ef --- .../spaprivileged/template/app/AppListPage.kt | 3 ++- .../spaprivileged/template/common/WorkProfilePager.kt | 9 +++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppListPage.kt b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppListPage.kt index 67fa278278431..d537ec258cade 100644 --- a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppListPage.kt +++ b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppListPage.kt @@ -44,6 +44,7 @@ import com.android.settingslib.spaprivileged.template.common.WorkProfilePager fun AppListPage( title: String, listModel: AppListModel, + primaryUserOnly: Boolean = false, appItem: @Composable (itemState: AppListItemModel) -> Unit, ) { val showSystem = rememberSaveable { mutableStateOf(false) } @@ -55,7 +56,7 @@ fun AppListPage( }, ) { paddingValues -> Spacer(Modifier.padding(paddingValues)) - WorkProfilePager { userInfo -> + WorkProfilePager(primaryUserOnly) { userInfo -> Column(Modifier.fillMaxSize()) { val options = remember { listModel.getSpinnerOptions() } val selectedOption = rememberSaveable { mutableStateOf(0) } diff --git a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/common/WorkProfilePager.kt b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/common/WorkProfilePager.kt index aa5ccf146d47e..a76c4385b69ed 100644 --- a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/common/WorkProfilePager.kt +++ b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/common/WorkProfilePager.kt @@ -26,11 +26,16 @@ import com.android.settingslib.spa.widget.scaffold.SettingsPager import com.android.settingslib.spaprivileged.model.enterprise.EnterpriseRepository @Composable -fun WorkProfilePager(content: @Composable (userInfo: UserInfo) -> Unit) { +fun WorkProfilePager( + primaryUserOnly: Boolean = false, + content: @Composable (userInfo: UserInfo) -> Unit, +) { val context = LocalContext.current val profiles = remember { val userManager = checkNotNull(context.getSystemService(UserManager::class.java)) - userManager.getProfiles(UserHandle.myUserId()) + userManager.getProfiles(UserHandle.myUserId()).filter { userInfo -> + !primaryUserOnly || userInfo.isPrimary + } } val titles = remember { val enterpriseRepository = EnterpriseRepository(context)