From 74b15db41f7f2fc1c5a6a1ee066bf35128bb1126 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Tue, 1 May 2018 11:21:31 -0700 Subject: [PATCH] Extend Location setting to show location usage within 24 hours. Bug: 79089524 Test: manual, unit test. Change-Id: I0058479a3b8e139c68c688e6e14f837a335bba6f Merged-In: I0058479a3b8e139c68c688e6e14f837a335bba6f --- .../settingslib/location/RecentLocationApps.java | 4 +++- .../settingslib/location/RecentLocationAppsTest.java | 12 ++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/SettingsLib/src/com/android/settingslib/location/RecentLocationApps.java b/packages/SettingsLib/src/com/android/settingslib/location/RecentLocationApps.java index 6025d68a6d0ed..13364aba00fd5 100644 --- a/packages/SettingsLib/src/com/android/settingslib/location/RecentLocationApps.java +++ b/packages/SettingsLib/src/com/android/settingslib/location/RecentLocationApps.java @@ -26,6 +26,7 @@ import android.os.Process; import android.os.UserHandle; import android.os.UserManager; import android.support.annotation.VisibleForTesting; +import android.text.format.DateUtils; import android.util.IconDrawableFactory; import android.util.Log; import java.util.ArrayList; @@ -41,7 +42,8 @@ public class RecentLocationApps { @VisibleForTesting static final String ANDROID_SYSTEM_PACKAGE_NAME = "android"; - private static final int RECENT_TIME_INTERVAL_MILLIS = 15 * 60 * 1000; + // Keep last 24 hours of location app information. + private static final long RECENT_TIME_INTERVAL_MILLIS = DateUtils.DAY_IN_MILLIS; @VisibleForTesting static final int[] LOCATION_OPS = new int[] { diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/location/RecentLocationAppsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/location/RecentLocationAppsTest.java index 5e0fcefc52098..8a54aeec6d790 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/location/RecentLocationAppsTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/location/RecentLocationAppsTest.java @@ -37,8 +37,8 @@ public class RecentLocationAppsTest { // App running duration in milliseconds private static final int DURATION = 10; private static final long ONE_MIN_AGO = NOW - TimeUnit.MINUTES.toMillis(1); - private static final long FOURTEEN_MIN_AGO = NOW - TimeUnit.MINUTES.toMillis(14); - private static final long TWENTY_MIN_AGO = NOW - TimeUnit.MINUTES.toMillis(20); + private static final long TWENTY_THREE_HOURS_AGO = NOW - TimeUnit.HOURS.toMillis(23); + private static final long TWO_DAYS_AGO = NOW - TimeUnit.DAYS.toMillis(2); private static final String[] TEST_PACKAGE_NAMES = {"package_1MinAgo", "package_14MinAgo", "package_20MinAgo"}; @@ -74,7 +74,7 @@ public class RecentLocationAppsTest { when(mUserManager.getUserProfiles()) .thenReturn(Collections.singletonList(new UserHandle(mTestUserId))); - long[] testRequestTime = {ONE_MIN_AGO, FOURTEEN_MIN_AGO, TWENTY_MIN_AGO}; + long[] testRequestTime = {ONE_MIN_AGO, TWENTY_THREE_HOURS_AGO, TWO_DAYS_AGO}; List appOps = createTestPackageOpsList(TEST_PACKAGE_NAMES, testRequestTime); when(mAppOpsManager.getPackagesForOps(RecentLocationApps.LOCATION_OPS)).thenReturn(appOps); mockTestApplicationInfos(mTestUserId, TEST_PACKAGE_NAMES); @@ -91,7 +91,7 @@ public class RecentLocationAppsTest { assertThat(requests.get(0).packageName).isEqualTo(TEST_PACKAGE_NAMES[0]); assertThat(requests.get(0).requestFinishTime).isEqualTo(ONE_MIN_AGO + DURATION); assertThat(requests.get(1).packageName).isEqualTo(TEST_PACKAGE_NAMES[1]); - assertThat(requests.get(1).requestFinishTime).isEqualTo(FOURTEEN_MIN_AGO + DURATION); + assertThat(requests.get(1).requestFinishTime).isEqualTo(TWENTY_THREE_HOURS_AGO + DURATION); } @Test @@ -105,7 +105,7 @@ public class RecentLocationAppsTest { ONE_MIN_AGO, DURATION); long[] testRequestTime = - {ONE_MIN_AGO, FOURTEEN_MIN_AGO, TWENTY_MIN_AGO, ONE_MIN_AGO}; + {ONE_MIN_AGO, TWENTY_THREE_HOURS_AGO, TWO_DAYS_AGO, ONE_MIN_AGO}; List appOps = createTestPackageOpsList(TEST_PACKAGE_NAMES, testRequestTime); appOps.add(androidSystemPackageOps); when(mAppOpsManager.getPackagesForOps(RecentLocationApps.LOCATION_OPS)).thenReturn(appOps); @@ -119,7 +119,7 @@ public class RecentLocationAppsTest { assertThat(requests.get(0).packageName).isEqualTo(TEST_PACKAGE_NAMES[0]); assertThat(requests.get(0).requestFinishTime).isEqualTo(ONE_MIN_AGO + DURATION); assertThat(requests.get(1).packageName).isEqualTo(TEST_PACKAGE_NAMES[1]); - assertThat(requests.get(1).requestFinishTime).isEqualTo(FOURTEEN_MIN_AGO + DURATION); + assertThat(requests.get(1).requestFinishTime).isEqualTo(TWENTY_THREE_HOURS_AGO + DURATION); } private void mockTestApplicationInfos(int userId, String... packageNameList)