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

Commit e70acd13 authored by Miranda Kephart's avatar Miranda Kephart Committed by Android (Google) Code Review
Browse files

Merge "Catch IllegalStateException in screenshot media player" into main

parents dd26100c 5a446455
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -58,8 +58,16 @@ constructor(
        }

    override fun playCameraSound(): Deferred<Unit> {
        return coroutineScope.async("playCameraSound", bgDispatcher) { player.await()?.start() }
        return coroutineScope.async("playCameraSound", bgDispatcher) {
            try {
                player.await()?.start()
            } catch (e: IllegalStateException) {
                Log.w(TAG, "Screenshot sound failed to play", e)
                releaseScreenshotSound()
            }
        }
    }

    override fun releaseScreenshotSound(): Deferred<Unit> {
        return coroutineScope.async("releaseScreenshotSound", bgDispatcher) {
            try {
+11 −0
Original line number Diff line number Diff line
@@ -72,6 +72,17 @@ class ScreenshotSoundControllerTest : SysuiTestCase() {
        verify(mediaPlayer).start()
    }

    @Test
    fun playCameraSound_illegalStateException_doesNotThrow() = runTest {
        whenever(mediaPlayer.start()).thenThrow(IllegalStateException())

        val controller = createController()
        controller.playCameraSound().await()

        verify(mediaPlayer).start()
        verify(mediaPlayer).release()
    }

    @Test
    fun playCameraSound_soundLoadingSuccessful_mediaPlayerReleases() = runTest {
        val controller = createController()