Loading services/core/java/com/android/server/wm/ContentRecorder.java +8 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ import android.os.RemoteException; import android.os.ServiceManager; import android.view.ContentRecordingSession; import android.view.ContentRecordingSession.RecordContent; import android.window.DesktopExperienceFlags; import android.view.Display; import android.view.DisplayInfo; import android.view.SurfaceControl; Loading Loading @@ -353,6 +354,13 @@ final class ContentRecorder implements WindowContainerListener { return; } // Recording should not be started on displays that are eligible for hosting tasks. // See android.view.Display#canHostTasks(). if (DesktopExperienceFlags.ENABLE_DISPLAY_CONTENT_MODE_MANAGEMENT.isTrue() && mDisplayContent.mDisplay.canHostTasks()) { return; } if (mContentRecordingSession.isWaitingForConsent() || !isDisplayReadyForMirroring()) { ProtoLog.v(WM_DEBUG_CONTENT_RECORDING, "Content Recording: waiting to record, so do " + "nothing"); Loading services/tests/wmtests/src/com/android/server/wm/ContentRecorderTests.java +18 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing; import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn; import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn; import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify; import static com.android.server.display.feature.flags.Flags.FLAG_ENABLE_DISPLAY_CONTENT_MODE_MANAGEMENT; import static com.google.common.truth.Truth.assertThat; Loading @@ -51,6 +52,7 @@ import android.graphics.Point; import android.graphics.Rect; import android.media.projection.StopReason; import android.os.IBinder; import android.platform.test.annotations.EnableFlags; import android.platform.test.annotations.Presubmit; import android.view.ContentRecordingSession; import android.view.Display; Loading Loading @@ -558,6 +560,22 @@ public class ContentRecorderTests extends WindowTestsBase { assertThat(mContentRecorder.isCurrentlyRecording()).isTrue(); } @EnableFlags(FLAG_ENABLE_DISPLAY_CONTENT_MODE_MANAGEMENT) @Test public void testStartRecording_shouldShowSystemDecorations_recordingNotStarted() { defaultInit(); mContentRecorder.setContentRecordingSession(mTaskSession); spyOn(mVirtualDisplayContent.mDisplay); doReturn(true).when(mVirtualDisplayContent.mDisplay).canHostTasks(); // WHEN a recording tries to start. mContentRecorder.updateRecording(); // THEN recording does not start. assertThat(mContentRecorder.isCurrentlyRecording()).isFalse(); } @Test public void testOnVisibleRequestedChanged_notifiesCallback() { defaultInit(); Loading Loading
services/core/java/com/android/server/wm/ContentRecorder.java +8 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ import android.os.RemoteException; import android.os.ServiceManager; import android.view.ContentRecordingSession; import android.view.ContentRecordingSession.RecordContent; import android.window.DesktopExperienceFlags; import android.view.Display; import android.view.DisplayInfo; import android.view.SurfaceControl; Loading Loading @@ -353,6 +354,13 @@ final class ContentRecorder implements WindowContainerListener { return; } // Recording should not be started on displays that are eligible for hosting tasks. // See android.view.Display#canHostTasks(). if (DesktopExperienceFlags.ENABLE_DISPLAY_CONTENT_MODE_MANAGEMENT.isTrue() && mDisplayContent.mDisplay.canHostTasks()) { return; } if (mContentRecordingSession.isWaitingForConsent() || !isDisplayReadyForMirroring()) { ProtoLog.v(WM_DEBUG_CONTENT_RECORDING, "Content Recording: waiting to record, so do " + "nothing"); Loading
services/tests/wmtests/src/com/android/server/wm/ContentRecorderTests.java +18 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing; import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn; import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn; import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify; import static com.android.server.display.feature.flags.Flags.FLAG_ENABLE_DISPLAY_CONTENT_MODE_MANAGEMENT; import static com.google.common.truth.Truth.assertThat; Loading @@ -51,6 +52,7 @@ import android.graphics.Point; import android.graphics.Rect; import android.media.projection.StopReason; import android.os.IBinder; import android.platform.test.annotations.EnableFlags; import android.platform.test.annotations.Presubmit; import android.view.ContentRecordingSession; import android.view.Display; Loading Loading @@ -558,6 +560,22 @@ public class ContentRecorderTests extends WindowTestsBase { assertThat(mContentRecorder.isCurrentlyRecording()).isTrue(); } @EnableFlags(FLAG_ENABLE_DISPLAY_CONTENT_MODE_MANAGEMENT) @Test public void testStartRecording_shouldShowSystemDecorations_recordingNotStarted() { defaultInit(); mContentRecorder.setContentRecordingSession(mTaskSession); spyOn(mVirtualDisplayContent.mDisplay); doReturn(true).when(mVirtualDisplayContent.mDisplay).canHostTasks(); // WHEN a recording tries to start. mContentRecorder.updateRecording(); // THEN recording does not start. assertThat(mContentRecorder.isCurrentlyRecording()).isFalse(); } @Test public void testOnVisibleRequestedChanged_notifiesCallback() { defaultInit(); Loading