diff options
| author | 2013-09-06 17:21:45 -0700 | |
|---|---|---|
| committer | 2013-09-06 18:12:11 -0700 | |
| commit | 1f0ef2cc33e5b8fe00a869c22eabfd08cf7de504 (patch) | |
| tree | 05d0e2d180432fcf2f5accee238f7be5f29d9790 | |
| parent | 1cf2b91fe533d9e50bce6e5551ae26bccdb4a965 (diff) | |
Move public consts to HotwordRecognitionService
- The HotwordRecognitionService is the only public component of
Hotword recognition allowing others to implement hotword recognition
- The client API is not available for use by all, hence the consts need
to be moved to the service class.
- Ideally we'd have retained the public consts in the client side API
(HotwordRecognizer)
Change-Id: Ibd0d1c0d0514ec4e8f7c284e22c5fa6b7ef3df26
| -rw-r--r-- | api/current.txt | 9 | ||||
| -rw-r--r-- | core/java/android/speech/hotword/HotwordRecognitionService.java | 41 | ||||
| -rw-r--r-- | core/java/android/speech/hotword/HotwordRecognizer.java | 45 | ||||
| -rw-r--r-- | packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java | 13 |
4 files changed, 60 insertions, 48 deletions
diff --git a/api/current.txt b/api/current.txt index 4e17144e69b2..ed1cd7b350cb 100644 --- a/api/current.txt +++ b/api/current.txt @@ -22805,6 +22805,15 @@ package android.speech.hotword { method public android.os.IBinder onBind(android.content.Intent); method public abstract void onStartHotwordRecognition(android.speech.hotword.HotwordRecognitionService.Callback); method public abstract void onStopHotwordRecognition(); + field public static final int ERROR_AUDIO = 1; // 0x1 + field public static final int ERROR_CLIENT = 4; // 0x4 + field public static final int ERROR_FAILED = 3; // 0x3 + field public static final int ERROR_RECOGNIZER_BUSY = 2; // 0x2 + field public static final int ERROR_SERVICE_ALREADY_STARTED = 6; // 0x6 + field public static final int ERROR_TIMEOUT = 5; // 0x5 + field public static final int ERROR_UNAVAILABLE = 7; // 0x7 + field public static final int EVENT_TYPE_PROMPT_CHANGED = 1; // 0x1 + field public static final java.lang.String KEY_PROMPT_TEXT = "prompt_text"; field public static final java.lang.String SERVICE_INTERFACE = "android.speech.hotword.HotwordRecognitionService"; } diff --git a/core/java/android/speech/hotword/HotwordRecognitionService.java b/core/java/android/speech/hotword/HotwordRecognitionService.java index 7a26e0ce87ee..9a59f191233d 100644 --- a/core/java/android/speech/hotword/HotwordRecognitionService.java +++ b/core/java/android/speech/hotword/HotwordRecognitionService.java @@ -47,6 +47,39 @@ public abstract class HotwordRecognitionService extends Service { /** Debugging flag */ private static final boolean DBG = false; + /** + * Key used to retrieve a string to be displayed to the user passed to the + * {@link android.speech.hotword.HotwordRecognitionListener#onHotwordEvent(int, Bundle)} method. + */ + public static final String KEY_PROMPT_TEXT = "prompt_text"; + + /** + * Event type used to indicate to the user that the prompt for + * hotword recognition has changed. + */ + public static final int EVENT_TYPE_PROMPT_CHANGED = 1; + + /** Audio recording error. */ + public static final int ERROR_AUDIO = 1; + + /** RecognitionService busy. */ + public static final int ERROR_RECOGNIZER_BUSY = 2; + + /** This indicates a permanent failure and the clients shouldn't retry on this */ + public static final int ERROR_FAILED = 3; + + /** Client-side errors */ + public static final int ERROR_CLIENT = 4; + + /** The service timed out */ + public static final int ERROR_TIMEOUT = 5; + + /** The service received concurrent start calls */ + public static final int ERROR_SERVICE_ALREADY_STARTED = 6; + + /** Hotword recognition is unavailable on the device */ + public static final int ERROR_UNAVAILABLE = 7; + private static final int MSG_START_RECOGNITION = 1; private static final int MSG_STOP_RECOGNITION = 2; @@ -94,7 +127,7 @@ public abstract class HotwordRecognitionService extends Service { HotwordRecognitionService.this.onStartHotwordRecognition(mCurrentCallback); } else { try { - listener.onHotwordError(HotwordRecognizer.ERROR_RECOGNIZER_BUSY); + listener.onHotwordError(ERROR_RECOGNIZER_BUSY); } catch (RemoteException e) { if (DBG) Log.d(TAG, "onError call from startRecognition failed"); } @@ -105,10 +138,10 @@ public abstract class HotwordRecognitionService extends Service { private void dispatchStopRecognition(IHotwordRecognitionListener listener) { try { if (mCurrentCallback == null) { - listener.onHotwordError(HotwordRecognizer.ERROR_CLIENT); + listener.onHotwordError(ERROR_CLIENT); Log.w(TAG, "stopRecognition called with no preceding startRecognition - ignoring"); } else if (mCurrentCallback.mListener.asBinder() != listener.asBinder()) { - listener.onHotwordError(HotwordRecognizer.ERROR_RECOGNIZER_BUSY); + listener.onHotwordError(ERROR_RECOGNIZER_BUSY); Log.w(TAG, "stopRecognition called by a different caller - ignoring"); } else { // the correct state mCurrentCallback.onHotwordRecognitionStopped(); @@ -192,7 +225,7 @@ public abstract class HotwordRecognitionService extends Service { } try { Log.e(TAG, "Recognition service called without HOTWORD_RECOGNITION permissions"); - listener.onHotwordError(HotwordRecognizer.ERROR_FAILED); + listener.onHotwordError(ERROR_FAILED); } catch (RemoteException e) { Log.e(TAG, "onHotwordError(ERROR_FAILED) message failed", e); } diff --git a/core/java/android/speech/hotword/HotwordRecognizer.java b/core/java/android/speech/hotword/HotwordRecognizer.java index 939c11d7792f..9f05f31253d4 100644 --- a/core/java/android/speech/hotword/HotwordRecognizer.java +++ b/core/java/android/speech/hotword/HotwordRecognizer.java @@ -50,39 +50,6 @@ public class HotwordRecognizer { /** Log messages identifier */ private static final String TAG = "HotwordRecognizer"; - /** - * Key used to retrieve a string to be displayed to the user passed to the - * {@link android.speech.hotword.HotwordRecognitionListener#onHotwordEvent(int, Bundle)} method. - */ - public static final String PROMPT_TEXT = "prompt_text"; - - /** - * Event type used to indicate to the user that the hotword service has changed - * its state. - */ - public static final int EVENT_TYPE_STATE_CHANGED = 1; - - /** Audio recording error. */ - public static final int ERROR_AUDIO = 1; - - /** RecognitionService busy. */ - public static final int ERROR_RECOGNIZER_BUSY = 2; - - /** This indicates a permanent failure and the clients shouldn't retry on this */ - public static final int ERROR_FAILED = 3; - - /** Client-side errors */ - public static final int ERROR_CLIENT = 4; - - /** The service timed out */ - public static final int ERROR_TIMEOUT = 5; - - /** The service received concurrent start calls */ - public static final int ERROR_SERVICE_ALREADY_STARTED = 6; - - /** Hotword recognition is unavailable on the device */ - public static final int ERROR_UNAVAILABLE = 7; - /** action codes */ private static final int MSG_START = 1; private static final int MSG_STOP = 2; @@ -209,7 +176,7 @@ public class HotwordRecognizer { if (mServiceComponent == null) { Log.e(TAG, "no selected voice recognition service"); - mListener.onHotwordError(ERROR_CLIENT); + mListener.onHotwordError(HotwordRecognitionService.ERROR_CLIENT); return; } else { serviceIntent.setComponent(mServiceComponent); @@ -219,12 +186,12 @@ public class HotwordRecognizer { Log.e(TAG, "bind to recognition service failed"); mConnection = null; mService = null; - mListener.onHotwordError(ERROR_CLIENT); + mListener.onHotwordError(HotwordRecognitionService.ERROR_CLIENT); return; } putMessage(Message.obtain(mHandler, MSG_START)); } else { - mListener.onHotwordError(ERROR_SERVICE_ALREADY_STARTED); + mListener.onHotwordError(HotwordRecognitionService.ERROR_SERVICE_ALREADY_STARTED); return; } } @@ -252,7 +219,7 @@ public class HotwordRecognizer { if (DBG) Log.d(TAG, "service startRecognition command succeeded"); } catch (final RemoteException e) { Log.e(TAG, "startRecognition() failed", e); - mListener.onHotwordError(ERROR_CLIENT); + mListener.onHotwordError(HotwordRecognitionService.ERROR_CLIENT); } } @@ -268,7 +235,7 @@ public class HotwordRecognizer { if (DBG) Log.d(TAG, "service stopRecognition command succeeded"); } catch (final RemoteException e) { Log.e(TAG, "stopRecognition() failed", e); - mListener.onHotwordError(ERROR_CLIENT); + mListener.onHotwordError(HotwordRecognitionService.ERROR_CLIENT); } finally { mPendingTasks.clear(); mService = null; @@ -281,7 +248,7 @@ public class HotwordRecognizer { if (mService != null) { return true; } - mListener.onHotwordError(ERROR_CLIENT); + mListener.onHotwordError(HotwordRecognitionService.ERROR_CLIENT); Log.e(TAG, "not connected to the recognition service"); return false; } diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java index 78b842cd474c..40a1af63d34c 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java @@ -50,6 +50,7 @@ import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; import android.speech.hotword.HotwordRecognitionListener; +import android.speech.hotword.HotwordRecognitionService; import android.speech.hotword.HotwordRecognizer; import android.telephony.TelephonyManager; import android.util.AttributeSet; @@ -1775,11 +1776,13 @@ public class KeyguardHostView extends KeyguardViewBase { public void onHotwordEvent(int eventType, Bundle eventBundle) { if (DEBUG) Log.d(TAG, "onHotwordEvent: " + eventType); - if (eventType == HotwordRecognizer.EVENT_TYPE_STATE_CHANGED) { - if (eventBundle != null && eventBundle.containsKey(HotwordRecognizer.PROMPT_TEXT)) { - new KeyguardMessageArea.Helper( - (View) getSecurityView(mCurrentSecuritySelection)) - .setMessage(eventBundle.getString(HotwordRecognizer.PROMPT_TEXT),true); + if (eventType == HotwordRecognitionService.EVENT_TYPE_PROMPT_CHANGED) { + if (eventBundle != null + && eventBundle.containsKey(HotwordRecognitionService.KEY_PROMPT_TEXT)) { + new KeyguardMessageArea + .Helper((View) getSecurityView(mCurrentSecuritySelection)) + .setMessage(eventBundle.getString( + HotwordRecognitionService.KEY_PROMPT_TEXT),true); } } } |