From 36459fda535006eda62c5b4ad82f3113f3b6df29 Mon Sep 17 00:00:00 2001 From: Luofan Chen Date: Fri, 7 Jul 2023 17:11:31 +0800 Subject: [PATCH 1/2] ChargingControl: Return early if lineage health HAL is not found Change-Id: I2616224167a4fe5e59bdf01c5e124744bb8b2d51 --- .../health/ChargingControlController.java | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) 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 6b315531..82bfbca6 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 @@ -64,15 +64,15 @@ import static lineageos.health.HealthInterface.MODE_LIMIT; public class ChargingControlController extends LineageHealthFeature { private final IChargingControl mChargingControl; private final ContentResolver mContentResolver; - private final ChargingControlNotification mChargingNotification; + private ChargingControlNotification mChargingNotification = null; private LineageHealthBatteryBroadcastReceiver mBattReceiver; // Defaults - private final boolean mDefaultEnabled; - private final int mDefaultMode; - private final int mDefaultLimit; - private final int mDefaultStartTime; - private final int mDefaultTargetTime; + private boolean mDefaultEnabled = false; + private int mDefaultMode = 0; + private int mDefaultLimit = 0; + private int mDefaultStartTime = 0; + private int mDefaultTargetTime = 0; // User configs private boolean mConfigEnabled = false; @@ -101,11 +101,11 @@ public class ChargingControlController extends LineageHealthFeature { private long mSavedAlarmTime = 0; private long mSavedTargetTime = 0; private boolean mIsControlCancelledOnce = false; - private final boolean mIsChargingToggleSupported; - private final boolean mIsChargingBypassSupported; - private final boolean mIsChargingDeadlineSupported; - private final int mChargingTimeMargin; - private final int mChargingLimitMargin; + private boolean mIsChargingToggleSupported = false; + private boolean mIsChargingBypassSupported = false; + private boolean mIsChargingDeadlineSupported = false; + private int mChargingTimeMargin = 0; + private int mChargingLimitMargin = 0; private static final DateTimeFormatter mFormatter = DateTimeFormatter.ofLocalizedTime(SHORT); private static final SimpleDateFormat mDateFormatter = new SimpleDateFormat("hh:mm:ss a"); @@ -146,6 +146,7 @@ public class ChargingControlController extends LineageHealthFeature { if (mChargingControl == null) { Log.i(TAG, "Lineage Health HAL not found"); + return; } mChargingNotification = new ChargingControlNotification(context); -- GitLab From c68e72f9ffdd4bb0f1ce0322625cccbb622fa6ad Mon Sep 17 00:00:00 2001 From: Luofan Chen Date: Tue, 11 Jul 2023 01:43:37 +0800 Subject: [PATCH 2/2] ChargingControl: Drop default values for initially zero variables Java generally sets the default values for fields to zero or null. Change-Id: I7a993dfc70476ed5beb649cae42de2b125b897b9 --- .../health/ChargingControlController.java | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) 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 82bfbca6..0e6995a3 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 @@ -64,22 +64,22 @@ import static lineageos.health.HealthInterface.MODE_LIMIT; public class ChargingControlController extends LineageHealthFeature { private final IChargingControl mChargingControl; private final ContentResolver mContentResolver; - private ChargingControlNotification mChargingNotification = null; + private ChargingControlNotification mChargingNotification; private LineageHealthBatteryBroadcastReceiver mBattReceiver; // Defaults private boolean mDefaultEnabled = false; - private int mDefaultMode = 0; - private int mDefaultLimit = 0; - private int mDefaultStartTime = 0; - private int mDefaultTargetTime = 0; + private int mDefaultMode; + private int mDefaultLimit; + private int mDefaultStartTime; + private int mDefaultTargetTime; // User configs - private boolean mConfigEnabled = false; + private boolean mConfigEnabled; + private int mConfigStartTime; + private int mConfigTargetTime; private int mConfigMode = MODE_NONE; private int mConfigLimit = 100; - private int mConfigStartTime = 0; - private int mConfigTargetTime = 0; // Settings uris private final Uri MODE_URI = LineageSettings.System.getUriFor( @@ -94,18 +94,18 @@ public class ChargingControlController extends LineageHealthFeature { LineageSettings.System.CHARGING_CONTROL_TARGET_TIME); // Internal state - private float mBatteryPct = 0; - private boolean mIsPowerConnected = false; - private int mChargingStopReason = 0; - private long mEstimatedFullTime = 0; - private long mSavedAlarmTime = 0; - private long mSavedTargetTime = 0; - private boolean mIsControlCancelledOnce = false; - private boolean mIsChargingToggleSupported = false; - private boolean mIsChargingBypassSupported = false; - private boolean mIsChargingDeadlineSupported = false; - private int mChargingTimeMargin = 0; - private int mChargingLimitMargin = 0; + private float mBatteryPct; + private long mEstimatedFullTime; + private long mSavedAlarmTime; + private long mSavedTargetTime; + private boolean mIsPowerConnected; + private boolean mIsControlCancelledOnce; + private boolean mIsChargingToggleSupported; + private boolean mIsChargingBypassSupported; + private boolean mIsChargingDeadlineSupported; + private int mChargingStopReason; + private int mChargingTimeMargin; + private int mChargingLimitMargin; private static final DateTimeFormatter mFormatter = DateTimeFormatter.ofLocalizedTime(SHORT); private static final SimpleDateFormat mDateFormatter = new SimpleDateFormat("hh:mm:ss a"); -- GitLab