From dbb2337ce02832162e10d7d709ac354ebe45d3b7 Mon Sep 17 00:00:00 2001 From: Manish Singh Date: Sun, 24 Dec 2023 13:25:39 +0000 Subject: [PATCH] Fix title for work and private profiles For some languages UserManager#getBadgedLabelForUser does not return the correct string for the context. Bug: 315082416 Test: manual Change-Id: I376d1ad4eafd1ba5f3db2c32c9fddb81bbde2dd2 --- .../dashboard/profileselector/UserAdapter.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/dashboard/profileselector/UserAdapter.java b/src/com/android/settings/dashboard/profileselector/UserAdapter.java index fa07ebc2c0f..c9e49f17558 100644 --- a/src/com/android/settings/dashboard/profileselector/UserAdapter.java +++ b/src/com/android/settings/dashboard/profileselector/UserAdapter.java @@ -17,6 +17,8 @@ package com.android.settings.dashboard.profileselector; import static android.app.admin.DevicePolicyResources.Strings.Settings.PERSONAL_CATEGORY_HEADER; +import static android.app.admin.DevicePolicyResources.Strings.Settings.PRIVATE_CATEGORY_HEADER; +import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_CATEGORY_HEADER; import android.app.ActivityManager; import android.app.admin.DevicePolicyManager; @@ -26,6 +28,7 @@ import android.content.pm.UserInfo; import android.graphics.drawable.Drawable; import android.os.UserHandle; import android.os.UserManager; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -46,6 +49,7 @@ import java.util.Objects; * Adapter for a spinner that shows a list of users. */ public class UserAdapter extends BaseAdapter { + private static final String TAG = "UserAdapter"; /** Holder for user details */ public static class UserDetails { @@ -79,8 +83,17 @@ public class UserAdapter extends BaseAdapter { return resources.getString(PERSONAL_CATEGORY_HEADER, () -> context.getString( com.android.settingslib.R.string.category_personal)); + } else if (mUserManager.isManagedProfile(userId)) { + return resources.getString(WORK_CATEGORY_HEADER, + () -> context.getString(com.android.settingslib.R.string.category_work)); + } else if (android.os.Flags.allowPrivateProfile() + && mUserManager.getUserInfo(userId).isPrivateProfile()) { + return resources.getString(PRIVATE_CATEGORY_HEADER, + () -> context.getString(com.android.settingslib.R.string.category_private)); } - return (String) mUserManager.getBadgedLabelForUser(/* label= */ "", mUserHandle); + Log.w(TAG, "title requested for unexpected user id " + userId); + return resources.getString(PERSONAL_CATEGORY_HEADER, + () -> context.getString(com.android.settingslib.R.string.category_personal)); } }