diff options
| author | 2022-03-07 09:42:40 -0800 | |
|---|---|---|
| committer | 2022-03-15 10:43:56 -0700 | |
| commit | 60847812e4d14433d66b98b4b7d33f742ec77f90 (patch) | |
| tree | e0fc35933f166afd239b7016a23003750b3a2030 | |
| parent | f16b5fb33f403bc213e30e4f5bd349f4b03ca603 (diff) | |
display: move hbm stats report to handler thread
And check the null mPowerState.
Bug: 222769254
Test: Can not reproduce. Monitor the dash board.
Change-Id: Ic9c598ff7947e1e202985e960b746e4e2b309d59
| -rw-r--r-- | services/core/java/com/android/server/display/DisplayPowerController.java | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java index 9067f2e25152..f819e56e6856 100644 --- a/services/core/java/com/android/server/display/DisplayPowerController.java +++ b/services/core/java/com/android/server/display/DisplayPowerController.java @@ -129,7 +129,8 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call private static final int MSG_STOP = 9; private static final int MSG_UPDATE_BRIGHTNESS = 10; private static final int MSG_UPDATE_RBC = 11; - private static final int MSG_STATSD_HBM_BRIGHTNESS = 12; + private static final int MSG_BRIGHTNESS_RAMP_DONE = 12; + private static final int MSG_STATSD_HBM_BRIGHTNESS = 13; private static final int PROXIMITY_UNKNOWN = -1; private static final int PROXIMITY_NEGATIVE = 0; @@ -1050,9 +1051,8 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call @Override public void onAnimationEnd() { sendUpdatePowerState(); - - final float brightness = mPowerState.getScreenBrightness(); - reportStats(brightness); + Message msg = mHandler.obtainMessage(MSG_BRIGHTNESS_RAMP_DONE); + mHandler.sendMessage(msg); } }; @@ -1066,6 +1066,12 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call mCallbacks.releaseSuspendBlocker(); mUnfinishedBusiness = false; } + + final float brightness = mPowerState != null + ? mPowerState.getScreenBrightness() + : PowerManager.BRIGHTNESS_MIN; + reportStats(brightness); + if (mPowerState != null) { mPowerState.stop(); mPowerState = null; @@ -2580,6 +2586,10 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call } private void reportStats(float brightness) { + if (mLastStatsBrightness == brightness) { + return; + } + float hbmTransitionPoint = PowerManager.BRIGHTNESS_MAX; synchronized(mCachedBrightnessInfo) { if (mCachedBrightnessInfo.hbmTransitionPoint == null) { @@ -2680,6 +2690,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call handleRbcChanged(strengthChanged == 1, justActivated == 1); break; + case MSG_BRIGHTNESS_RAMP_DONE: + if (mPowerState != null) { + final float brightness = mPowerState.getScreenBrightness(); + reportStats(brightness); + } + break; + case MSG_STATSD_HBM_BRIGHTNESS: logHbmBrightnessStats(Float.intBitsToFloat(msg.arg1), msg.arg2); break; |