am a6f8ebc6: Merge "Fix TTS instantiation from webview accessibility handlers." into ics-mr1
* commit 'a6f8ebc616cfe3185ae2513ef2f846e8d32b551e': Fix TTS instantiation from webview accessibility handlers.
This commit is contained in:
@@ -490,6 +490,7 @@ public class TextToSpeech {
|
||||
private final Map<String, Uri> mUtterances;
|
||||
private final Bundle mParams = new Bundle();
|
||||
private final TtsEngines mEnginesHelper;
|
||||
private final String mPackageName;
|
||||
private volatile String mCurrentEngine = null;
|
||||
|
||||
/**
|
||||
@@ -518,19 +519,36 @@ public class TextToSpeech {
|
||||
* @param engine Package name of the TTS engine to use.
|
||||
*/
|
||||
public TextToSpeech(Context context, OnInitListener listener, String engine) {
|
||||
this(context, listener, engine, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Used by the framework to instantiate TextToSpeech objects with a supplied
|
||||
* package name, instead of using {@link android.content.Context#getPackageName()}
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public TextToSpeech(Context context, OnInitListener listener, String engine,
|
||||
String packageName) {
|
||||
mContext = context;
|
||||
mInitListener = listener;
|
||||
mRequestedEngine = engine;
|
||||
|
||||
mEarcons = new HashMap<String, Uri>();
|
||||
mUtterances = new HashMap<String, Uri>();
|
||||
mUtteranceProgressListener = null;
|
||||
|
||||
mEnginesHelper = new TtsEngines(mContext);
|
||||
if (packageName != null) {
|
||||
mPackageName = packageName;
|
||||
} else {
|
||||
mPackageName = mContext.getPackageName();
|
||||
}
|
||||
initTts();
|
||||
}
|
||||
|
||||
private String getPackageName() {
|
||||
return mContext.getPackageName();
|
||||
return mPackageName;
|
||||
}
|
||||
|
||||
private <R> R runActionNoReconnect(Action<R> action, R errorResult, String method) {
|
||||
|
||||
@@ -450,7 +450,7 @@ public abstract class TextToSpeechService extends Service {
|
||||
@Override
|
||||
public void dispatchOnDone() {
|
||||
final String utteranceId = getUtteranceId();
|
||||
if (!TextUtils.isEmpty(utteranceId)) {
|
||||
if (utteranceId != null) {
|
||||
mCallbacks.dispatchOnDone(getCallingApp(), utteranceId);
|
||||
}
|
||||
}
|
||||
@@ -458,7 +458,7 @@ public abstract class TextToSpeechService extends Service {
|
||||
@Override
|
||||
public void dispatchOnStart() {
|
||||
final String utteranceId = getUtteranceId();
|
||||
if (!TextUtils.isEmpty(utteranceId)) {
|
||||
if (utteranceId != null) {
|
||||
mCallbacks.dispatchOnStart(getCallingApp(), utteranceId);
|
||||
}
|
||||
}
|
||||
@@ -466,7 +466,7 @@ public abstract class TextToSpeechService extends Service {
|
||||
@Override
|
||||
public void dispatchOnError() {
|
||||
final String utteranceId = getUtteranceId();
|
||||
if (!TextUtils.isEmpty(utteranceId)) {
|
||||
if (utteranceId != null) {
|
||||
mCallbacks.dispatchOnError(getCallingApp(), utteranceId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1306,8 +1306,15 @@ public class WebView extends AbsoluteLayout
|
||||
if (AccessibilityManager.getInstance(mContext).isEnabled()
|
||||
&& getSettings().getJavaScriptEnabled()) {
|
||||
// exposing the TTS for now ...
|
||||
mTextToSpeech = new TextToSpeech(getContext(), null);
|
||||
addJavascriptInterface(mTextToSpeech, ALIAS_ACCESSIBILITY_JS_INTERFACE);
|
||||
final Context ctx = getContext();
|
||||
if (ctx != null) {
|
||||
final String packageName = ctx.getPackageName();
|
||||
if (packageName != null) {
|
||||
mTextToSpeech = new TextToSpeech(getContext(), null, null,
|
||||
packageName + ".**webview**");
|
||||
addJavascriptInterface(mTextToSpeech, ALIAS_ACCESSIBILITY_JS_INTERFACE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user