diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 78c3a732a47..2ddccbadcf2 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -3296,7 +3296,7 @@ - { batteryDatabaseManager.deleteAllAnomaliesBeforeTimeStamp( System.currentTimeMillis() - TimeUnit.HOURS.toMillis( - policy.dataHistoryRetainHour)); + policy.dataHistoryRetainDay)); jobFinished(params, false /* wantsReschedule */); }); @@ -70,6 +70,6 @@ public class AnomalyCleanUpJobService extends JobService { @Override public boolean onStopJob(JobParameters jobParameters) { - return true; + return false; } } diff --git a/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigReceiver.java b/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigReceiver.java index f658627b547..d81dc34efcd 100644 --- a/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigReceiver.java +++ b/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigReceiver.java @@ -54,6 +54,10 @@ public class AnomalyConfigReceiver extends BroadcastReceiver { extraIntent, PendingIntent.FLAG_UPDATE_CURRENT); uploadPendingIntent(statsManager, pendingIntent); + + if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) { + AnomalyCleanupJobService.scheduleCleanUp(context); + } } } diff --git a/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionReceiver.java b/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionReceiver.java index 0a24b001c40..4f21e115c8a 100644 --- a/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionReceiver.java +++ b/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionReceiver.java @@ -44,6 +44,5 @@ public class AnomalyDetectionReceiver extends BroadcastReceiver { bundle.putLong(KEY_ANOMALY_TIMESTAMP, System.currentTimeMillis()); AnomalyDetectionJobService.scheduleAnomalyDetection(context, intent); - AnomalyCleanUpJobService.scheduleCleanUp(context); } } diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicy.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicy.java index fcdbb3a345f..17284a0de26 100644 --- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicy.java +++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicy.java @@ -23,6 +23,7 @@ import android.util.KeyValueListParser; import android.util.Log; import java.time.Duration; +import java.util.concurrent.TimeUnit; /** * Class to store the policy for battery tips, which comes from @@ -43,7 +44,7 @@ public class BatteryTipPolicy { private static final String KEY_REDUCED_BATTERY_PERCENT = "reduced_battery_percent"; private static final String KEY_LOW_BATTERY_ENABLED = "low_battery_enabled"; private static final String KEY_LOW_BATTERY_HOUR = "low_battery_hour"; - private static final String KEY_DATA_HISTORY_RETAIN_HOUR = "data_history_retain_hour"; + private static final String KEY_DATA_HISTORY_RETAIN_DAY = "data_history_retain_day"; private static final String KEY_EXCESSIVE_BG_DRAIN_PERCENTAGE = "excessive_bg_drain_percentage"; /** @@ -145,18 +146,19 @@ public class BatteryTipPolicy { public final int lowBatteryHour; /** - * TTL hour for anomaly data stored in database + * TTL day for anomaly data stored in database * * @see Settings.Global#BATTERY_TIP_CONSTANTS - * @see #KEY_DATA_HISTORY_RETAIN_HOUR + * @see #KEY_DATA_HISTORY_RETAIN_DAY */ - public final int dataHistoryRetainHour; + public final int dataHistoryRetainDay; /** * Battery drain percentage threshold for excessive background anomaly(i.e. 10%) * * This is an additional check for excessive background, to check whether battery drain * for an app is larger than x% + * * @see Settings.Global#BATTERY_TIP_CONSTANTS * @see #KEY_EXCESSIVE_BG_DRAIN_PERCENTAGE */ @@ -193,7 +195,7 @@ public class BatteryTipPolicy { reducedBatteryPercent = mParser.getInt(KEY_REDUCED_BATTERY_PERCENT, 50); lowBatteryEnabled = mParser.getBoolean(KEY_LOW_BATTERY_ENABLED, false); lowBatteryHour = mParser.getInt(KEY_LOW_BATTERY_HOUR, 16); - dataHistoryRetainHour = mParser.getInt(KEY_DATA_HISTORY_RETAIN_HOUR, 72); + dataHistoryRetainDay = mParser.getInt(KEY_DATA_HISTORY_RETAIN_DAY, 30); excessiveBgDrainPercentage = mParser.getInt(KEY_EXCESSIVE_BG_DRAIN_PERCENTAGE, 10); } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyCleanUpJobServiceTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyCleanupJobServiceTest.java similarity index 88% rename from tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyCleanUpJobServiceTest.java rename to tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyCleanupJobServiceTest.java index 3da7bbd7be3..4682d15a71f 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyCleanUpJobServiceTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyCleanupJobServiceTest.java @@ -41,7 +41,7 @@ import java.util.concurrent.TimeUnit; @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) -public class AnomalyCleanUpJobServiceTest { +public class AnomalyCleanupJobServiceTest { @Before public void setUp() { MockitoAnnotations.initMocks(this); @@ -49,7 +49,7 @@ public class AnomalyCleanUpJobServiceTest { @Test public void testScheduleCleanUp() { - AnomalyCleanUpJobService.scheduleCleanUp(application); + AnomalyCleanupJobService.scheduleCleanUp(application); ShadowJobScheduler shadowJobScheduler = Shadows.shadowOf( application.getSystemService(JobScheduler.class)); @@ -57,7 +57,8 @@ public class AnomalyCleanUpJobServiceTest { assertEquals(1, pendingJobs.size()); JobInfo pendingJob = pendingJobs.get(0); assertThat(pendingJob.getId()).isEqualTo(R.id.job_anomaly_clean_up); - assertThat(pendingJob.getMinLatencyMillis()).isEqualTo(TimeUnit.DAYS.toMillis(1)); + assertThat(pendingJob.getIntervalMillis()).isEqualTo(TimeUnit.DAYS.toMillis(1)); assertThat(pendingJob.isRequireDeviceIdle()).isTrue(); + assertThat(pendingJob.isRequireCharging()).isTrue(); } } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicyTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicyTest.java index abf04cd1440..188fe77b117 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicyTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicyTest.java @@ -50,7 +50,7 @@ public class BatteryTipPolicyTest { + ",reduced_battery_percent=30" + ",low_battery_enabled=false" + ",low_battery_hour=10" - + ",data_history_retain_hour=24" + + ",data_history_retain_day=24" + ",excessive_bg_drain_percentage=25"; private Context mContext; @@ -78,7 +78,7 @@ public class BatteryTipPolicyTest { assertThat(batteryTipPolicy.reducedBatteryPercent).isEqualTo(30); assertThat(batteryTipPolicy.lowBatteryEnabled).isFalse(); assertThat(batteryTipPolicy.lowBatteryHour).isEqualTo(10); - assertThat(batteryTipPolicy.dataHistoryRetainHour).isEqualTo(24); + assertThat(batteryTipPolicy.dataHistoryRetainDay).isEqualTo(24); assertThat(batteryTipPolicy.excessiveBgDrainPercentage).isEqualTo(25); } @@ -101,7 +101,7 @@ public class BatteryTipPolicyTest { assertThat(batteryTipPolicy.reducedBatteryPercent).isEqualTo(50); assertThat(batteryTipPolicy.lowBatteryEnabled).isFalse(); assertThat(batteryTipPolicy.lowBatteryHour).isEqualTo(16); - assertThat(batteryTipPolicy.dataHistoryRetainHour).isEqualTo(72); + assertThat(batteryTipPolicy.dataHistoryRetainDay).isEqualTo(30); assertThat(batteryTipPolicy.excessiveBgDrainPercentage).isEqualTo(10); } }