diff options
author | Jake Hamby <jhamby@google.com> | 2012-08-24 16:55:28 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-08-27 12:33:27 -0700 |
commit | bf70b6f871ac58439b5e98a305478a773e872b68 (patch) | |
tree | 9d35063d489e84d3e895d27b39ab4c37a0dde91f /src/com/android/cellbroadcastreceiver/CellBroadcastAlertFullScreen.java | |
parent | a93243d13ef0c0b29d871d483642e39c01db7c26 (diff) | |
download | android_packages_apps_CellBroadcastReceiver-bf70b6f871ac58439b5e98a305478a773e872b68.tar.gz android_packages_apps_CellBroadcastReceiver-bf70b6f871ac58439b5e98a305478a773e872b68.tar.bz2 android_packages_apps_CellBroadcastReceiver-bf70b6f871ac58439b5e98a305478a773e872b68.zip |
Fix behavior of CMAS audio alert and vibration.
Fix bugs in CMAS audio alert and vibration behavior:
* Use audio duration of 10.5 seconds for all CMAS alerts.
* Fix vibration cadence to match CMAS tone cadence.
* Mute audio when volume or camera keys are pressed.
* Don't play audio or vibration in silent mode.
* Don't play audio in vibrate mode.
* Use notification volume rather than alarm volume.
* Catch IllegalStateExceptions when stopping audio/TTS (sometimes
throws "Unable to retrieve AudioTrack pointer for stop()").
* Add Vibrate setting to CMAS settings for disabling vibration.
Bug: 7045214
Change-Id: Id98ea4f42f326b9a253407b9bbe67ca6acc6a20c
Diffstat (limited to 'src/com/android/cellbroadcastreceiver/CellBroadcastAlertFullScreen.java')
-rw-r--r-- | src/com/android/cellbroadcastreceiver/CellBroadcastAlertFullScreen.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertFullScreen.java b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertFullScreen.java index a8337f30..5bc2ba54 100644 --- a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertFullScreen.java +++ b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertFullScreen.java @@ -26,6 +26,7 @@ import android.os.Handler; import android.os.Message; import android.provider.Telephony; import android.telephony.CellBroadcastMessage; +import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.Window; @@ -200,6 +201,25 @@ public class CellBroadcastAlertFullScreen extends Activity { finish(); } + @Override + public boolean dispatchKeyEvent(KeyEvent event) { + switch (event.getKeyCode()) { + // Volume keys and camera keys mute the alert sound/vibration. + case KeyEvent.KEYCODE_VOLUME_UP: + case KeyEvent.KEYCODE_VOLUME_DOWN: + case KeyEvent.KEYCODE_VOLUME_MUTE: + case KeyEvent.KEYCODE_CAMERA: + case KeyEvent.KEYCODE_FOCUS: + // Stop playing alert sound/vibration/speech (if started) + stopService(new Intent(this, CellBroadcastAlertAudio.class)); + return true; + + default: + break; + } + return super.dispatchKeyEvent(event); + } + /** * Ignore the back button for emergency alerts (overridden by alert dialog so that the dialog * is dismissed). |