diff options
| author | 2020-02-05 11:52:46 -0800 | |
|---|---|---|
| committer | 2020-02-05 11:52:50 -0800 | |
| commit | b3f852127efb8fb5e8db92179c7c64b08dfa9948 (patch) | |
| tree | 292c3d7ce14eb03dd2e93cb7ebfc8ac767909568 | |
| parent | 098584d234d6f2faa68f94ebc9f820c236bcfb4d (diff) | |
Fix the NPE when reading the call log or SMS if a device has multiple user profiles
Change-Id: Iec6485653367f2f005c2b7e17f23ab611e39e13b
Bug: 148918224
Test: atest com.android.server.people.data.DataManagerTest
| -rw-r--r-- | services/people/java/com/android/server/people/data/DataManager.java | 3 | ||||
| -rw-r--r-- | services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java | 4 |
2 files changed, 6 insertions, 1 deletions
diff --git a/services/people/java/com/android/server/people/data/DataManager.java b/services/people/java/com/android/server/people/data/DataManager.java index 79503f797318..fb13b36bd084 100644 --- a/services/people/java/com/android/server/people/data/DataManager.java +++ b/services/people/java/com/android/server/people/data/DataManager.java @@ -299,7 +299,8 @@ public class DataManager { private void forAllUnlockedUsers(Consumer<UserData> consumer) { for (int i = 0; i < mUserDataArray.size(); i++) { - UserData userData = mUserDataArray.get(i); + int userId = mUserDataArray.keyAt(i); + UserData userData = mUserDataArray.get(userId); if (userData.isUnlocked()) { consumer.accept(userData); } diff --git a/services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java b/services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java index 62ea425a54a7..db0afae4fc19 100644 --- a/services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java @@ -263,6 +263,7 @@ public final class DataManagerTest { @Test public void testContactsChanged() { mDataManager.onUserUnlocked(USER_ID_PRIMARY); + mDataManager.onUserUnlocked(USER_ID_SECONDARY); ShortcutInfo shortcut = buildShortcutInfo(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID, buildPerson()); @@ -289,6 +290,7 @@ public final class DataManagerTest { @Test public void testNotificationListener() { mDataManager.onUserUnlocked(USER_ID_PRIMARY); + mDataManager.onUserUnlocked(USER_ID_SECONDARY); ShortcutInfo shortcut = buildShortcutInfo(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID, buildPerson()); @@ -341,6 +343,7 @@ public final class DataManagerTest { @Test public void testCallLogContentObserver() { mDataManager.onUserUnlocked(USER_ID_PRIMARY); + mDataManager.onUserUnlocked(USER_ID_SECONDARY); ShortcutInfo shortcut = buildShortcutInfo(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID, buildPerson()); @@ -368,6 +371,7 @@ public final class DataManagerTest { @Test public void testMmsSmsContentObserver() { mDataManager.onUserUnlocked(USER_ID_PRIMARY); + mDataManager.onUserUnlocked(USER_ID_SECONDARY); ShortcutInfo shortcut = buildShortcutInfo(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID, buildPerson()); |