Merge "Fix issue in ring volume sample not always being played." into pi-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
1b899f2a0a
@@ -25,6 +25,7 @@ import android.os.Message;
|
||||
import android.os.UserHandle;
|
||||
import android.preference.SeekBarVolumizer;
|
||||
import android.provider.SearchIndexableResource;
|
||||
import android.support.annotation.VisibleForTesting;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.text.TextUtils;
|
||||
|
||||
@@ -50,8 +51,22 @@ public class SoundSettings extends DashboardFragment {
|
||||
|
||||
private static final int SAMPLE_CUTOFF = 2000; // manually cap sample playback at 2 seconds
|
||||
|
||||
private final VolumePreferenceCallback mVolumeCallback = new VolumePreferenceCallback();
|
||||
private final H mHandler = new H();
|
||||
@VisibleForTesting
|
||||
static final int STOP_SAMPLE = 1;
|
||||
|
||||
@VisibleForTesting
|
||||
final VolumePreferenceCallback mVolumeCallback = new VolumePreferenceCallback();
|
||||
@VisibleForTesting
|
||||
final Handler mHandler = new Handler(Looper.getMainLooper()) {
|
||||
@Override
|
||||
public void handleMessage(Message msg) {
|
||||
switch (msg.what) {
|
||||
case STOP_SAMPLE:
|
||||
mVolumeCallback.stopSample();
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private RingtonePreference mRequestPreference;
|
||||
|
||||
@@ -140,14 +155,17 @@ public class SoundSettings extends DashboardFragment {
|
||||
}
|
||||
mCurrent = sbv;
|
||||
if (mCurrent != null) {
|
||||
mHandler.removeMessages(H.STOP_SAMPLE);
|
||||
mHandler.sendEmptyMessageDelayed(H.STOP_SAMPLE, SAMPLE_CUTOFF);
|
||||
mHandler.removeMessages(STOP_SAMPLE);
|
||||
mHandler.sendEmptyMessageDelayed(STOP_SAMPLE, SAMPLE_CUTOFF);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStreamValueChanged(int stream, int progress) {
|
||||
// noop
|
||||
if (mCurrent != null) {
|
||||
mHandler.removeMessages(STOP_SAMPLE);
|
||||
mHandler.sendEmptyMessageDelayed(STOP_SAMPLE, SAMPLE_CUTOFF);
|
||||
}
|
||||
}
|
||||
|
||||
public void stopSample() {
|
||||
@@ -157,26 +175,6 @@ public class SoundSettings extends DashboardFragment {
|
||||
}
|
||||
}
|
||||
|
||||
// === Callbacks ===
|
||||
|
||||
|
||||
private final class H extends Handler {
|
||||
private static final int STOP_SAMPLE = 1;
|
||||
|
||||
private H() {
|
||||
super(Looper.getMainLooper());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleMessage(Message msg) {
|
||||
switch (msg.what) {
|
||||
case STOP_SAMPLE:
|
||||
mVolumeCallback.stopSample();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
|
||||
SoundSettings fragment, VolumeSeekBarPreference.Callback callback,
|
||||
Lifecycle lifecycle) {
|
||||
|
@@ -148,7 +148,6 @@ public class VolumeSeekBarPreference extends SeekBarPreference {
|
||||
mVolumizer.start();
|
||||
mVolumizer.setSeekBar(mSeekBar);
|
||||
updateIconView();
|
||||
mCallback.onStreamValueChanged(mStream, mSeekBar.getProgress());
|
||||
updateSuppressionText();
|
||||
if (!isEnabled()) {
|
||||
mSeekBar.setEnabled(false);
|
||||
@@ -156,15 +155,6 @@ public class VolumeSeekBarPreference extends SeekBarPreference {
|
||||
}
|
||||
}
|
||||
|
||||
// during initialization, this preference is the SeekBar listener
|
||||
@Override
|
||||
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch) {
|
||||
super.onProgressChanged(seekBar, progress, fromTouch);
|
||||
if (mCallback != null) {
|
||||
mCallback.onStreamValueChanged(mStream, progress);
|
||||
}
|
||||
}
|
||||
|
||||
private void updateIconView() {
|
||||
if (mIconView == null) return;
|
||||
if (mIconResId != 0) {
|
||||
|
@@ -233,8 +233,7 @@ public class SeekBarPreference extends RestrictedPreference
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onProgressChanged(
|
||||
SeekBar seekBar, int progress, boolean fromUser) {
|
||||
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
|
||||
if (fromUser && (mContinuousUpdates || !mTrackingTouch)) {
|
||||
syncProgress(seekBar);
|
||||
}
|
||||
|
Reference in New Issue
Block a user