mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-11-02 06:01:53 +00:00
TtsService: support changing language to the user locale when they change the system language.
This commit is contained in:
@@ -66,6 +66,7 @@ public class TtsService extends TextToSpeechService {
|
||||
private Voice mMatchingVoice = null;
|
||||
|
||||
private BroadcastReceiver mOnLanguagesDownloaded = null;
|
||||
private BroadcastReceiver mOnSystemLocaleChanged = null;
|
||||
|
||||
private String mLanguage = DEFAULT_LANGUAGE;
|
||||
private String mCountry = DEFAULT_COUNTRY;
|
||||
@@ -75,6 +76,18 @@ public class TtsService extends TextToSpeechService {
|
||||
public void onCreate() {
|
||||
initializeTtsEngine();
|
||||
super.onCreate();
|
||||
|
||||
mOnSystemLocaleChanged = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
Locale locale = Locale.getDefault();
|
||||
int ret = onLoadLanguage(locale.getISO3Language(), locale.getISO3Country(), locale.getVariant());
|
||||
Log.i("LocaleChange", "Locale = " + locale + "; status = " + ret);
|
||||
}
|
||||
};
|
||||
|
||||
final IntentFilter filter = new IntentFilter(Intent.ACTION_LOCALE_CHANGED);
|
||||
registerReceiver(mOnSystemLocaleChanged, filter);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -83,6 +96,9 @@ public class TtsService extends TextToSpeechService {
|
||||
if (mOnLanguagesDownloaded != null) {
|
||||
unregisterReceiver(mOnLanguagesDownloaded);
|
||||
}
|
||||
if (mOnSystemLocaleChanged != null) {
|
||||
unregisterReceiver(mOnSystemLocaleChanged);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -203,7 +219,7 @@ public class TtsService extends TextToSpeechService {
|
||||
@Override
|
||||
protected synchronized void onSynthesizeText(
|
||||
SynthesisRequest request, SynthesisCallback callback) {
|
||||
final int result = onLoadLanguage(request.getLanguage(), request.getCountry(), request.getVariant());
|
||||
final int result = onLoadLanguage(mLanguage, mCountry, mVariant);
|
||||
switch (result) {
|
||||
case TextToSpeech.LANG_MISSING_DATA:
|
||||
case TextToSpeech.LANG_NOT_SUPPORTED:
|
||||
|
||||
Reference in New Issue
Block a user