Add seekBar properties 'tickMark' to LabeledSeekBarPreference

Bug: 173940869
Test: manual
Change-Id: I135e52181bdb86ded6187a3fa30b9cffeb69d451
(cherry picked from commit 9584ba6b57)
This commit is contained in:
jasonwshsu
2021-02-18 03:43:26 +08:00
committed by Sally Yuen
parent bf182903ed
commit ffe8521b9f
2 changed files with 12 additions and 0 deletions

View File

@@ -170,6 +170,7 @@
<declare-styleable name="LabeledSeekBarPreference">
<attr name="textStart" format="reference" />
<attr name="textEnd" format="reference" />
<attr name="tickMark" format="reference" />
</declare-styleable>
<declare-styleable name="TintDrawable">

View File

@@ -18,6 +18,7 @@ package com.android.settings.widget;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.widget.SeekBar;
import android.widget.TextView;
@@ -32,6 +33,7 @@ public class LabeledSeekBarPreference extends SeekBarPreference {
private final int mTextStartId;
private final int mTextEndId;
private final int mTickMarkId;
private OnPreferenceChangeListener mStopListener;
public LabeledSeekBarPreference(Context context, AttributeSet attrs, int defStyleAttr,
@@ -48,6 +50,8 @@ public class LabeledSeekBarPreference extends SeekBarPreference {
mTextEndId = styledAttrs.getResourceId(
R.styleable.LabeledSeekBarPreference_textEnd,
R.string.summary_placeholder);
mTickMarkId = styledAttrs.getResourceId(
R.styleable.LabeledSeekBarPreference_tickMark, /* defValue= */ 0);
styledAttrs.recycle();
}
@@ -65,6 +69,13 @@ public class LabeledSeekBarPreference extends SeekBarPreference {
final TextView endText = (TextView) holder.findViewById(android.R.id.text2);
startText.setText(mTextStartId);
endText.setText(mTextEndId);
if (mTickMarkId != 0) {
final Drawable tickMark = getContext().getDrawable(mTickMarkId);
final SeekBar seekBar = (SeekBar) holder.findViewById(
com.android.internal.R.id.seekbar);
seekBar.setTickMark(tickMark);
}
}
public void setOnPreferenceChangeStopListener(OnPreferenceChangeListener listener) {