diff options
| author | 2023-10-16 09:07:45 +0000 | |
|---|---|---|
| committer | 2023-10-16 09:07:45 +0000 | |
| commit | 5c2053251056c67768c00fbf95282d31112869a0 (patch) | |
| tree | 6ec25660acb39227d5720ccebb15fa446a0bd508 | |
| parent | b3550a9511d7e6f68188c72795da6a7715252869 (diff) | |
| parent | 29d0aa0ff52599d76c18b4a2d9448e20cb99f793 (diff) | |
Merge "do wom: fix potential issue of VirtualDisplay's callback not called" into main
3 files changed, 14 insertions, 26 deletions
diff --git a/services/core/java/com/android/server/display/DisplayDevice.java b/services/core/java/com/android/server/display/DisplayDevice.java index 098cb87940b2..9f4f78794659 100644 --- a/services/core/java/com/android/server/display/DisplayDevice.java +++ b/services/core/java/com/android/server/display/DisplayDevice.java @@ -23,7 +23,7 @@ import android.annotation.Nullable; import android.content.Context; import android.graphics.Point; import android.graphics.Rect; -import android.hardware.display.DisplayManagerInternal; +import android.hardware.display.DisplayManagerInternal.DisplayOffloadSession; import android.hardware.display.DisplayViewport; import android.os.IBinder; import android.util.Slog; @@ -201,20 +201,6 @@ abstract class DisplayDevice { * @param state The new display state. * @param brightnessState The new display brightnessState. * @param sdrBrightnessState The new display brightnessState for SDR layers. - * @return A runnable containing work to be deferred until after we have - * exited the critical section, or null if none. - */ - public Runnable requestDisplayStateLocked(int state, float brightnessState, - float sdrBrightnessState) { - return requestDisplayStateLocked(state, brightnessState, sdrBrightnessState, null); - } - - /** - * Sets the display state, if supported. - * - * @param state The new display state. - * @param brightnessState The new display brightnessState. - * @param sdrBrightnessState The new display brightnessState for SDR layers. * @param displayOffloadSession {@link DisplayOffloadSession} associated with current device. * @return A runnable containing work to be deferred until after we have exited the critical * section, or null if none. @@ -223,7 +209,7 @@ abstract class DisplayDevice { int state, float brightnessState, float sdrBrightnessState, - @Nullable DisplayManagerInternal.DisplayOffloadSession displayOffloadSession) { + @Nullable DisplayOffloadSession displayOffloadSession) { return null; } diff --git a/services/core/java/com/android/server/display/VirtualDisplayAdapter.java b/services/core/java/com/android/server/display/VirtualDisplayAdapter.java index d910e16de8e8..b0025872aa3d 100644 --- a/services/core/java/com/android/server/display/VirtualDisplayAdapter.java +++ b/services/core/java/com/android/server/display/VirtualDisplayAdapter.java @@ -43,6 +43,7 @@ import static com.android.server.display.DisplayDeviceInfo.FLAG_TRUSTED; import android.annotation.Nullable; import android.content.Context; import android.graphics.Point; +import android.hardware.display.DisplayManagerInternal.DisplayOffloadSession; import android.hardware.display.IVirtualDisplayCallback; import android.hardware.display.VirtualDisplayConfig; import android.media.projection.IMediaProjection; @@ -395,7 +396,7 @@ public class VirtualDisplayAdapter extends DisplayAdapter { @Override public Runnable requestDisplayStateLocked(int state, float brightnessState, - float sdrBrightnessState) { + float sdrBrightnessState, DisplayOffloadSession displayOffloadSession) { if (state != mDisplayState) { mDisplayState = state; if (state == Display.STATE_OFF) { diff --git a/services/tests/displayservicetests/src/com/android/server/display/LocalDisplayAdapterTest.java b/services/tests/displayservicetests/src/com/android/server/display/LocalDisplayAdapterTest.java index 9ac00624b343..32e28715cc74 100644 --- a/services/tests/displayservicetests/src/com/android/server/display/LocalDisplayAdapterTest.java +++ b/services/tests/displayservicetests/src/com/android/server/display/LocalDisplayAdapterTest.java @@ -33,6 +33,7 @@ import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.times; import static org.mockito.Mockito.when; import android.content.Context; @@ -699,7 +700,7 @@ public class LocalDisplayAdapterTest { // Turn off. Runnable changeStateRunnable = displayDevice.requestDisplayStateLocked(Display.STATE_OFF, 0, - 0); + 0, null); waitForHandlerToComplete(mHandler, HANDLER_WAIT_MS); assertThat(mListener.changedDisplays.size()).isEqualTo(1); mListener.changedDisplays.clear(); @@ -1003,7 +1004,7 @@ public class LocalDisplayAdapterTest { // Turn on / initialize assumeTrue(displayDevice.getDisplayDeviceConfig().hasSdrToHdrRatioSpline()); Runnable changeStateRunnable = displayDevice.requestDisplayStateLocked(Display.STATE_ON, 0, - 0); + 0, null); changeStateRunnable.run(); waitForHandlerToComplete(mHandler, HANDLER_WAIT_MS); mListener.changedDisplays.clear(); @@ -1012,7 +1013,7 @@ public class LocalDisplayAdapterTest { // HDR time! Runnable goHdrRunnable = displayDevice.requestDisplayStateLocked(Display.STATE_ON, 1f, - 0); + 0, null); waitForHandlerToComplete(mHandler, HANDLER_WAIT_MS); // Display state didn't change, no listeners should have happened assertThat(mListener.changedDisplays.size()).isEqualTo(0); @@ -1043,7 +1044,7 @@ public class LocalDisplayAdapterTest { // Turn on / initialize Runnable changeStateRunnable = displayDevice.requestDisplayStateLocked(Display.STATE_ON, 0, - 0); + 0, null); changeStateRunnable.run(); waitForHandlerToComplete(mHandler, HANDLER_WAIT_MS); mListener.changedDisplays.clear(); @@ -1070,7 +1071,7 @@ public class LocalDisplayAdapterTest { // Turn on / initialize Runnable changeStateRunnable = displayDevice.requestDisplayStateLocked(Display.STATE_ON, 0, - 0); + 0, null); changeStateRunnable.run(); waitForHandlerToComplete(mHandler, HANDLER_WAIT_MS); mListener.changedDisplays.clear(); @@ -1095,7 +1096,7 @@ public class LocalDisplayAdapterTest { // Turn on / initialize Runnable changeStateRunnable = displayDevice.requestDisplayStateLocked(Display.STATE_ON, 0, - 0); + 0, null); changeStateRunnable.run(); waitForHandlerToComplete(mHandler, HANDLER_WAIT_MS); mListener.changedDisplays.clear(); @@ -1118,7 +1119,7 @@ public class LocalDisplayAdapterTest { // Turn on / initialize Runnable changeStateRunnable = displayDevice.requestDisplayStateLocked(Display.STATE_ON, 0, - 0); + 0, null); changeStateRunnable.run(); waitForHandlerToComplete(mHandler, HANDLER_WAIT_MS); mListener.changedDisplays.clear(); @@ -1145,9 +1146,9 @@ public class LocalDisplayAdapterTest { Runnable changeStateRunnable = displayDevice.requestDisplayStateLocked( supportedState, 0, 0, mDisplayOffloadSession); changeStateRunnable.run(); - - verify(mDisplayOffloader).startOffload(); } + + verify(mDisplayOffloader, times(mDisplayOffloadSupportedStates.size())).startOffload(); } @Test |