Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0c1b59a8 authored by Song Hu's avatar Song Hu
Browse files

Return empty map when queryUsageStatsForUser returns null in...

Return empty map when queryUsageStatsForUser returns null in UsageStatsQueryHelper#queryAppUsageStats.

Bug: 157877874
Test: atest com.android.server.people.data.UsageStatsQueryHelperTest
Change-Id: Ib6574d18d42f6d2bd9041b53d43abcbb1db99323
parent 4f5af837
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -148,6 +148,9 @@ class UsageStatsQueryHelper {
                UsageStatsManager.INTERVAL_BEST, startTime, endTime,
                /* obfuscateInstantApps= */ false);
        Map<String, AppUsageStatsData> aggregatedStats = new ArrayMap<>();
        if (stats == null) {
            return aggregatedStats;
        }
        for (UsageStats stat : stats) {
            String packageName = stat.getPackageName();
            if (packageNameFilter.contains(packageName)) {
+15 −0
Original line number Diff line number Diff line
@@ -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<String, AppUsageStatsData> 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(),