OSDN Git Service

Fix for bug 2548048 - it was impossible for applications to discover
authorCharles Chen <clchen@google.com>
Tue, 30 Mar 2010 01:30:30 +0000 (18:30 -0700)
committerCharles Chen <clchen@google.com>
Tue, 30 Mar 2010 01:35:30 +0000 (18:35 -0700)
if their TTS settings were being overridden by the user or not.

Change-Id: I28856a1b79c9455435671d13ed614a1ccb4e95ea

core/java/android/speech/tts/ITts.aidl
core/java/android/speech/tts/TextToSpeech.java
packages/TtsService/src/android/tts/TtsService.java

index df8ea0c..2fd3672 100755 (executable)
@@ -63,5 +63,7 @@ interface ITts {
 \r
     int setEngineByPackageName(in String enginePackageName);
 
-    String getDefaultEngine();\r
+    String getDefaultEngine();
+
+    boolean areDefaultsEnforced();\r
 }\r
index 69b60db..eeb42c4 100755 (executable)
@@ -1379,4 +1379,45 @@ public class TextToSpeech {
             }
         }
     }
+
+
+    /**
+     * Returns whether or not the user is forcing their defaults to override the
+     * Text-To-Speech settings set by applications.
+     *
+     * @return Whether or not defaults are enforced.
+     *
+     * @hide
+     */
+    public boolean areDefaultsEnforced() {
+        synchronized (mStartLock) {
+            boolean defaultsEnforced = false;
+            if (!mStarted) {
+                return defaultsEnforced;
+            }
+            try {
+                defaultsEnforced = mITts.areDefaultsEnforced();
+            } catch (RemoteException e) {
+                // TTS died; restart it.
+                Log.e("TextToSpeech.java - areDefaultsEnforced", "RemoteException");
+                e.printStackTrace();
+                mStarted = false;
+                initTts();
+            } catch (NullPointerException e) {
+                // TTS died; restart it.
+                Log.e("TextToSpeech.java - areDefaultsEnforced", "NullPointerException");
+                e.printStackTrace();
+                mStarted = false;
+                initTts();
+            } catch (IllegalStateException e) {
+                // TTS died; restart it.
+                Log.e("TextToSpeech.java - areDefaultsEnforced", "IllegalStateException");
+                e.printStackTrace();
+                mStarted = false;
+                initTts();
+            } finally {
+                return defaultsEnforced;
+            }
+        }
+    }
 }
index ae48e0e..530ca57 100755 (executable)
@@ -1445,6 +1445,16 @@ public class TtsService extends Service implements OnCompletionListener {
             return mSelf.getDefaultEngine();
         }
 
+        /**
+         * Returns whether or not the user is forcing their defaults to override the
+         * Text-To-Speech settings set by applications.
+         *
+         * @return Whether or not defaults are enforced.
+         */
+        public boolean areDefaultsEnforced() {
+            return mSelf.isDefaultEnforced();
+        }
+
     };
 
 }