Loading services/core/java/com/android/server/display/DisplayModeDirector.java +15 −24 Original line number Diff line number Diff line Loading @@ -680,6 +680,7 @@ public class DisplayModeDirector { @Override public void onDisplayChanged(int displayId) { updateDisplayModes(displayId); mBrightnessObserver.onDisplayChanged(displayId); } private void updateDisplayModes(int displayId) { Loading Loading @@ -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; Loading Loading @@ -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()); } } Loading @@ -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"); Loading Loading @@ -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(); Loading @@ -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; Loading Loading @@ -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())); } } } } Loading
services/core/java/com/android/server/display/DisplayModeDirector.java +15 −24 Original line number Diff line number Diff line Loading @@ -680,6 +680,7 @@ public class DisplayModeDirector { @Override public void onDisplayChanged(int displayId) { updateDisplayModes(displayId); mBrightnessObserver.onDisplayChanged(displayId); } private void updateDisplayModes(int displayId) { Loading Loading @@ -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; Loading Loading @@ -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()); } } Loading @@ -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"); Loading Loading @@ -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(); Loading @@ -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; Loading Loading @@ -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())); } } } }