From 0c1b59a83a28f2e5b0f61161f37698839c0e9a46 Mon Sep 17 00:00:00 2001 From: Song Hu Date: Mon, 1 Jun 2020 05:41:10 -0700 Subject: Return empty map when queryUsageStatsForUser returns null in UsageStatsQueryHelper#queryAppUsageStats. Bug: 157877874 Test: atest com.android.server.people.data.UsageStatsQueryHelperTest Change-Id: Ib6574d18d42f6d2bd9041b53d43abcbb1db99323 --- .../android/server/people/data/UsageStatsQueryHelper.java | 3 +++ .../server/people/data/UsageStatsQueryHelperTest.java | 15 +++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/services/people/java/com/android/server/people/data/UsageStatsQueryHelper.java b/services/people/java/com/android/server/people/data/UsageStatsQueryHelper.java index d89bbe9dd14e..d008b72c6bad 100644 --- a/services/people/java/com/android/server/people/data/UsageStatsQueryHelper.java +++ b/services/people/java/com/android/server/people/data/UsageStatsQueryHelper.java @@ -148,6 +148,9 @@ class UsageStatsQueryHelper { UsageStatsManager.INTERVAL_BEST, startTime, endTime, /* obfuscateInstantApps= */ false); Map aggregatedStats = new ArrayMap<>(); + if (stats == null) { + return aggregatedStats; + } for (UsageStats stat : stats) { String packageName = stat.getPackageName(); if (packageNameFilter.contains(packageName)) { diff --git a/services/tests/servicestests/src/com/android/server/people/data/UsageStatsQueryHelperTest.java b/services/tests/servicestests/src/com/android/server/people/data/UsageStatsQueryHelperTest.java index 30ff1196cec0..e9686071409e 100644 --- a/services/tests/servicestests/src/com/android/server/people/data/UsageStatsQueryHelperTest.java +++ b/services/tests/servicestests/src/com/android/server/people/data/UsageStatsQueryHelperTest.java @@ -18,6 +18,8 @@ package com.android.server.people.data; import static com.android.server.people.data.TestUtils.timestamp; +import static com.google.common.truth.Truth.assertThat; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -235,6 +237,19 @@ public final class UsageStatsQueryHelperTest { assertEquals(5, (long) appLaunchChooserCountCounts.get(PKG_NAME_1).getLaunchCount()); } + @Test + public void testQueryAppUsageStats_nullUsageStats() { + when(mUsageStatsManagerInternal.queryUsageStatsForUser(anyInt(), anyInt(), anyLong(), + anyLong(), anyBoolean())).thenReturn(null); + + Map appLaunchChooserCountCounts = + mHelper.queryAppUsageStats(USER_ID_PRIMARY, 90_000L, + 200_000L, + Set.of(PKG_NAME_1)); + + assertThat(appLaunchChooserCountCounts).isEmpty(); + } + private void addUsageEvents(UsageEvents.Event... events) { UsageEvents usageEvents = new UsageEvents(Arrays.asList(events), new String[]{}); when(mUsageStatsManagerInternal.queryEventsForUser(anyInt(), anyLong(), anyLong(), -- cgit v1.2.3-59-g8ed1b