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
This commit is contained in:
Manish Singh
2023-12-24 13:25:39 +00:00
parent 06fa244255
commit dbb2337ce0

View File

@@ -17,6 +17,8 @@
package com.android.settings.dashboard.profileselector; 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.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.ActivityManager;
import android.app.admin.DevicePolicyManager; import android.app.admin.DevicePolicyManager;
@@ -26,6 +28,7 @@ import android.content.pm.UserInfo;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.UserHandle; import android.os.UserHandle;
import android.os.UserManager; import android.os.UserManager;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@@ -46,6 +49,7 @@ import java.util.Objects;
* Adapter for a spinner that shows a list of users. * Adapter for a spinner that shows a list of users.
*/ */
public class UserAdapter extends BaseAdapter { public class UserAdapter extends BaseAdapter {
private static final String TAG = "UserAdapter";
/** Holder for user details */ /** Holder for user details */
public static class UserDetails { public static class UserDetails {
@@ -79,8 +83,17 @@ public class UserAdapter extends BaseAdapter {
return resources.getString(PERSONAL_CATEGORY_HEADER, return resources.getString(PERSONAL_CATEGORY_HEADER,
() -> context.getString( () -> context.getString(
com.android.settingslib.R.string.category_personal)); 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));
} }
} }