Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aa9fbad2 authored by Ashwin R C's avatar Ashwin R C Committed by Michael Bestas
Browse files

SystemUI: Adapt screenshot sound to ringer modes

Change-Id: I381c351131241e45ddb6049706d6c302c2eee946
parent d10203dd
Loading
Loading
Loading
Loading
+24 −2
Original line number Diff line number Diff line
@@ -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() {
                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();