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

Commit 7b3d4b5c authored by Danny Baumann's avatar Danny Baumann Committed by Gerrit Code Review
Browse files

Merge "Increasing ringtone volume option (1/3)" into gingerbread

parents 2aac6020 d10baa9c
Loading
Loading
Loading
Loading
+35 −8
Original line number Diff line number Diff line
@@ -44,13 +44,21 @@ public class VolumePreference extends SeekBarPreference implements
    private static final String TAG = "VolumePreference";
    
    private int mStreamType;
    private boolean mRingerControl;

    /** May be null if the dialog isn't visible. */
    private SeekBarVolumizer mSeekBarVolumizer;
    
    public VolumePreference(Context context, AttributeSet attrs) {
        this(context, attrs, true);
    }

    /** @hide */
    public VolumePreference(Context context, AttributeSet attrs, boolean ringerControl) {
        super(context, attrs);

        mRingerControl = ringerControl;

        TypedArray a = context.obtainStyledAttributes(attrs,
                com.android.internal.R.styleable.VolumePreference, 0, 0);
        mStreamType = a.getInt(android.R.styleable.VolumePreference_streamType, 0);
@@ -66,7 +74,7 @@ public class VolumePreference extends SeekBarPreference implements
        super.onBindDialogView(view);
    
        final SeekBar seekBar = (SeekBar) view.findViewById(com.android.internal.R.id.seekbar);
        mSeekBarVolumizer = new SeekBarVolumizer(getContext(), seekBar, mStreamType);
        mSeekBarVolumizer = new SeekBarVolumizer(getContext(), seekBar, mStreamType, mRingerControl);

        getPreferenceManager().registerOnActivityStopListener(this);

@@ -139,6 +147,11 @@ public class VolumePreference extends SeekBarPreference implements
        }
    }

    /** @hide */
    protected boolean onVolumeChange(SeekBarVolumizer volumizer, int value) {
        return true;
    }

    @Override
    protected Parcelable onSaveInstanceState() {
        final Parcelable superState = super.onSaveInstanceState();
@@ -223,6 +236,7 @@ public class VolumePreference extends SeekBarPreference implements
    
        private AudioManager mAudioManager;
        private int mStreamType;
        private boolean mRingerControl;
        private int mOriginalStreamVolume; 
        private int mOriginalRingerMode;
        private Ringtone mRingtone;
@@ -247,9 +261,16 @@ public class VolumePreference extends SeekBarPreference implements
        };

        public SeekBarVolumizer(Context context, SeekBar seekBar, int streamType) {
            this(context, seekBar, streamType, true);
        }

        /** @hide */
        public SeekBarVolumizer(Context context, SeekBar seekBar,
                int streamType, boolean ringerControl) {
            mContext = context;
            mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
            mStreamType = streamType;
            mRingerControl = ringerControl;
            mSeekBar = seekBar;
            
            initSeekBar(seekBar);
@@ -289,8 +310,10 @@ public class VolumePreference extends SeekBarPreference implements
        
        public void revertVolume() {
            mAudioManager.setStreamVolume(mStreamType, mOriginalStreamVolume, 0);
            if (mRingerControl) {
                mAudioManager.setRingerMode(mOriginalRingerMode);
            }
        }
        
        public void onProgressChanged(SeekBar seekBar, int progress,
                boolean fromTouch) {
@@ -302,10 +325,14 @@ public class VolumePreference extends SeekBarPreference implements
        }

        void postSetVolume(int progress) {
            if (onVolumeChange(this, progress)) {
                // Do the volume changing separately to give responsive UI
                mLastProgress = progress;
                mHandler.removeCallbacks(this);
                mHandler.post(this);
            } else {
                mSeekBar.setProgress(mLastProgress);
            }
        }
    
        public void onStartTrackingTouch(SeekBar seekBar) {
@@ -319,7 +346,7 @@ public class VolumePreference extends SeekBarPreference implements
        
        public void run() {
            int newStreamVolume = mLastProgress;
            if (mStreamType == AudioManager.STREAM_RING) {
            if (mStreamType == AudioManager.STREAM_RING && mRingerControl) {
                int ringerMode = mAudioManager.getRingerMode();

                if (mLastProgress == 0) {
+18 −0
Original line number Diff line number Diff line
@@ -1602,6 +1602,24 @@ public final class Settings {
         */
        public static final String VOLUME_BLUETOOTH_SCO = "volume_bluetooth_sco";

        /**
         * Whether the phone ringtone should be played in an increasing manner
         * @hide
         */
        public static final String INCREASING_RING = "increasing_ring";

        /**
         * Minimum volume index for increasing ring volume
         * @hide
         */
        public static final String INCREASING_RING_MIN_VOLUME = "increasing_ring_min_vol";

        /**
         * Time (in ms) between ringtone volume increases
         * @hide
         */
        public static final String INCREASING_RING_INTERVAL = "increasing_ring_interval";

        /**
         * Whether the notifications should use the ring volume (value of 1) or
         * a separate notification volume (value of 0). In most cases, users