diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/CardMediaPlayer.kt b/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/CardMediaPlayer.kt index 776aef4ddaa5..65de8c531624 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/CardMediaPlayer.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/CardMediaPlayer.kt @@ -226,6 +226,7 @@ class CardMediaPlayer : Closeable { */ private suspend fun playAllSoundsInternal(cardSide: CardSide, isAutomaticPlayback: Boolean) { if (!isEnabled) return + if (!isQuestionsAnswersInitialised()) return val soundList = when (cardSide) { CardSide.QUESTION -> questions CardSide.ANSWER -> answers @@ -291,8 +292,13 @@ class CardMediaPlayer : Closeable { return@withContext true } - fun hasSounds(displayAnswer: Boolean): Boolean = - if (displayAnswer) answers.any() else questions.any() + fun hasSounds(displayAnswer: Boolean): Boolean { + if (!isQuestionsAnswersInitialised()) { + // Questions or Answers property not initialized, return false + return false + } + return if (displayAnswer) answers.any() else questions.any() + } /** * Plays all sounds for the current side, calling [onSoundGroupCompleted] when completed @@ -343,6 +349,10 @@ class CardMediaPlayer : Closeable { soundTagPlayer.videoPlayer.onVideoPaused() } + private fun isQuestionsAnswersInitialised(): Boolean { + return (this::questions.isInitialized || this::answers.isInitialized) + } + companion object { const val TTS_PLAYER_TIMEOUT_MS = 2_500L