Merge "Recheck the scedule job when the device is full charged and add more logs" into udc-qpr-dev am: 378ad24aac
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/24673967
Change-Id: I06b8e72ab87c673ffde51cfbc4a93327a770f4c2
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java
index ed5f182..952b83f 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java
@@ -120,6 +120,7 @@
mFetchBatteryUsageData = true;
BatteryUsageDataLoader.enqueueWork(context, /*isFullChargeStart=*/ true);
+ BootBroadcastReceiver.invokeJobRecheck(context);
}
private void sendBatteryEventData(Context context, BatteryEventType batteryEventType) {
diff --git a/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobManager.java b/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobManager.java
index 8c0e66c..43cd69d 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobManager.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobManager.java
@@ -68,6 +68,8 @@
/** Schedules the next alarm job if it is available. */
public void refreshJob(final boolean fromBoot) {
if (mAlarmManager == null) {
+ BatteryUsageLogUtils.writeLog(mContext, Action.SCHEDULE_JOB,
+ "cannot schedule next alarm job due to AlarmManager is null");
Log.e(TAG, "cannot schedule next alarm job");
return;
}
@@ -80,8 +82,8 @@
AlarmManager.RTC_WAKEUP, triggerAtMillis, pendingIntent);
final String utcToLocalTime = ConvertUtils.utcToLocalTimeForLogging(triggerAtMillis);
- BatteryUsageLogUtils.writeLog(
- mContext, Action.SCHEDULE_JOB, "triggerTime=" + utcToLocalTime);
+ BatteryUsageLogUtils.writeLog(mContext, Action.SCHEDULE_JOB,
+ String.format("triggerTime=%s, fromBoot=%b", utcToLocalTime, fromBoot));
Log.d(TAG, "schedule next alarm job at " + utcToLocalTime);
}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java b/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java
index 2371a19..dccca43 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java
@@ -33,12 +33,23 @@
@Override
public void onReceive(Context context, Intent intent) {
+ try {
+ loadDataAndRefreshJob(context, intent);
+ } catch (Exception e) {
+ BatteryUsageLogUtils.writeLog(context, Action.SCHEDULE_JOB,
+ String.format("loadDataAndRefreshJob() failed: %s", e));
+ }
+ }
+
+ private static void loadDataAndRefreshJob(Context context, Intent intent) {
final String action = intent == null ? "" : intent.getAction();
if (!ACTION_PERIODIC_JOB_UPDATE.equals(action)) {
Log.w(TAG, "receive unexpected action=" + action);
return;
}
if (DatabaseUtils.isWorkProfile(context)) {
+ BatteryUsageLogUtils.writeLog(context, Action.SCHEDULE_JOB,
+ "do not refresh job for work profile");
Log.w(TAG, "do not refresh job for work profile action=" + action);
return;
}