@@ -490,6 +490,7 @@ public class Engine {
490490 private final Map <String , Uri > mUtterances ;
491491 private final Bundle mParams = new Bundle ();
492492 private final TtsEngines mEnginesHelper ;
493+ private final String mPackageName ;
493494 private volatile String mCurrentEngine = null ;
494495
495496 /**
@@ -518,19 +519,36 @@ public TextToSpeech(Context context, OnInitListener listener) {
518519 * @param engine Package name of the TTS engine to use.
519520 */
520521 public TextToSpeech (Context context , OnInitListener listener , String engine ) {
522+ this (context , listener , engine , null );
523+ }
524+
525+ /**
526+ * Used by the framework to instantiate TextToSpeech objects with a supplied
527+ * package name, instead of using {@link android.content.Context#getPackageName()}
528+ *
529+ * @hide
530+ */
531+ public TextToSpeech (Context context , OnInitListener listener , String engine ,
532+ String packageName ) {
521533 mContext = context ;
522534 mInitListener = listener ;
523535 mRequestedEngine = engine ;
524536
525537 mEarcons = new HashMap <String , Uri >();
526538 mUtterances = new HashMap <String , Uri >();
539+ mUtteranceProgressListener = null ;
527540
528541 mEnginesHelper = new TtsEngines (mContext );
542+ if (packageName != null ) {
543+ mPackageName = packageName ;
544+ } else {
545+ mPackageName = mContext .getPackageName ();
546+ }
529547 initTts ();
530548 }
531549
532550 private String getPackageName () {
533- return mContext . getPackageName () ;
551+ return mPackageName ;
534552 }
535553
536554 private <R > R runActionNoReconnect (Action <R > action , R errorResult , String method ) {
0 commit comments