From 19ae4ca5a7d84a8a79feba560b024120b56b55b8 Mon Sep 17 00:00:00 2001 From: Fabrice Di Meglio Date: Thu, 12 Jun 2014 20:13:24 -0700 Subject: [PATCH] Fix SeekBarPreference Theming - make the layout a Theme attribute and use it - make a specific Material version of the layout for matching what we have in the Settings App See bug: #15414236 Define a framework theme for system settings and #15384992 Setting Dashboard - padding updates Change-Id: I69c90523fab112fecf26d89de8fc35dd62430c06 --- .../android/preference/SeekBarPreference.java | 14 ++- .../res/layout/preference_widget_seekbar.xml | 4 +- .../preference_widget_seekbar_material.xml | 86 +++++++++++++++++++ core/res/res/values/attrs.xml | 6 ++ core/res/res/values/styles.xml | 8 ++ .../res/res/values/styles_device_defaults.xml | 1 + core/res/res/values/styles_material.xml | 4 + core/res/res/values/symbols.xml | 1 + core/res/res/values/themes.xml | 3 + .../res/res/values/themes_device_defaults.xml | 2 + core/res/res/values/themes_material.xml | 2 + 11 files changed, 125 insertions(+), 6 deletions(-) create mode 100644 core/res/res/layout/preference_widget_seekbar_material.xml diff --git a/core/java/android/preference/SeekBarPreference.java b/core/java/android/preference/SeekBarPreference.java index e32890deadd87..67f64090db160 100644 --- a/core/java/android/preference/SeekBarPreference.java +++ b/core/java/android/preference/SeekBarPreference.java @@ -40,11 +40,19 @@ public class SeekBarPreference extends Preference Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); - final TypedArray a = context.obtainStyledAttributes( + TypedArray a = context.obtainStyledAttributes( attrs, com.android.internal.R.styleable.ProgressBar, defStyleAttr, defStyleRes); setMax(a.getInt(com.android.internal.R.styleable.ProgressBar_max, mMax)); a.recycle(); - setLayoutResource(com.android.internal.R.layout.preference_widget_seekbar); + + a = context.obtainStyledAttributes(attrs, + com.android.internal.R.styleable.SeekBarPreference, defStyleAttr, defStyleRes); + final int layoutResId = a.getResourceId( + com.android.internal.R.styleable.SeekBarPreference_layout, + com.android.internal.R.layout.preference_widget_seekbar); + a.recycle(); + + setLayoutResource(layoutResId); } public SeekBarPreference(Context context, AttributeSet attrs, int defStyleAttr) { @@ -52,7 +60,7 @@ public class SeekBarPreference extends Preference } public SeekBarPreference(Context context, AttributeSet attrs) { - this(context, attrs, 0); + this(context, attrs, com.android.internal.R.attr.seekBarPreferenceStyle); } public SeekBarPreference(Context context) { diff --git a/core/res/res/layout/preference_widget_seekbar.xml b/core/res/res/layout/preference_widget_seekbar.xml index c427965876836..05daa1a42011a 100644 --- a/core/res/res/layout/preference_widget_seekbar.xml +++ b/core/res/res/layout/preference_widget_seekbar.xml @@ -14,9 +14,7 @@ limitations under the License. --> - + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml index 52138968cab6b..e807d69289696 100644 --- a/core/res/res/values/attrs.xml +++ b/core/res/res/values/attrs.xml @@ -834,6 +834,8 @@ + + @@ -6607,6 +6609,10 @@ + + + + + +