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

Commit ca08af3f authored by Chris Antol's avatar Chris Antol Committed by Android (Google) Code Review
Browse files

Merge "Enable hover states for SeekBarPreference" into udc-dev

parents cadf15af 7bfd1073
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.os.Parcelable;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.SeekBar;
@@ -42,7 +43,7 @@ import com.android.settingslib.RestrictedPreference;
 * Based on android.preference.SeekBarPreference, but uses support preference as base.
 */
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_ON_TICKS = 1;
@@ -128,6 +129,7 @@ public class SeekBarPreference extends RestrictedPreference
    public void onBindViewHolder(PreferenceViewHolder view) {
        super.onBindViewHolder(view);
        view.itemView.setOnKeyListener(this);
        view.itemView.setOnHoverListener(this);
        mSeekBar = (SeekBar) view.findViewById(
                com.android.internal.R.id.seekbar);
        mSeekBar.setOnSeekBarChangeListener(this);
@@ -414,6 +416,19 @@ public class SeekBarPreference extends RestrictedPreference
        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
     * of MyPreference, a subclass of Preference.