diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/KiwixTextToSpeech.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/main/KiwixTextToSpeech.kt
index 58960c94f..3a4608809 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/KiwixTextToSpeech.kt
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/KiwixTextToSpeech.kt
@@ -117,7 +117,8 @@ class KiwixTextToSpeech internal constructor(
} else {
tts.language = locale
if (getFeatures(tts).contains(Engine.KEY_FEATURE_NOT_INSTALLED)) {
- context.toast(R.string.tts_lang_not_supported, Toast.LENGTH_LONG)
+ val activity = context as CoreMainActivity?
+ activity?.externalLinkOpener?.showTTSLanguageDownloadDialog()
} else if (requestAudioFocus()) {
loadURL(webView)
}
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/ExternalLinkOpener.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/ExternalLinkOpener.kt
index 71a8ae76b..028f02c1a 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/ExternalLinkOpener.kt
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/ExternalLinkOpener.kt
@@ -20,6 +20,7 @@ package org.kiwix.kiwixmobile.core.utils
import android.app.Activity
import android.content.Intent
+import android.speech.tts.TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA
import org.kiwix.kiwixmobile.core.R
import org.kiwix.kiwixmobile.core.extensions.toast
import org.kiwix.kiwixmobile.core.utils.dialog.AlertDialogShower
@@ -61,4 +62,17 @@ class ExternalLinkOpener @Inject constructor(
}
)
}
+
+ fun showTTSLanguageDownloadDialog() {
+ alertDialogShower.show(
+ KiwixDialog.DownloadTTSLanguage,
+ {
+ activity.startActivity(
+ Intent().apply {
+ action = ACTION_INSTALL_TTS_DATA
+ }
+ )
+ }
+ )
+ }
}
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/dialog/KiwixDialog.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/dialog/KiwixDialog.kt
index 81ff47f0c..4aae4bc64 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/dialog/KiwixDialog.kt
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/dialog/KiwixDialog.kt
@@ -221,6 +221,13 @@ sealed class KiwixDialog(
android.R.string.cancel
)
+ object DownloadTTSLanguage : KiwixDialog(
+ R.string.download_tts_language_title,
+ R.string.download_tts_language_message,
+ R.string.download,
+ android.R.string.cancel
+ )
+
open class YesNoDialog(
title: Int?,
message: Int
diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml
index 9caab43e3..e144df807 100644
--- a/core/src/main/res/values/strings.xml
+++ b/core/src/main/res/values/strings.xml
@@ -323,4 +323,6 @@
Open Article
Note: Notes are not deleted from your storage
Delete Selected Notes?
+ Download this language for read aloud feature
+ Please click download button it will automatically download the required language.