From e28d58c428e6bb5872e2047d951f569fee445779 Mon Sep 17 00:00:00 2001 From: Elliot Wolk Date: Fri, 8 Apr 2022 11:22:17 -0400 Subject: [PATCH 1/2] tts: do not re-initialize TTS on DCMD_TTS_PLAY if its already active --- .../src/org/coolreader/crengine/ReaderView.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/android/src/org/coolreader/crengine/ReaderView.java b/android/src/org/coolreader/crengine/ReaderView.java index 52ec2a0ae..5fc702579 100644 --- a/android/src/org/coolreader/crengine/ReaderView.java +++ b/android/src/org/coolreader/crengine/ReaderView.java @@ -2414,13 +2414,15 @@ public void onCommand(final ReaderCommand cmd, final int param, final Runnable o showManual(); break; case DCMD_TTS_PLAY: { - log.i("DCMD_TTS_PLAY: initializing TTS"); - mActivity.initTTS(ttsacc -> BackgroundThread.instance().executeGUI(() -> { - log.i("TTS created: opening TTS toolbar"); - ttsToolbar = TTSToolbarDlg.showDialog(mActivity, ReaderView.this, ttsacc); - ttsToolbar.setOnCloseListener(() -> ttsToolbar = null); - ttsToolbar.setAppSettings(mSettings, null); - })); + if(!isTTSActive()){ + log.i("DCMD_TTS_PLAY: initializing TTS"); + mActivity.initTTS(ttsacc -> BackgroundThread.instance().executeGUI(() -> { + log.i("TTS created: opening TTS toolbar"); + ttsToolbar = TTSToolbarDlg.showDialog(mActivity, ReaderView.this, ttsacc); + ttsToolbar.setOnCloseListener(() -> ttsToolbar = null); + ttsToolbar.setAppSettings(mSettings, null); + })); + } } break; case DCMD_TOGGLE_DOCUMENT_STYLES: From 86f742a18fda6a12c11a3a051850e3dd69d2f106 Mon Sep 17 00:00:00 2001 From: Elliot Wolk Date: Wed, 12 Apr 2023 13:07:51 -0400 Subject: [PATCH 2/2] tts: add log msg when skipping re-init on DCMD_TTS_PLAY --- .../org/coolreader/crengine/ReaderView.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/android/src/org/coolreader/crengine/ReaderView.java b/android/src/org/coolreader/crengine/ReaderView.java index 5fc702579..024171d6a 100644 --- a/android/src/org/coolreader/crengine/ReaderView.java +++ b/android/src/org/coolreader/crengine/ReaderView.java @@ -2414,15 +2414,17 @@ public void onCommand(final ReaderCommand cmd, final int param, final Runnable o showManual(); break; case DCMD_TTS_PLAY: { - if(!isTTSActive()){ - log.i("DCMD_TTS_PLAY: initializing TTS"); - mActivity.initTTS(ttsacc -> BackgroundThread.instance().executeGUI(() -> { - log.i("TTS created: opening TTS toolbar"); - ttsToolbar = TTSToolbarDlg.showDialog(mActivity, ReaderView.this, ttsacc); - ttsToolbar.setOnCloseListener(() -> ttsToolbar = null); - ttsToolbar.setAppSettings(mSettings, null); - })); + if(isTTSActive()){ + log.i("DCMD_TTS_PLAY: skipping re-init of TTS"); + return; } + log.i("DCMD_TTS_PLAY: initializing TTS"); + mActivity.initTTS(ttsacc -> BackgroundThread.instance().executeGUI(() -> { + log.i("TTS created: opening TTS toolbar"); + ttsToolbar = TTSToolbarDlg.showDialog(mActivity, ReaderView.this, ttsacc); + ttsToolbar.setOnCloseListener(() -> ttsToolbar = null); + ttsToolbar.setAppSettings(mSettings, null); + })); } break; case DCMD_TOGGLE_DOCUMENT_STYLES: