Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 73516727 authored by Android Build Merger (Role)'s avatar Android Build Merger (Role) Committed by Android (Google) Code Review
Browse files

Merge "Merge "Use display listener instead of Intent Action for screen status"...

Merge "Merge "Use display listener instead of Intent Action for screen status" into qt-qpr1-dev am: 28f6d34b" into qt-qpr1-dev-plus-aosp
parents db496099 9953c829
Loading
Loading
Loading
Loading
+15 −24
Original line number Diff line number Diff line
@@ -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()));
            }
        }
    }
}