diff options
| author | 2024-06-28 18:37:09 +0000 | |
|---|---|---|
| committer | 2024-06-28 18:37:09 +0000 | |
| commit | ab5ee287256de43ffaaf4cf6175d04d0c6fecbef (patch) | |
| tree | 527f07f90fa5a7cee19e9aca0a5d3a90dea4bab4 | |
| parent | b7be300251b02da5f4e34638ebfa4c32beee4b20 (diff) | |
| parent | d98cfa8c6f1aac22643d011ddfaadfd0701aee26 (diff) | |
Merge "BatteryController: Use stable reference for handler callback" into main
| -rw-r--r-- | services/core/java/com/android/server/input/BatteryController.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/input/BatteryController.java b/services/core/java/com/android/server/input/BatteryController.java index 38a0d37c5679..62c21bda1fd1 100644 --- a/services/core/java/com/android/server/input/BatteryController.java +++ b/services/core/java/com/android/server/input/BatteryController.java @@ -83,6 +83,7 @@ final class BatteryController { private final Handler mHandler; private final UEventManager mUEventManager; private final BluetoothBatteryManager mBluetoothBatteryManager; + private final Runnable mHandlePollEventCallback = this::handlePollEvent; // Maps a pid to the registered listener record for that process. There can only be one battery // listener per process. @@ -206,7 +207,7 @@ final class BatteryController { if (!mIsInteractive || !anyOf(mDeviceMonitors, DeviceMonitor::requiresPolling)) { // Stop polling. mIsPolling = false; - mHandler.removeCallbacks(this::handlePollEvent); + mHandler.removeCallbacks(mHandlePollEventCallback); return; } @@ -215,7 +216,7 @@ final class BatteryController { } // Start polling. mIsPolling = true; - mHandler.postDelayed(this::handlePollEvent, delayStart ? POLLING_PERIOD_MILLIS : 0); + mHandler.postDelayed(mHandlePollEventCallback, delayStart ? POLLING_PERIOD_MILLIS : 0); } private <R> R processInputDevice(int deviceId, R defaultValue, Function<InputDevice, R> func) { @@ -366,7 +367,7 @@ final class BatteryController { } final long eventTime = SystemClock.uptimeMillis(); mDeviceMonitors.forEach((deviceId, monitor) -> monitor.onPoll(eventTime)); - mHandler.postDelayed(this::handlePollEvent, POLLING_PERIOD_MILLIS); + mHandler.postDelayed(mHandlePollEventCallback, POLLING_PERIOD_MILLIS); } } |