Prevent the thread unsafe operation during the user switching
- Prevent accessing a variable that controls brightness at the same time through different threads. Bug: 262663423 Test: Manual Change-Id: I7ffeb83e664e058a9b3e9f4f8a59d65936c43a6b
This commit is contained in:
@@ -138,6 +138,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
||||
private static final int MSG_UPDATE_RBC = 11;
|
||||
private static final int MSG_BRIGHTNESS_RAMP_DONE = 12;
|
||||
private static final int MSG_STATSD_HBM_BRIGHTNESS = 13;
|
||||
private static final int MSG_SWITCH_USER = 14;
|
||||
|
||||
private static final int PROXIMITY_UNKNOWN = -1;
|
||||
private static final int PROXIMITY_NEGATIVE = 0;
|
||||
@@ -714,6 +715,11 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
||||
|
||||
@Override
|
||||
public void onSwitchUser(@UserIdInt int newUserId) {
|
||||
Message msg = mHandler.obtainMessage(MSG_SWITCH_USER, newUserId);
|
||||
mHandler.sendMessage(msg);
|
||||
}
|
||||
|
||||
private void handleOnSwitchUser(@UserIdInt int newUserId) {
|
||||
handleSettingsChange(true /* userSwitch */);
|
||||
handleBrightnessModeChange();
|
||||
if (mBrightnessTracker != null) {
|
||||
@@ -3073,6 +3079,10 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
||||
case MSG_STATSD_HBM_BRIGHTNESS:
|
||||
logHbmBrightnessStats(Float.intBitsToFloat(msg.arg1), msg.arg2);
|
||||
break;
|
||||
|
||||
case MSG_SWITCH_USER:
|
||||
handleOnSwitchUser(msg.arg1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -135,6 +135,7 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal
|
||||
private static final int MSG_UPDATE_RBC = 9;
|
||||
private static final int MSG_BRIGHTNESS_RAMP_DONE = 10;
|
||||
private static final int MSG_STATSD_HBM_BRIGHTNESS = 11;
|
||||
private static final int MSG_SWITCH_USER = 12;
|
||||
|
||||
private static final int BRIGHTNESS_CHANGE_STATSD_REPORT_INTERVAL_MS = 500;
|
||||
|
||||
@@ -605,6 +606,11 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal
|
||||
|
||||
@Override
|
||||
public void onSwitchUser(@UserIdInt int newUserId) {
|
||||
Message msg = mHandler.obtainMessage(MSG_SWITCH_USER, newUserId);
|
||||
mHandler.sendMessage(msg);
|
||||
}
|
||||
|
||||
private void handleOnSwitchUser(@UserIdInt int newUserId) {
|
||||
handleSettingsChange(true /* userSwitch */);
|
||||
handleBrightnessModeChange();
|
||||
if (mBrightnessTracker != null) {
|
||||
@@ -2573,6 +2579,10 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal
|
||||
case MSG_STATSD_HBM_BRIGHTNESS:
|
||||
logHbmBrightnessStats(Float.intBitsToFloat(msg.arg1), msg.arg2);
|
||||
break;
|
||||
|
||||
case MSG_SWITCH_USER:
|
||||
handleOnSwitchUser(msg.arg1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user