Merge "Enable hover states for SeekBarPreference" into udc-dev am: ca08af3ff6

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/22361715

Change-Id: I99c742e3c75dc04afe3024ab57188a13213e436f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Chris Antol
2023-03-31 21:28:00 +00:00
committed by Automerger Merge Worker

View File

@@ -27,6 +27,7 @@ import android.os.Parcelable;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View; import android.view.View;
import android.view.accessibility.AccessibilityNodeInfo; import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.SeekBar; import android.widget.SeekBar;
@@ -42,7 +43,7 @@ import com.android.settingslib.RestrictedPreference;
* Based on android.preference.SeekBarPreference, but uses support preference as base. * Based on android.preference.SeekBarPreference, but uses support preference as base.
*/ */
public class SeekBarPreference extends RestrictedPreference public class SeekBarPreference extends RestrictedPreference
implements OnSeekBarChangeListener, View.OnKeyListener { implements OnSeekBarChangeListener, View.OnKeyListener, View.OnHoverListener {
public static final int HAPTIC_FEEDBACK_MODE_NONE = 0; public static final int HAPTIC_FEEDBACK_MODE_NONE = 0;
public static final int HAPTIC_FEEDBACK_MODE_ON_TICKS = 1; public static final int HAPTIC_FEEDBACK_MODE_ON_TICKS = 1;
@@ -128,6 +129,7 @@ public class SeekBarPreference extends RestrictedPreference
public void onBindViewHolder(PreferenceViewHolder view) { public void onBindViewHolder(PreferenceViewHolder view) {
super.onBindViewHolder(view); super.onBindViewHolder(view);
view.itemView.setOnKeyListener(this); view.itemView.setOnKeyListener(this);
view.itemView.setOnHoverListener(this);
mSeekBar = (SeekBar) view.findViewById( mSeekBar = (SeekBar) view.findViewById(
com.android.internal.R.id.seekbar); com.android.internal.R.id.seekbar);
mSeekBar.setOnSeekBarChangeListener(this); mSeekBar.setOnSeekBarChangeListener(this);
@@ -414,6 +416,19 @@ public class SeekBarPreference extends RestrictedPreference
notifyChanged(); notifyChanged();
} }
@Override
public boolean onHover(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_HOVER_ENTER:
v.setHovered(true);
break;
case MotionEvent.ACTION_HOVER_EXIT:
v.setHovered(false);
break;
}
return false;
}
/** /**
* SavedState, a subclass of {@link BaseSavedState}, will store the state * SavedState, a subclass of {@link BaseSavedState}, will store the state
* of MyPreference, a subclass of Preference. * of MyPreference, a subclass of Preference.