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

Commit af0a1c03 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Explicit registraton to refresh rate" into main

parents 1ee9d6dd 770f8d39
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -623,6 +623,9 @@ public final class DisplayManager {
     * is triggered whenever the properties of a {@link android.view.Display}, such as size,
     * state, density are modified.
     *
     * This event is not triggered for refresh rate changes as they can change very often.
     * To monitor refresh rate changes, subscribe to {@link EVENT_TYPE_DISPLAY_REFRESH_RATE}.
     *
     * @see #registerDisplayListener(DisplayListener, Handler, long)
     *
     */
@@ -801,6 +804,9 @@ public final class DisplayManager {
     * Registers a display listener to receive notifications about when
     * displays are added, removed or changed.
     *
     * We encourage to use {@link #registerDisplayListener(Executor, long, DisplayListener)}
     * instead to subscribe for explicit events of interest
     *
     * @param listener The listener to register.
     * @param handler The handler on which the listener should be invoked, or null
     * if the listener should be invoked on the calling thread's looper.
@@ -809,7 +815,9 @@ public final class DisplayManager {
     */
    public void registerDisplayListener(DisplayListener listener, Handler handler) {
        registerDisplayListener(listener, handler, EVENT_TYPE_DISPLAY_ADDED
                | EVENT_TYPE_DISPLAY_CHANGED | EVENT_TYPE_DISPLAY_REMOVED);
                | EVENT_TYPE_DISPLAY_CHANGED
                | EVENT_TYPE_DISPLAY_REFRESH_RATE
                | EVENT_TYPE_DISPLAY_REMOVED);
    }

    /**
+6 −12
Original line number Diff line number Diff line
@@ -1766,29 +1766,23 @@ public final class DisplayManagerGlobal {
        }

        if ((eventFlags & DisplayManager.EVENT_TYPE_DISPLAY_CHANGED) != 0) {
            // For backward compatibility, a client subscribing to
            // DisplayManager.EVENT_FLAG_DISPLAY_CHANGED will be enrolled to both Basic and
            // RR changes
            baseEventMask |= INTERNAL_EVENT_FLAG_DISPLAY_BASIC_CHANGED
                    | INTERNAL_EVENT_FLAG_DISPLAY_REFRESH_RATE;
            baseEventMask |= INTERNAL_EVENT_FLAG_DISPLAY_BASIC_CHANGED;
        }

        if ((eventFlags
                & DisplayManager.EVENT_TYPE_DISPLAY_REMOVED) != 0) {
        if ((eventFlags & DisplayManager.EVENT_TYPE_DISPLAY_REMOVED) != 0) {
            baseEventMask |= INTERNAL_EVENT_FLAG_DISPLAY_REMOVED;
        }

        if (Flags.displayListenerPerformanceImprovements()) {
        if ((eventFlags & DisplayManager.EVENT_TYPE_DISPLAY_REFRESH_RATE) != 0) {
            baseEventMask |= INTERNAL_EVENT_FLAG_DISPLAY_REFRESH_RATE;
        }

        if (Flags.displayListenerPerformanceImprovements()) {
            if ((eventFlags & DisplayManager.EVENT_TYPE_DISPLAY_STATE) != 0) {
                baseEventMask |= INTERNAL_EVENT_FLAG_DISPLAY_STATE;
            }
        }


        return baseEventMask;
    }
}
+4 −2
Original line number Diff line number Diff line
@@ -307,8 +307,10 @@ public class DisplayManagerGlobalTest {
        assertEquals(DisplayManagerGlobal.INTERNAL_EVENT_FLAG_DISPLAY_ADDED,
                mDisplayManagerGlobal
                        .mapFiltersToInternalEventFlag(DisplayManager.EVENT_TYPE_DISPLAY_ADDED, 0));
        assertEquals(DISPLAY_CHANGE_EVENTS, mDisplayManagerGlobal
                .mapFiltersToInternalEventFlag(DisplayManager.EVENT_TYPE_DISPLAY_CHANGED, 0));
        assertEquals(DisplayManagerGlobal.INTERNAL_EVENT_FLAG_DISPLAY_BASIC_CHANGED,
                mDisplayManagerGlobal
                        .mapFiltersToInternalEventFlag(DisplayManager.EVENT_TYPE_DISPLAY_CHANGED,
                                0));
        assertEquals(DisplayManagerGlobal.INTERNAL_EVENT_FLAG_DISPLAY_REMOVED,
                mDisplayManagerGlobal.mapFiltersToInternalEventFlag(
                        DisplayManager.EVENT_TYPE_DISPLAY_REMOVED, 0));