From 1e565843dc42cd77af04776715cbf725bf988717 Mon Sep 17 00:00:00 2001 From: Yasin Kilicdere Date: Mon, 25 Oct 2021 13:42:00 +0000 Subject: [PATCH] Fixed getCurrentUserName() method always returning "Owner" instead of current. Method was returning name of the user in index 0. Now it finds the current foreground user and returns its name. Bug: 203422515 Test: atest com.android.systemui.statusbar.policy.UserSwitcherControllerTest#test_getCurrentUserName_shouldReturnNameOfTheCurrentUser Change-Id: I8b94fd1394227e6f1858d6903837f7446a6771e1 --- .../policy/UserSwitcherController.java | 2 +- .../policy/UserSwitcherControllerTest.kt | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java index dadc01664b4d0..323c6ceba4e6a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java @@ -651,7 +651,7 @@ public class UserSwitcherController implements Dumpable { /** Returns the name of the current user of the phone. */ public String getCurrentUserName() { if (mUsers.isEmpty()) return null; - UserRecord item = mUsers.get(0); + UserRecord item = mUsers.stream().filter(x -> x.isCurrent).findFirst().orElse(null); if (item == null || item.info == null) return null; if (item.isGuest) return mContext.getString( com.android.settingslib.R.string.guest_nickname); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/UserSwitcherControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/UserSwitcherControllerTest.kt index a846b06b78b20..fbc28987c71b1 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/UserSwitcherControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/UserSwitcherControllerTest.kt @@ -272,4 +272,22 @@ class UserSwitcherControllerTest : SysuiTestCase() { assertEquals(1, uiEventLogger.numLogs()) assertEquals(QSUserSwitcherEvent.QS_USER_GUEST_CONTINUE.id, uiEventLogger.eventId(0)) } + + @Test + fun test_getCurrentUserName_shouldReturnNameOfTheCurrentUser() { + fun addUser(id: Int, name: String, isCurrent: Boolean) { + userSwitcherController.users.add(UserSwitcherController.UserRecord( + UserInfo(id, name, 0), + null, false, isCurrent, false, + false, false + )) + } + val bgUserName = "background_user" + val fgUserName = "foreground_user" + + addUser(1, bgUserName, false) + addUser(2, fgUserName, true) + + assertEquals(fgUserName, userSwitcherController.currentUserName) + } }