From f96d14bc5560131d849a6c4643691c85cd6b4ad2 Mon Sep 17 00:00:00 2001 From: Trogel Date: Fri, 2 May 2025 10:54:24 +0000 Subject: [PATCH] health: Update charging control if next alarm is changed Fixes: https://gitlab.com/LineageOS/issues/android/-/issues/8744 Change-Id: I390f7c2110add51f776f56d9de1ab690721e2e21 --- .../health/ChargingControlController.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) 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; + } + } } /**