diff options
Diffstat (limited to 'packages/SystemUI/src/com/android')
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java b/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java index 24ac156f04d..17ebe3a2d9b 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java +++ b/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java @@ -64,6 +64,7 @@ import android.graphics.Picture; import android.graphics.PixelFormat; import android.graphics.PointF; import android.graphics.Rect; +import android.media.AudioManager; import android.media.MediaActionSound; import android.net.Uri; import android.os.AsyncTask; @@ -77,6 +78,8 @@ import android.os.ServiceManager; import android.os.SystemClock; import android.os.UserHandle; import android.os.UserManager; +import android.os.VibrationEffect; +import android.os.Vibrator; import android.provider.DeviceConfig; import android.provider.MediaStore; import android.text.TextUtils; @@ -661,6 +664,8 @@ class GlobalScreenshot { private AsyncTask<Void, Void, Void> mSaveInBgTask; private MediaActionSound mCameraSound; + private AudioManager mAudioManager; + private Vibrator mVibrator; /** @@ -734,6 +739,10 @@ class GlobalScreenshot { // Setup the Camera shutter sound mCameraSound = new MediaActionSound(); mCameraSound.load(MediaActionSound.SHUTTER_CLICK); + + // Grab system services needed for screenshot sound + mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); + mVibrator = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE); } /** @@ -968,8 +977,21 @@ class GlobalScreenshot { mScreenshotLayout.post(new Runnable() { @Override public void run() { - // Play the shutter sound to notify that we've taken a screenshot - mCameraSound.play(MediaActionSound.SHUTTER_CLICK); + switch (mAudioManager.getRingerMode()) { + case AudioManager.RINGER_MODE_SILENT: + // do nothing + break; + case AudioManager.RINGER_MODE_VIBRATE: + if (mVibrator != null && mVibrator.hasVibrator()) { + mVibrator.vibrate(VibrationEffect.createOneShot(50, + VibrationEffect.DEFAULT_AMPLITUDE)); + } + break; + case AudioManager.RINGER_MODE_NORMAL: + // Play the shutter sound to notify that we've taken a screenshot + mCameraSound.play(MediaActionSound.SHUTTER_CLICK); + break; + } mScreenshotView.setLayerType(View.LAYER_TYPE_HARDWARE, null); mScreenshotView.buildLayer(); |
