@@ -13,6 +13,7 @@ import androidx.core.content.getSystemService
13
13
import androidx.core.net.toUri
14
14
import androidx.core.os.bundleOf
15
15
import androidx.core.os.postDelayed
16
+ import com.github.deweyreed.timer.component.tts.TtsSpeaker.onDone
16
17
import com.github.deweyreed.tools.anko.longToast
17
18
import com.github.deweyreed.tools.helper.HandlerHelper
18
19
import kotlinx.coroutines.Dispatchers
@@ -25,6 +26,7 @@ import xyz.aprildown.timer.app.base.data.PreferenceData.storedAudioTypeValue
25
26
import xyz.aprildown.timer.app.base.data.PreferenceData.useBakedCount
26
27
import xyz.aprildown.timer.app.base.media.AudioFocusManager
27
28
import xyz.aprildown.timer.app.base.media.RingtonePreviewKlaxon
29
+ import xyz.aprildown.timer.app.base.media.getMediaDuration
28
30
import xyz.aprildown.timer.domain.utils.fireAndForget
29
31
import xyz.aprildown.tools.helper.safeSharedPreference
30
32
import java.io.File
@@ -232,15 +234,11 @@ private class WelcomingTextToSpeech(
232
234
tts.setOnUtteranceProgressListener(
233
235
object : UtteranceProgressListener () {
234
236
override fun onStart (utteranceId : String? ) {
235
- HandlerHelper .runOnUiThread {
236
- listener.onStart()
237
- }
237
+ HandlerHelper .runOnUiThread(listener::onStart)
238
238
}
239
239
240
240
override fun onDone (utteranceId : String? ) {
241
- HandlerHelper .runOnUiThread {
242
- listener.onDone()
243
- }
241
+ HandlerHelper .runOnUiThread(listener::onDone)
244
242
}
245
243
246
244
@Suppress(" OVERRIDE_DEPRECATION" )
@@ -312,6 +310,12 @@ private class WelcomingTextToSpeech(
312
310
)
313
311
314
312
listener.onStart()
313
+
314
+ HandlerHelper .postDelayed(
315
+ speechUri.getMediaDuration(application) + 100L ,
316
+ listener::onDone
317
+ )
318
+
315
319
return @fireAndForget
316
320
}
317
321
@@ -336,10 +340,12 @@ private class WelcomingTextToSpeech(
336
340
337
341
fun stop () {
338
342
textToSpeech.stop()
343
+ HandlerHelper .remove(listener::onDone)
339
344
}
340
345
341
346
fun shutdown () {
342
347
textToSpeech.shutdown()
348
+ HandlerHelper .remove(listener::onDone)
343
349
}
344
350
}
345
351
0 commit comments