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.