From e1e98590e6edef833fbd6512728d346538e048c8 Mon Sep 17 00:00:00 2001 From: Elliot Wolk Date: Sun, 24 Jul 2022 21:20:50 -0400 Subject: [PATCH 1/2] tts: fix frequent coolreader crash when calling tts stop() --- android/src/org/coolreader/tts/TTSControlService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/android/src/org/coolreader/tts/TTSControlService.java b/android/src/org/coolreader/tts/TTSControlService.java index e76be3fc1..b3d15c3fc 100644 --- a/android/src/org/coolreader/tts/TTSControlService.java +++ b/android/src/org/coolreader/tts/TTSControlService.java @@ -432,7 +432,8 @@ public void onStop() { mNotificationManager.cancel(NOTIFICATION_ID); stopForeground(true); abandonAudioFocusRequestWrapper(); - mMediaSession.setActive(false); + //WORKAROUND TO PREVENT CRASH ON STOP + //mMediaSession.setActive(false); try { unregisterReceiver(mBecomingNoisyReceiver); } catch (Exception ignored) {} From 6f4a7f70db8dfe3f508848df214f2e15403362b5 Mon Sep 17 00:00:00 2001 From: Elliot Wolk Date: Tue, 30 Aug 2022 00:15:35 -0400 Subject: [PATCH 2/2] tts: fix another (rare) coolreader crash when calling tts stop() --- android/src/org/coolreader/tts/TTSControlService.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/android/src/org/coolreader/tts/TTSControlService.java b/android/src/org/coolreader/tts/TTSControlService.java index b3d15c3fc..3571effff 100644 --- a/android/src/org/coolreader/tts/TTSControlService.java +++ b/android/src/org/coolreader/tts/TTSControlService.java @@ -555,10 +555,11 @@ public void onDestroy() { } catch (Exception ignored) {} stopUtterance_impl(null); abandonAudioFocusRequestWrapper(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - mMediaSession.setActive(false); - mMediaSession.release(); - } + //WORKAROUND TO PREVENT RARE CRASH ON STOP + //if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + // mMediaSession.setActive(false); + // mMediaSession.release(); + //} mNotificationManager.cancel(NOTIFICATION_ID); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { mNotificationManager.deleteNotificationChannel(NOTIFICATION_CHANNEL_ID);