From 9584ba6b57f3ed9e6cd13a34f72e610433c421bd Mon Sep 17 00:00:00 2001 From: jasonwshsu Date: Thu, 18 Feb 2021 03:43:26 +0800 Subject: [PATCH] Add seekBar properties 'tickMark' to LabeledSeekBarPreference Bug: 173940869 Test: manual Change-Id: I135e52181bdb86ded6187a3fa30b9cffeb69d451 --- res/values/attrs.xml | 1 + .../settings/widget/LabeledSeekBarPreference.java | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/res/values/attrs.xml b/res/values/attrs.xml index f78120c7e78..bde52886e69 100644 --- a/res/values/attrs.xml +++ b/res/values/attrs.xml @@ -170,6 +170,7 @@ + diff --git a/src/com/android/settings/widget/LabeledSeekBarPreference.java b/src/com/android/settings/widget/LabeledSeekBarPreference.java index e2b2d686988..3a9ac18beb0 100644 --- a/src/com/android/settings/widget/LabeledSeekBarPreference.java +++ b/src/com/android/settings/widget/LabeledSeekBarPreference.java @@ -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) {