health: Update charging control if next alarm is changed
Fixes: https://gitlab.com/LineageOS/issues/android/-/issues/8744
Change-Id: I390f7c2110add51f776f56d9de1ab690721e2e21
diff --git a/src/org/omnirom/omnilib/internal/health/ChargingControlController.java b/src/org/omnirom/omnilib/internal/health/ChargingControlController.java
index ee48d75..534276b 100644
--- a/src/org/omnirom/omnilib/internal/health/ChargingControlController.java
+++ b/src/org/omnirom/omnilib/internal/health/ChargingControlController.java
@@ -46,6 +46,7 @@
private final ContentResolver mContentResolver;
private ChargingControlNotification mChargingNotification;
private OmniRomHealthBatteryBroadcastReceiver mBattReceiver;
+ private BroadcastReceiver mAlarmBroadcastReceiver;
// Defaults
private boolean mDefaultEnabled = false;
@@ -437,6 +438,26 @@
}
}
}
+
+ if (mode == MODE_AUTO) {
+ if (mAlarmBroadcastReceiver == null) {
+ IntentFilter alarmChangedFilter = new IntentFilter(
+ android.app.AlarmManager.ACTION_NEXT_ALARM_CLOCK_CHANGED);
+ mAlarmBroadcastReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ Log.i(TAG, "Alarm changed, update charge times");
+ updateChargeControl();
+ }
+ };
+ mContext.registerReceiver(mAlarmBroadcastReceiver, alarmChangedFilter);
+ }
+ } else {
+ if (mAlarmBroadcastReceiver != null) {
+ mContext.unregisterReceiver(mAlarmBroadcastReceiver);
+ mAlarmBroadcastReceiver = null;
+ }
+ }
}
/**