Loading core/java/android/preference/VolumePreference.java +35 −8 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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); Loading Loading @@ -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(); Loading Loading @@ -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; Loading @@ -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); Loading Loading @@ -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) { Loading @@ -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) { Loading @@ -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) { Loading core/java/android/provider/Settings.java +18 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading
core/java/android/preference/VolumePreference.java +35 −8 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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); Loading Loading @@ -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(); Loading Loading @@ -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; Loading @@ -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); Loading Loading @@ -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) { Loading @@ -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) { Loading @@ -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) { Loading
core/java/android/provider/Settings.java +18 −0 Original line number Diff line number Diff line Loading @@ -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 Loading