Add seekBar properties 'tickMark' to LabeledSeekBarPreference

Bug: 173940869
Test: manual
Change-Id: I135e52181bdb86ded6187a3fa30b9cffeb69d451
This commit is contained in:
jasonwshsu
2021-02-18 03:43:26 +08:00
parent f9fdedaafe
commit 9584ba6b57
2 changed files with 12 additions and 0 deletions

View File

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

View File

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