summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.qmake.conf2
-rw-r--r--src/plugins/tts/android/jar/src/org/qtproject/qt5/android/speech/QtTextToSpeech.java7
-rw-r--r--src/plugins/tts/android/src/qtexttospeech_android.cpp20
3 files changed, 26 insertions, 3 deletions
diff --git a/.qmake.conf b/.qmake.conf
index 165ecba..ab3b383 100644
--- a/.qmake.conf
+++ b/.qmake.conf
@@ -2,4 +2,4 @@ load(qt_build_config)
CONFIG += qt_example_installs
CONFIG += warning_clean
-MODULE_VERSION = 5.8.1
+MODULE_VERSION = 5.9.0
diff --git a/src/plugins/tts/android/jar/src/org/qtproject/qt5/android/speech/QtTextToSpeech.java b/src/plugins/tts/android/jar/src/org/qtproject/qt5/android/speech/QtTextToSpeech.java
index d6a6846..a6e6091 100644
--- a/src/plugins/tts/android/jar/src/org/qtproject/qt5/android/speech/QtTextToSpeech.java
+++ b/src/plugins/tts/android/jar/src/org/qtproject/qt5/android/speech/QtTextToSpeech.java
@@ -49,6 +49,7 @@ import android.os.Bundle;
import android.util.Log;
import java.lang.Float;
import java.util.HashMap;
+import java.util.Locale;
public class QtTextToSpeech
{
@@ -199,4 +200,10 @@ public class QtTextToSpeech
return TextToSpeech.SUCCESS;
}
+ public boolean setLocale(Locale locale)
+ {
+ int result = mTts.setLanguage(locale);
+ return (result != TextToSpeech.LANG_NOT_SUPPORTED) && (result != TextToSpeech.LANG_MISSING_DATA);
+ }
+
}
diff --git a/src/plugins/tts/android/src/qtexttospeech_android.cpp b/src/plugins/tts/android/src/qtexttospeech_android.cpp
index 6b6ed6c..527bbec 100644
--- a/src/plugins/tts/android/src/qtexttospeech_android.cpp
+++ b/src/plugins/tts/android/src/qtexttospeech_android.cpp
@@ -256,9 +256,25 @@ QVector<QLocale> QTextToSpeechEngineAndroid::availableLocales() const
return QVector<QLocale>();
}
-bool QTextToSpeechEngineAndroid::setLocale(const QLocale & /* locale */)
+bool QTextToSpeechEngineAndroid::setLocale(const QLocale &locale)
{
- return false;
+ QStringList parts = locale.name().split('_');
+
+ if (parts.length() != 2)
+ return false;
+
+ QString languageCode = parts.at(0);
+ QString countryCode = parts.at(1);
+
+ QJNIEnvironmentPrivate env;
+ jstring jLanguageCode = env->NewString(reinterpret_cast<const jchar*>(languageCode.constData()),
+ languageCode.length());
+ jstring jCountryCode = env->NewString(reinterpret_cast<const jchar*>(countryCode.constData()),
+ countryCode.length());
+
+ QJNIObjectPrivate jLocale("java/util/Locale", "(Ljava/lang/String;Ljava/lang/String;)V", jLanguageCode, jCountryCode);
+
+ return m_speech.callMethod<jboolean>("setLocale", "(Ljava/util/Locale;)Z", jLocale.object());
}
QLocale QTextToSpeechEngineAndroid::locale() const