summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Danning Chen <danningc@google.com> 2020-02-05 11:52:46 -0800
committer Danning Chen <danningc@google.com> 2020-02-05 11:52:50 -0800
commitb3f852127efb8fb5e8db92179c7c64b08dfa9948 (patch)
tree292c3d7ce14eb03dd2e93cb7ebfc8ac767909568
parent098584d234d6f2faa68f94ebc9f820c236bcfb4d (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.java3
-rw-r--r--services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java4
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());