diff options
2 files changed, 3 insertions, 26 deletions
diff --git a/services/core/java/com/android/server/media/projection/MediaProjectionManagerService.java b/services/core/java/com/android/server/media/projection/MediaProjectionManagerService.java index 9954a903be5c..802a7f2954af 100644 --- a/services/core/java/com/android/server/media/projection/MediaProjectionManagerService.java +++ b/services/core/java/com/android/server/media/projection/MediaProjectionManagerService.java @@ -975,6 +975,9 @@ public final class MediaProjectionManagerService extends SystemService throw new SecurityException("Media projections require a foreground service" + " of type ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION"); } + + mCallback = callback; + registerCallback(mCallback); try { mToken = callback.asBinder(); mDeathEater = () -> { @@ -1019,11 +1022,6 @@ public final class MediaProjectionManagerService extends SystemService } } startProjectionLocked(this); - - // Register new callbacks after stop has been dispatched to previous session. - mCallback = callback; - registerCallback(mCallback); - // Mark this token as used when the app gets the MediaProjection instance. mCountStarts++; } diff --git a/services/tests/servicestests/src/com/android/server/media/projection/MediaProjectionManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/media/projection/MediaProjectionManagerServiceTest.java index b0fd60672853..ddd1221e4c91 100644 --- a/services/tests/servicestests/src/com/android/server/media/projection/MediaProjectionManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/media/projection/MediaProjectionManagerServiceTest.java @@ -202,24 +202,6 @@ public class MediaProjectionManagerServiceTest { } @Test - public void testCreateProjection_priorProjectionGrant() throws NameNotFoundException { - // Create a first projection. - MediaProjectionManagerService.MediaProjection projection = startProjectionPreconditions(); - FakeIMediaProjectionCallback callback1 = new FakeIMediaProjectionCallback(); - projection.start(callback1); - - // Create a second projection. - MediaProjectionManagerService.MediaProjection secondProjection = - startProjectionPreconditions(); - FakeIMediaProjectionCallback callback2 = new FakeIMediaProjectionCallback(); - secondProjection.start(callback2); - - // Check that the second projection's callback hasn't been stopped. - assertThat(callback1.mStopped).isTrue(); - assertThat(callback2.mStopped).isFalse(); - } - - @Test public void testCreateProjection_attemptReuse_noPriorProjectionGrant() throws NameNotFoundException { // Create a first projection. @@ -803,11 +785,8 @@ public class MediaProjectionManagerServiceTest { } private static class FakeIMediaProjectionCallback extends IMediaProjectionCallback.Stub { - boolean mStopped = false; - @Override public void onStop() throws RemoteException { - mStopped = true; } @Override |