diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2020-12-11 05:23:08 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-12-11 05:23:08 +0000 |
commit | 050ac792e5b0c1a951dbcd4cadd07af523477541 (patch) | |
tree | eaf60fba30ac795d5fce83863e77f18e541f7988 /src | |
parent | f6f58b31a17974a0fd92991cbcf80c67940af536 (diff) | |
parent | 63ff223ee403a6169b9411191e6a7c6fc4a9836d (diff) | |
download | EmergencyInfo-050ac792e5b0c1a951dbcd4cadd07af523477541.tar.gz |
Merge "Update panic alarm and override volume"
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/emergency/action/EmergencyActionFragment.java | 37 |
1 files changed, 34 insertions, 3 deletions
diff --git a/src/com/android/emergency/action/EmergencyActionFragment.java b/src/com/android/emergency/action/EmergencyActionFragment.java index f4a9aa76..43598b6d 100644 --- a/src/com/android/emergency/action/EmergencyActionFragment.java +++ b/src/com/android/emergency/action/EmergencyActionFragment.java @@ -20,6 +20,7 @@ import static android.telecom.TelecomManager.EXTRA_CALL_SOURCE; import android.content.Context; import android.media.AudioAttributes; +import android.media.AudioManager; import android.media.MediaPlayer; import android.net.Uri; import android.os.Bundle; @@ -52,14 +53,18 @@ public class EmergencyActionFragment extends Fragment implements OnSlideComplete private static final String STATE_MILLIS_LEFT = "STATE_MILLIS_LEFT"; private MediaPlayer mMediaPlayer; + private AudioManager mAudioManager; private TelecomManager mTelecomManager; private CountDownTimer mCountDownTimer; private EmergencyNumberUtils mEmergencyNumberUtils; private long mCountDownMillisLeft; + private int mUserSetAlarmVolume; + private boolean mResetAlarmVolumeNeeded; @Override public void onAttach(Context context) { super.onAttach(context); + mAudioManager = context.getSystemService(AudioManager.class); mEmergencyNumberUtils = new EmergencyNumberUtils(context); mTelecomManager = context.getSystemService(TelecomManager.class); } @@ -186,13 +191,39 @@ public class EmergencyActionFragment extends Fragment implements OnSlideComplete return false; }); + setAlarmVolumeToFull(); mMediaPlayer.start(); } private void stopWarningSound() { - if (mMediaPlayer != null && mMediaPlayer.isPlaying()) { - mMediaPlayer.stop(); - mMediaPlayer.release(); + if (mMediaPlayer != null) { + try { + mMediaPlayer.stop(); + mMediaPlayer.release(); + } catch (IllegalStateException e) { + Log.w(TAG, "Exception when trying to stop media player"); + } + mMediaPlayer = null; + } + + resetAlarmVolume(); + } + + private void setAlarmVolumeToFull() { + int streamType = AudioManager.STREAM_ALARM; + mUserSetAlarmVolume = mAudioManager.getStreamVolume(streamType); + mResetAlarmVolumeNeeded = true; + + Log.d(TAG, "Setting alarm volume from " + mUserSetAlarmVolume + "to full"); + mAudioManager.setStreamVolume(streamType, + mAudioManager.getStreamMaxVolume(streamType), 0); + } + + private void resetAlarmVolume() { + if (mResetAlarmVolumeNeeded) { + Log.d(TAG, "Resetting alarm volume to back to " + mUserSetAlarmVolume); + mAudioManager.setStreamVolume(AudioManager.STREAM_ALARM, mUserSetAlarmVolume, 0); + mResetAlarmVolumeNeeded = false; } } |