Merge "Merge "Use display listener instead of Intent Action for screen status" into qt-qpr1-dev am: 28f6d34b77" into qt-qpr1-dev-plus-aosp

This commit is contained in:
Android Build Merger (Role)
2019-08-07 06:27:38 +00:00
committed by Android (Google) Code Review

View File

@@ -680,6 +680,7 @@ public class DisplayModeDirector {
@Override
public void onDisplayChanged(int displayId) {
updateDisplayModes(displayId);
mBrightnessObserver.onDisplayChanged(displayId);
}
private void updateDisplayModes(int displayId) {
@@ -734,8 +735,6 @@ public class DisplayModeDirector {
private AmbientFilter mAmbientFilter;
private final Context mContext;
private ScreenStateReceiver mScreenStateReceiver;
// Enable light sensor only when screen is on, peak refresh rate enabled and low power mode
// off. After initialization, these states will be updated from the same handler thread.
private boolean mScreenOn = false;
@@ -793,11 +792,7 @@ public class DisplayModeDirector {
mSensorManager = sensorManager;
mLightSensor = lightSensor;
// Intent.ACTION_SCREEN_ON is not sticky. Check current screen status.
if (mContext.getSystemService(PowerManager.class).isInteractive()) {
onScreenOn(true);
}
mScreenStateReceiver = new ScreenStateReceiver(mContext);
onScreenOn(isDefaultDisplayOn());
}
}
@@ -822,6 +817,12 @@ public class DisplayModeDirector {
}
}
public void onDisplayChanged(int displayId) {
if (displayId == Display.DEFAULT_DISPLAY) {
onScreenOn(isDefaultDisplayOn());
}
}
public void dumpLocked(PrintWriter pw) {
pw.println(" BrightnessObserver");
@@ -891,8 +892,6 @@ public class DisplayModeDirector {
}
private void onScreenOn(boolean on) {
// Not check mShouldObserveAmbientChange because Screen status receiver is registered
// only when it is true.
if (mScreenOn != on) {
mScreenOn = on;
updateSensorStatus();
@@ -913,6 +912,13 @@ public class DisplayModeDirector {
}
}
private boolean isDefaultDisplayOn() {
final Display display = mContext.getSystemService(DisplayManager.class)
.getDisplay(Display.DEFAULT_DISPLAY);
return display.getState() != Display.STATE_OFF
&& mContext.getSystemService(PowerManager.class).isInteractive();
}
private final class LightSensorEventListener implements SensorEventListener {
final private static int INJECT_EVENTS_INTERVAL_MS = LIGHT_SENSOR_RATE_MS;
private float mLastSensorData;
@@ -991,20 +997,5 @@ public class DisplayModeDirector {
}
};
};
private final class ScreenStateReceiver extends BroadcastReceiver {
public ScreenStateReceiver(Context context) {
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_SCREEN_ON);
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
context.registerReceiver(this, filter, null, mHandler);
}
@Override
public void onReceive(Context context, Intent intent) {
onScreenOn(Intent.ACTION_SCREEN_ON.equals(intent.getAction()));
}
}
}
}