summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanning Chen <danningc@google.com>2020-03-05 16:28:11 -0800
committerDanning Chen <danningc@google.com>2020-03-05 16:38:25 -0800
commit18fecf78d38c4ba2a1e3222f3e101466aac268b6 (patch)
tree049b2d3c1f65e5d0a06c8ee6b653117fc968573e
parentb7050a36afd5cfcfb6f471fa273742300b83264a (diff)
Fix the bug that queries UsageStatsService for locked users
In addition to the bug fix, this also changes the user lifecycle callbacks People Service is using: 1) onUserUnlocking() -> onUserUnlocked() 2) onUserStopped() -> onUserStopping() The user lifecycle callback changes are based on a recent callback API change in ag/10396717. This change will make the service run safer: it avoids performing queries on locked users. Change-Id: I4d0ebdb80f2181b5eb5a636d345c53a01c7df210 Test: Manual test Test: atest com.android.server.people.data.DataManagerTest Bug: 150882079
-rw-r--r--services/people/java/com/android/server/people/PeopleService.java8
-rw-r--r--services/people/java/com/android/server/people/data/DataManager.java6
-rw-r--r--services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java2
3 files changed, 8 insertions, 8 deletions
diff --git a/services/people/java/com/android/server/people/PeopleService.java b/services/people/java/com/android/server/people/PeopleService.java
index 983a639776f6..37bf66491882 100644
--- a/services/people/java/com/android/server/people/PeopleService.java
+++ b/services/people/java/com/android/server/people/PeopleService.java
@@ -72,13 +72,13 @@ public class PeopleService extends SystemService {
}
@Override
- public void onUserUnlocking(@NonNull TargetUser targetUser) {
- mDataManager.onUserUnlocked(targetUser.getUserIdentifier());
+ public void onUserUnlocked(@NonNull TargetUser user) {
+ mDataManager.onUserUnlocked(user.getUserIdentifier());
}
@Override
- public void onUserStopping(@NonNull TargetUser targetUser) {
- mDataManager.onUserStopped(targetUser.getUserIdentifier());
+ public void onUserStopping(@NonNull TargetUser user) {
+ mDataManager.onUserStopping(user.getUserIdentifier());
}
@VisibleForTesting
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 e4ce6bafff31..4e0afc525383 100644
--- a/services/people/java/com/android/server/people/data/DataManager.java
+++ b/services/people/java/com/android/server/people/data/DataManager.java
@@ -198,13 +198,13 @@ public class DataManager {
DataMaintenanceService.scheduleJob(mContext, userId);
}
- /** This method is called when a user is stopped. */
- public void onUserStopped(int userId) {
+ /** This method is called when a user is stopping. */
+ public void onUserStopping(int userId) {
if (mUserDataArray.indexOfKey(userId) >= 0) {
mUserDataArray.get(userId).setUserStopped();
}
if (mUsageStatsQueryFutures.indexOfKey(userId) >= 0) {
- mUsageStatsQueryFutures.valueAt(userId).cancel(true);
+ mUsageStatsQueryFutures.get(userId).cancel(true);
}
if (mBroadcastReceivers.indexOfKey(userId) >= 0) {
mContext.unregisterReceiver(mBroadcastReceivers.get(userId));
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 624b67ccda85..a4d63ac8a564 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
@@ -269,7 +269,7 @@ public final class DataManagerTest {
assertEquals(1, conversations.size());
assertEquals("sc_1", conversations.get(0).getShortcutId());
- mDataManager.onUserStopped(USER_ID_PRIMARY);
+ mDataManager.onUserStopping(USER_ID_PRIMARY);
conversations = getConversationsInPrimary();
assertTrue(conversations.isEmpty());
}