Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 31825c11 authored by Narayan Kamath's avatar Narayan Kamath Committed by Android Git Automerger
Browse files

am be1b5ce4: am a6f8ebc6: Merge "Fix TTS instantiation from webview...

am be1b5ce4: am a6f8ebc6: Merge "Fix TTS instantiation from webview accessibility handlers." into ics-mr1

* commit 'be1b5ce4':
  Fix TTS instantiation from webview accessibility handlers.
parents 376690c0 be1b5ce4
Loading
Loading
Loading
Loading
+19 −1
Original line number Diff line number Diff line
@@ -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) {
+3 −3
Original line number Diff line number Diff line
@@ -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);
            }
        }
+9 −2
Original line number Diff line number Diff line
@@ -1306,10 +1306,17 @@ public class WebView extends AbsoluteLayout
        if (AccessibilityManager.getInstance(mContext).isEnabled()
                && getSettings().getJavaScriptEnabled()) {
            // exposing the TTS for now ...
            mTextToSpeech = new TextToSpeech(getContext(), null);
            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);
                }
            }
        }
    }

    /**
     * Removes accessibility APIs from JavaScript.