Merge "Fix for TTS.setLanguage throwing MissingResourceException" into jb-mr2-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
3cf3a0b30c
@ -42,6 +42,7 @@ import java.util.HashSet;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.MissingResourceException;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1128,9 +1129,23 @@ public class TextToSpeech {
|
|||||||
if (loc == null) {
|
if (loc == null) {
|
||||||
return LANG_NOT_SUPPORTED;
|
return LANG_NOT_SUPPORTED;
|
||||||
}
|
}
|
||||||
String language = loc.getISO3Language();
|
String language = null, country = null;
|
||||||
String country = loc.getISO3Country();
|
try {
|
||||||
|
language = loc.getISO3Language();
|
||||||
|
} catch (MissingResourceException e) {
|
||||||
|
Log.w(TAG, "Couldn't retrieve ISO 639-2/T language code for locale: " + loc, e);
|
||||||
|
return LANG_NOT_SUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
country = loc.getISO3Country();
|
||||||
|
} catch (MissingResourceException e) {
|
||||||
|
Log.w(TAG, "Couldn't retrieve ISO 3166 country code for locale: " + loc, e);
|
||||||
|
return LANG_NOT_SUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
String variant = loc.getVariant();
|
String variant = loc.getVariant();
|
||||||
|
|
||||||
// Check if the language, country, variant are available, and cache
|
// Check if the language, country, variant are available, and cache
|
||||||
// the available parts.
|
// the available parts.
|
||||||
// Note that the language is not actually set here, instead it is cached so it
|
// Note that the language is not actually set here, instead it is cached so it
|
||||||
@ -1195,8 +1210,23 @@ public class TextToSpeech {
|
|||||||
return runAction(new Action<Integer>() {
|
return runAction(new Action<Integer>() {
|
||||||
@Override
|
@Override
|
||||||
public Integer run(ITextToSpeechService service) throws RemoteException {
|
public Integer run(ITextToSpeechService service) throws RemoteException {
|
||||||
return service.isLanguageAvailable(loc.getISO3Language(),
|
String language = null, country = null;
|
||||||
loc.getISO3Country(), loc.getVariant());
|
|
||||||
|
try {
|
||||||
|
language = loc.getISO3Language();
|
||||||
|
} catch (MissingResourceException e) {
|
||||||
|
Log.w(TAG, "Couldn't retrieve ISO 639-2/T language code for locale: " + loc, e);
|
||||||
|
return LANG_NOT_SUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
country = loc.getISO3Country();
|
||||||
|
} catch (MissingResourceException e) {
|
||||||
|
Log.w(TAG, "Couldn't retrieve ISO 3166 country code for locale: " + loc, e);
|
||||||
|
return LANG_NOT_SUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
return service.isLanguageAvailable(language, country, loc.getVariant());
|
||||||
}
|
}
|
||||||
}, LANG_NOT_SUPPORTED, "isLanguageAvailable");
|
}, LANG_NOT_SUPPORTED, "isLanguageAvailable");
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user