diff options
author | Ashwin R C <ashwin2001achu@gmail.com> | 2020-05-27 10:26:16 +0000 |
---|---|---|
committer | Michael Bestas <mkbestas@lineageos.org> | 2020-06-08 17:23:21 +0200 |
commit | aa9fbad20ad63940358f8461879bd34ec5d216f3 (patch) | |
tree | 75bbd696dd1e761a6805b56bb759af945f5c447d | |
parent | d10203dde46ee7f94a5ae3a65800c8a409a9a4b4 (diff) | |
download | frameworks_base-aa9fbad20ad63940358f8461879bd34ec5d216f3.tar.gz frameworks_base-aa9fbad20ad63940358f8461879bd34ec5d216f3.tar.bz2 frameworks_base-aa9fbad20ad63940358f8461879bd34ec5d216f3.zip |
SystemUI: Adapt screenshot sound to ringer modes
Change-Id: I381c351131241e45ddb6049706d6c302c2eee946
-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(); |