diff --git a/lineage/lib/main/java/org/lineageos/platform/internal/health/ChargingControlController.java b/lineage/lib/main/java/org/lineageos/platform/internal/health/ChargingControlController.java index 50e831ef..5164b2d1 100644 --- a/lineage/lib/main/java/org/lineageos/platform/internal/health/ChargingControlController.java +++ b/lineage/lib/main/java/org/lineageos/platform/internal/health/ChargingControlController.java @@ -44,6 +44,7 @@ public class ChargingControlController extends LineageHealthFeature { private final ContentResolver mContentResolver; private ChargingControlNotification mChargingNotification; private LineageHealthBatteryBroadcastReceiver mBattReceiver; + private BroadcastReceiver mAlarmBroadcastReceiver; // Defaults private boolean mDefaultEnabled = false; @@ -439,6 +440,26 @@ public class ChargingControlController extends LineageHealthFeature { } } } + + 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; + } + } } /**