Merge "Add haptic effect for the seekbar in Settings 2/n."

This commit is contained in:
John Li
2020-12-01 10:50:28 +00:00
committed by Android (Google) Code Review
2 changed files with 38 additions and 6 deletions

View File

@@ -16,6 +16,7 @@
package com.android.settings.accessibility;
import static android.view.HapticFeedbackConstants.CLOCK_TICK;
import static com.android.settings.Utils.isNightMode;
import android.content.Context;
@@ -44,6 +45,7 @@ public class BalanceSeekBar extends SeekBar {
private final Context mContext;
private final Object mListenerLock = new Object();
private OnSeekBarChangeListener mOnSeekBarChangeListener;
private int mLastProgress = -1;
private final OnSeekBarChangeListener mProxySeekBarListener = new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
@@ -73,6 +75,12 @@ public class BalanceSeekBar extends SeekBar {
progress = mCenter;
seekBar.setProgress(progress); // direct update (fromUser becomes false)
}
if (progress != mLastProgress) {
if (progress == mCenter || progress == getMin() || progress == getMax()) {
seekBar.performHapticFeedback(CLOCK_TICK);
}
mLastProgress = progress;
}
final float balance = (progress - mCenter) * 0.01f;
Settings.System.putFloatForUser(mContext.getContentResolver(),
Settings.System.MASTER_BALANCE, balance, UserHandle.USER_CURRENT);
@@ -152,10 +160,5 @@ public class BalanceSeekBar extends SeekBar {
canvas.restore();
super.onDraw(canvas);
}
@VisibleForTesting
OnSeekBarChangeListener getProxySeekBarListener() {
return mProxySeekBarListener;
}
}