Partial screen sharing: show error notif when screen recording fails

When starting a screen recording of a specific app, and the app is then
removed from recents, there would be an error toast shown, but the
"recording" notification was still showing, and interacting with it
would do nothing.

With this fix, we show an error notification for that case, which
replaces the "recording" notification.

Fixes: 250033241
Test: RecordingServiceTest.java
Test: Manually - 1. Enable partial screen sharing
                 2. Start recording a specific app
                 3. Remove the app from recents before the recording
                    starts
Change-Id: Ic2dc8e6c40ba13d5feccc3deface0f62edabd6c8
This commit is contained in:
Christian Göllner
2023-05-31 14:34:43 +02:00
parent 878b61b063
commit 588bfe051b
2 changed files with 12 additions and 0 deletions

View File

@@ -427,6 +427,7 @@ public class RecordingService extends Service implements ScreenMediaRecorderList
Log.e(TAG, "stopRecording called, but there was an error when ending"
+ "recording");
exception.printStackTrace();
createErrorNotification();
} catch (Throwable throwable) {
// Something unexpected happen, SystemUI will crash but let's delete
// the temporary files anyway

View File

@@ -203,6 +203,17 @@ public class RecordingServiceTest extends SysuiTestCase {
verify(mScreenMediaRecorder).release();
}
@Test
public void testOnSystemRequestedStop_recorderEndThrowsRuntimeException_showsErrorNotification()
throws IOException {
doReturn(true).when(mController).isRecording();
doThrow(new RuntimeException()).when(mScreenMediaRecorder).end();
mRecordingService.onStopped();
verify(mRecordingService).createErrorNotification();
}
@Test
public void testOnSystemRequestedStop_recorderEndThrowsOOMError_releasesRecording()
throws IOException {