From ad6fbc96cde4ad36989daf5d3b0aff9fd55e3f5b Mon Sep 17 00:00:00 2001 From: Kasia Krejszeff Date: Mon, 6 Jan 2025 17:37:22 +0000 Subject: [PATCH] Fix an assumption that UserHandle.myUserId() always returns the main user. In some cases, e.g. in Private Space Storage Info fragment it returns the Private profile id and this was leading to a crash, see b/378471943. Bug: 378471943 Test: Manually and presubmit Flag: com.android.settings.flags.utils_return_user_handle_for_current_user_id Change-Id: I5f7bedc66ebcac8b0ae265b7189dd1821edb3cd7 --- aconfig/settings_flag_declarations.aconfig | 10 ++++++++++ src/com/android/settings/Utils.java | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/aconfig/settings_flag_declarations.aconfig b/aconfig/settings_flag_declarations.aconfig index 6eb1e0236de..b57a69d9469 100644 --- a/aconfig/settings_flag_declarations.aconfig +++ b/aconfig/settings_flag_declarations.aconfig @@ -70,3 +70,13 @@ flag { description: "Flag for catalyst service" bug: "323791114" } + +flag { + name: "utils_return_user_handle_for_current_user_id" + namespace: "profile_experiences" + description: "Don't ignore the current user id when checking for existing profiles." + bug: "378471943" + metadata { + purpose: PURPOSE_BUGFIX + } +} diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java index c8011ee0fb1..636ef1c7154 100644 --- a/src/com/android/settings/Utils.java +++ b/src/com/android/settings/Utils.java @@ -424,7 +424,8 @@ public final class Utils extends com.android.settingslib.Utils { final List userProfiles = userManager.getUserProfiles(); String umUserType = getUmUserType(userType); for (UserHandle profile : userProfiles) { - if (profile.getIdentifier() == UserHandle.myUserId()) { + if (!com.android.settings.flags.Flags.utilsReturnUserHandleForCurrentUserId() + && profile.getIdentifier() == UserHandle.myUserId()) { continue; } final UserInfo userInfo = userManager.getUserInfo(profile.getIdentifier());