From 5c3188e75e33c8edaf18af71fa681cd7759aee87 Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Mon, 8 Jun 2015 15:59:32 -0700 Subject: [PATCH] Update seek bar dialog preference for Material Bug: 21620889 Change-Id: Ie8e6f570a3be32722f4e49ccf81da263fda736fe --- .../preference/SeekBarDialogPreference.java | 19 +++++----- .../android/preference/VolumePreference.java | 26 ++++++++----- ...alog.xml => preference_dialog_seekbar.xml} | 33 +++++++++-------- .../preference_dialog_seekbar_material.xml | 37 +++++++++++++++++++ core/res/res/values/attrs.xml | 2 + core/res/res/values/styles.xml | 4 ++ core/res/res/values/styles_material.xml | 4 ++ core/res/res/values/symbols.xml | 2 +- core/res/res/values/themes.xml | 1 + core/res/res/values/themes_material.xml | 2 + 10 files changed, 93 insertions(+), 37 deletions(-) rename core/res/res/layout/{seekbar_dialog.xml => preference_dialog_seekbar.xml} (56%) create mode 100644 core/res/res/layout/preference_dialog_seekbar_material.xml diff --git a/core/java/android/preference/SeekBarDialogPreference.java b/core/java/android/preference/SeekBarDialogPreference.java index 9a088276c4701..eeb69a39abe8a 100644 --- a/core/java/android/preference/SeekBarDialogPreference.java +++ b/core/java/android/preference/SeekBarDialogPreference.java @@ -18,29 +18,28 @@ package android.preference; import android.content.Context; import android.graphics.drawable.Drawable; -import android.preference.DialogPreference; import android.util.AttributeSet; import android.view.View; import android.widget.ImageView; import android.widget.SeekBar; +import com.android.internal.R; + /** * @hide */ public class SeekBarDialogPreference extends DialogPreference { - private static final String TAG = "SeekBarDialogPreference"; - - private Drawable mMyIcon; + private final Drawable mMyIcon; public SeekBarDialogPreference( Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); - setDialogLayoutResource(com.android.internal.R.layout.seekbar_dialog); createActionButtons(); // Steal the XML dialogIcon attribute's value mMyIcon = getDialogIcon(); + setDialogIcon(null); } @@ -49,7 +48,7 @@ public class SeekBarDialogPreference extends DialogPreference { } public SeekBarDialogPreference(Context context, AttributeSet attrs) { - this(context, attrs, com.android.internal.R.attr.dialogPreferenceStyle); + this(context, attrs, R.attr.seekBarDialogPreferenceStyle); } public SeekBarDialogPreference(Context context) { @@ -58,15 +57,15 @@ public class SeekBarDialogPreference extends DialogPreference { // Allow subclasses to override the action buttons public void createActionButtons() { - setPositiveButtonText(android.R.string.ok); - setNegativeButtonText(android.R.string.cancel); + setPositiveButtonText(R.string.ok); + setNegativeButtonText(R.string.cancel); } @Override protected void onBindDialogView(View view) { super.onBindDialogView(view); - final ImageView iconView = (ImageView) view.findViewById(android.R.id.icon); + final ImageView iconView = (ImageView) view.findViewById(R.id.icon); if (mMyIcon != null) { iconView.setImageDrawable(mMyIcon); } else { @@ -75,6 +74,6 @@ public class SeekBarDialogPreference extends DialogPreference { } protected static SeekBar getSeekBar(View dialogView) { - return (SeekBar) dialogView.findViewById(com.android.internal.R.id.seekbar); + return (SeekBar) dialogView.findViewById(R.id.seekbar); } } diff --git a/core/java/android/preference/VolumePreference.java b/core/java/android/preference/VolumePreference.java index a2da01bffc2b3..573499a752172 100644 --- a/core/java/android/preference/VolumePreference.java +++ b/core/java/android/preference/VolumePreference.java @@ -26,14 +26,13 @@ import android.view.KeyEvent; import android.view.View; import android.widget.SeekBar; +import com.android.internal.R; + /** * @hide */ public class VolumePreference extends SeekBarDialogPreference implements PreferenceManager.OnActivityStopListener, View.OnKeyListener, SeekBarVolumizer.Callback { - - static final String TAG = "VolumePreference"; - private int mStreamType; /** May be null if the dialog isn't visible. */ @@ -44,7 +43,7 @@ public class VolumePreference extends SeekBarDialogPreference implements super(context, attrs, defStyleAttr, defStyleRes); final TypedArray a = context.obtainStyledAttributes(attrs, - com.android.internal.R.styleable.VolumePreference, defStyleAttr, defStyleRes); + R.styleable.VolumePreference, defStyleAttr, defStyleRes); mStreamType = a.getInt(android.R.styleable.VolumePreference_streamType, 0); a.recycle(); } @@ -54,7 +53,11 @@ public class VolumePreference extends SeekBarDialogPreference implements } public VolumePreference(Context context, AttributeSet attrs) { - this(context, attrs, com.android.internal.R.attr.dialogPreferenceStyle); + this(context, attrs, R.attr.seekBarDialogPreferenceStyle); + } + + public VolumePreference(Context context) { + this(context, null); } public void setStreamType(int streamType) { @@ -65,7 +68,7 @@ public class VolumePreference extends SeekBarDialogPreference implements protected void onBindDialogView(View view) { super.onBindDialogView(view); - final SeekBar seekBar = (SeekBar) view.findViewById(com.android.internal.R.id.seekbar); + final SeekBar seekBar = (SeekBar) view.findViewById(R.id.seekbar); mSeekBarVolumizer = new SeekBarVolumizer(getContext(), mStreamType, null, this); mSeekBarVolumizer.start(); mSeekBarVolumizer.setSeekBar(seekBar); @@ -128,14 +131,17 @@ public class VolumePreference extends SeekBarDialogPreference implements getPreferenceManager().unregisterOnActivityStopListener(this); if (mSeekBarVolumizer != null) { - Dialog dialog = getDialog(); + final Dialog dialog = getDialog(); if (dialog != null && dialog.isShowing()) { - View view = dialog.getWindow().getDecorView() - .findViewById(com.android.internal.R.id.seekbar); - if (view != null) view.setOnKeyListener(null); + final View view = dialog.getWindow().getDecorView().findViewById(R.id.seekbar); + if (view != null) { + view.setOnKeyListener(null); + } + // Stopped while dialog was showing, revert changes mSeekBarVolumizer.revertVolume(); } + mSeekBarVolumizer.stop(); mSeekBarVolumizer = null; } diff --git a/core/res/res/layout/seekbar_dialog.xml b/core/res/res/layout/preference_dialog_seekbar.xml similarity index 56% rename from core/res/res/layout/seekbar_dialog.xml rename to core/res/res/layout/preference_dialog_seekbar.xml index 84352a574c39f..4e366c42eafdd 100644 --- a/core/res/res/layout/seekbar_dialog.xml +++ b/core/res/res/layout/preference_dialog_seekbar.xml @@ -1,5 +1,5 @@ - + + + + - - - - - + android:layout_height="wrap_content" + android:padding="20dp" /> + - diff --git a/core/res/res/layout/preference_dialog_seekbar_material.xml b/core/res/res/layout/preference_dialog_seekbar_material.xml new file mode 100644 index 0000000000000..a98a9952752c9 --- /dev/null +++ b/core/res/res/layout/preference_dialog_seekbar_material.xml @@ -0,0 +1,37 @@ + + + + + + + + + + diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml index a13f4942d42c4..0f66950a8daee 100644 --- a/core/res/res/values/attrs.xml +++ b/core/res/res/values/attrs.xml @@ -868,6 +868,8 @@ + + diff --git a/core/res/res/values/styles.xml b/core/res/res/values/styles.xml index 4c02d79c70807..6f7b3d1dafada 100644 --- a/core/res/res/values/styles.xml +++ b/core/res/res/values/styles.xml @@ -1017,6 +1017,10 @@ please see styles_device_defaults.xml. @string/no + + diff --git a/core/res/res/values/styles_material.xml b/core/res/res/values/styles_material.xml index f89dcedd3729b..f21c595109538 100644 --- a/core/res/res/values/styles_material.xml +++ b/core/res/res/values/styles_material.xml @@ -87,6 +87,10 @@ please see styles_device_defaults.xml. @string/no + + diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index c7f27e1a18fa3..611aafdf5622a 100755 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -1335,7 +1335,6 @@ - @@ -2286,4 +2285,5 @@ + diff --git a/core/res/res/values/themes.xml b/core/res/res/values/themes.xml index 9e87b4d9b2ace..1230b5ec46e4d 100644 --- a/core/res/res/values/themes.xml +++ b/core/res/res/values/themes.xml @@ -331,6 +331,7 @@ please see themes_device_defaults.xml. @style/Preference.SeekBarPreference @style/Preference.DialogPreference.YesNoPreference @style/Preference.DialogPreference + @style/Preference.DialogPreference.SeekBarPreference @style/Preference.DialogPreference.EditTextPreference @style/Preference.RingtonePreference @layout/preference_child diff --git a/core/res/res/values/themes_material.xml b/core/res/res/values/themes_material.xml index 9f3668d111c92..9fe8df46a734a 100644 --- a/core/res/res/values/themes_material.xml +++ b/core/res/res/values/themes_material.xml @@ -295,6 +295,7 @@ please see themes_device_defaults.xml. @style/Preference.Material.SeekBarPreference @style/Preference.Material.DialogPreference.YesNoPreference @style/Preference.Material.DialogPreference + @style/Preference.Material.DialogPreference.SeekBarPreference @style/Preference.Material.DialogPreference.EditTextPreference @style/Preference.Material.RingtonePreference @layout/preference_child_material @@ -651,6 +652,7 @@ please see themes_device_defaults.xml. @style/Preference.Material.SeekBarPreference @style/Preference.Material.DialogPreference.YesNoPreference @style/Preference.Material.DialogPreference + @style/Preference.Material.DialogPreference.SeekBarPreference @style/Preference.Material.DialogPreference.EditTextPreference @style/Preference.Material.RingtonePreference @layout/preference_child_material