Merge "Move DropDownPreference to supportlib"
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index 2381ed8..5d7758b 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -110,11 +110,6 @@
     <attr name="confirmDeviceCredentialsSideMargin" format="dimension" />
     <attr name="confirmDeviceCredentialsTopMargin" format="dimension" />
 
-    <declare-styleable name="DropDownPreference">
-        <attr name="android:entries" />
-        <attr name="android:entryValues" />
-    </declare-styleable>
-
     <declare-styleable name="RestrictedPreference">
         <attr name="userRestriction" format="string"/>
     </declare-styleable>
diff --git a/res/values/themes.xml b/res/values/themes.xml
index e72ad30..b15a77c 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -101,6 +101,7 @@
 
     <style name="PreferenceTheme" parent="@android:style/Theme.DeviceDefault.Settings">
         <item name="@android:preferenceStyle">@style/Preference</item>
+        <item name="@dropdownPreferenceStyle">@style/Preference.DropDown.Material</item>
         <item name="@android:preferenceFragmentStyle">@style/PreferenceFragmentStyle</item>
 
         <item name="apnPreferenceStyle">@style/ApnPreference</item>
diff --git a/res/xml/battery_saver_settings.xml b/res/xml/battery_saver_settings.xml
index 0134c6f..cc6d9af 100644
--- a/res/xml/battery_saver_settings.xml
+++ b/res/xml/battery_saver_settings.xml
@@ -19,9 +19,10 @@
         android:key="battery_saver">
 
     <!-- Turn on automatically -->
-    <com.android.settings.DropDownPreference
+    <DropDownPreference
             android:key="turn_on_automatically"
             android:title="@string/battery_saver_turn_on_automatically_title"
+            android:summary="%s"
             android:persistent="false" />
 
     <!-- Feature description text -->
diff --git a/res/xml/configure_notification_settings.xml b/res/xml/configure_notification_settings.xml
index aa15f06..d64132a 100644
--- a/res/xml/configure_notification_settings.xml
+++ b/res/xml/configure_notification_settings.xml
@@ -26,9 +26,10 @@
             android:persistent="false" />
 
     <!-- When device is locked -->
-    <com.android.settings.DropDownPreference
+    <DropDownPreference
             android:key="lock_screen_notifications"
             android:title="@string/lock_screen_notifications_title"
+            android:summary="%s"
             android:persistent="false" />
 
     <PreferenceCategory
diff --git a/res/xml/development_prefs.xml b/res/xml/development_prefs.xml
index a836fe4..57fdc36 100644
--- a/res/xml/development_prefs.xml
+++ b/res/xml/development_prefs.xml
@@ -60,10 +60,11 @@
         android:summary="@string/runningservices_settings_summary"
         android:fragment="com.android.settings.applications.RunningServices" />
 
-    <com.android.settings.DropDownPreference
+    <DropDownPreference
         android:key="night_mode"
         android:title="@string/night_mode_title"
-        android:summary="@string/night_mode_summary"
+        android:summary="%s"
+        android:persistent="false"
         android:entries="@array/night_mode_entries"
         android:entryValues="@array/night_mode_values" />
 
diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml
index 1016c2a..0456ace 100644
--- a/res/xml/display_settings.xml
+++ b/res/xml/display_settings.xml
@@ -91,11 +91,12 @@
                 android:summary="@string/tap_to_wake_summary"
                 android:persistent="false" />
 
-        <com.android.settings.DropDownPreference
+        <DropDownPreference
                 android:key="font_size"
                 android:title="@string/title_font_size"
                 settings:keywords="@string/keywords_display_font_size"
-                android:summary="@string/summary_font_size"
+                android:persistent="false"
+                android:summary="%s"
                 android:entries="@array/entries_font_size"
                 android:entryValues="@array/entryvalues_font_size" />
 
@@ -104,8 +105,10 @@
                 android:title="@string/screen_zoom_title"
                 settings:keywords="@string/screen_zoom_keywords" />
 
-        <com.android.settings.DropDownPreference
+        <DropDownPreference
                 android:key="auto_rotate"
+                android:persistent="false"
+                android:summary="%s"
                 android:title="@string/display_auto_rotate_title" />
 
         <PreferenceScreen
diff --git a/res/xml/installed_app_launch_settings.xml b/res/xml/installed_app_launch_settings.xml
index e48476f..dee56ef 100644
--- a/res/xml/installed_app_launch_settings.xml
+++ b/res/xml/installed_app_launch_settings.xml
@@ -20,9 +20,10 @@
     <PreferenceCategory android:key="app_launch_domain_links"
                         android:title="@string/app_launch_domain_links_title">
 
-        <com.android.settings.DropDownPreference
+        <DropDownPreference
                 android:key="app_link_state"
                 android:persistent="false"
+                android:summary="%s"
                 android:title="@string/app_launch_open_domain_urls_title" />
 
         <com.android.settings.applications.AppDomainsPreference
diff --git a/res/xml/other_sound_settings.xml b/res/xml/other_sound_settings.xml
index cc88c3f..df113dc 100644
--- a/res/xml/other_sound_settings.xml
+++ b/res/xml/other_sound_settings.xml
@@ -56,15 +56,17 @@
             android:persistent="false" />
 
     <!-- Dock speaker plays -->
-    <com.android.settings.DropDownPreference
+    <DropDownPreference
             android:key="dock_audio_media"
             android:title="@string/dock_audio_media_title"
+            android:summary="%s"
             android:persistent="false" />
 
     <!-- Emergency tone -->
-    <com.android.settings.DropDownPreference
+    <DropDownPreference
             android:key="emergency_tone"
             android:title="@string/emergency_tone_title"
+            android:summary="%s"
             android:persistent="false" />
 
 </PreferenceScreen>
diff --git a/res/xml/zen_mode_event_rule_settings.xml b/res/xml/zen_mode_event_rule_settings.xml
index 2519fc1..98e75ce 100644
--- a/res/xml/zen_mode_event_rule_settings.xml
+++ b/res/xml/zen_mode_event_rule_settings.xml
@@ -25,21 +25,24 @@
         android:persistent="false" />
 
     <!-- During events for -->
-    <com.android.settings.DropDownPreference
+    <DropDownPreference
         android:key="calendar"
         android:title="@string/zen_mode_event_rule_calendar"
+        android:summary="%s"
         android:persistent="false" />
 
     <!-- Where reply is -->
-    <com.android.settings.DropDownPreference
+    <DropDownPreference
         android:key="reply"
         android:title="@string/zen_mode_event_rule_reply"
+        android:summary="%s"
         android:persistent="false" />
 
     <!-- Zen mode -->
-    <com.android.settings.DropDownPreference
+    <DropDownPreference
         android:key="zen_mode"
         android:title="@string/zen_mode_settings_title"
+        android:summary="%s"
         android:persistent="false" />
 
 </PreferenceScreen>
diff --git a/res/xml/zen_mode_external_rule_settings.xml b/res/xml/zen_mode_external_rule_settings.xml
index e244dc8..e3fafbd 100644
--- a/res/xml/zen_mode_external_rule_settings.xml
+++ b/res/xml/zen_mode_external_rule_settings.xml
@@ -37,8 +37,9 @@
         android:persistent="false" />
 
     <!-- Zen mode -->
-    <com.android.settings.DropDownPreference
+    <DropDownPreference
         android:key="zen_mode"
+        android:summary="%s"
         android:title="@string/zen_mode_settings_title"
         android:persistent="false" />
 
diff --git a/res/xml/zen_mode_priority_settings.xml b/res/xml/zen_mode_priority_settings.xml
index 6e324ce..6d9f36f 100644
--- a/res/xml/zen_mode_priority_settings.xml
+++ b/res/xml/zen_mode_priority_settings.xml
@@ -40,15 +40,17 @@
         android:persistent="false"/>
 
     <!-- Messages -->
-    <com.android.settings.DropDownPreference
+    <DropDownPreference
         android:key="messages"
         android:title="@string/zen_mode_messages"
+        android:summary="%s"
         android:persistent="false" />
 
     <!-- Calls -->
-    <com.android.settings.DropDownPreference
+    <DropDownPreference
         android:key="calls"
         android:title="@string/zen_mode_calls"
+        android:summary="%s"
         android:persistent="false" />
 
     <!-- Repeat callers -->
diff --git a/res/xml/zen_mode_schedule_rule_settings.xml b/res/xml/zen_mode_schedule_rule_settings.xml
index d808b10..3c62b5b 100644
--- a/res/xml/zen_mode_schedule_rule_settings.xml
+++ b/res/xml/zen_mode_schedule_rule_settings.xml
@@ -33,10 +33,11 @@
     <!-- Start time/End time added and removed here! :-) -->
 
     <!-- Zen mode -->
-    <com.android.settings.DropDownPreference
+    <DropDownPreference
             android:key="zen_mode"
             android:title="@string/zen_mode_settings_title"
             android:order="100"
+            android:summary="%s"
             android:persistent="false" />
 
 </PreferenceScreen>
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index 598608c..c6f57ec 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -59,6 +59,7 @@
 import android.provider.Settings;
 import android.provider.Settings.Global;
 import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.DropDownPreference;
 import android.support.v7.preference.ListPreference;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.Preference.OnPreferenceChangeListener;
diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java
index e9ab1f7..6d99a35 100644
--- a/src/com/android/settings/DisplaySettings.java
+++ b/src/com/android/settings/DisplaySettings.java
@@ -33,11 +33,13 @@
 import android.provider.SearchIndexableResource;
 import android.provider.Settings;
 import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.DropDownPreference;
 import android.support.v7.preference.ListPreference;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.Preference.OnPreferenceChangeListener;
 import android.text.TextUtils;
 import android.util.Log;
+
 import com.android.internal.logging.MetricsLogger;
 import com.android.internal.view.RotationPolicy;
 import com.android.settings.dashboard.SummaryLoader;
diff --git a/src/com/android/settings/DropDownPreference.java b/src/com/android/settings/DropDownPreference.java
deleted file mode 100644
index 70bd663..0000000
--- a/src/com/android/settings/DropDownPreference.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings;
-
-import android.content.Context;
-import android.support.v7.preference.ListPreference;
-import android.support.v7.preference.PreferenceViewHolder;
-import android.util.AttributeSet;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.AdapterView;
-import android.widget.AdapterView.OnItemSelectedListener;
-import android.widget.ArrayAdapter;
-import android.widget.Spinner;
-
-public class DropDownPreference extends ListPreference {
-
-    private final Context mContext;
-    private final ArrayAdapter<String> mAdapter;
-    private final Spinner mSpinner;
-
-    public DropDownPreference(Context context) {
-        this(context, null);
-    }
-
-    public DropDownPreference(Context context, AttributeSet attrs) {
-        super(context, attrs);
-        mContext = context;
-        mAdapter = new ArrayAdapter<String>(mContext,
-                android.R.layout.simple_spinner_dropdown_item);
-
-        mSpinner = new Spinner(mContext);
-
-        mSpinner.setVisibility(View.INVISIBLE);
-        mSpinner.setAdapter(mAdapter);
-        mSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
-            @Override
-            public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
-                if (position >= 0) {
-                    String value = getEntryValues()[position].toString();
-                    if (!value.equals(getValue()) && callChangeListener(value)) {
-                        setValue(value);
-                    }
-                }
-            }
-
-            @Override
-            public void onNothingSelected(AdapterView<?> parent) {
-                // noop
-            }
-        });
-        setPersistent(false);
-        setSummary("%s");
-        updateEntries();
-    }
-
-    @Override
-    protected void onClick() {
-        mSpinner.performClick();
-    }
-
-    public void setDropDownWidth(int dimenResId) {
-        mSpinner.setDropDownWidth(mContext.getResources().getDimensionPixelSize(dimenResId));
-    }
-
-    @Override
-    public void setEntries(CharSequence[] entries) {
-        super.setEntries(entries);
-        updateEntries();
-    }
-
-    private void updateEntries() {
-        mAdapter.clear();
-        if (getEntries() != null) {
-            for (CharSequence c : getEntries()) {
-                mAdapter.add(c.toString());
-            }
-        }
-    }
-
-    @Override
-    public void setValue(String value) {
-        super.setValue(value);
-        mSpinner.setSelection(findIndexOfValue(getValue()));
-    }
-
-    public void setValueIndex(int index) {
-        setValue(getEntryValues()[index].toString());
-    }
-
-    @Override
-    public void onBindViewHolder(PreferenceViewHolder view) {
-        super.onBindViewHolder(view);
-        if (view.equals(mSpinner.getParent())) return;
-        if (mSpinner.getParent() != null) {
-            ((ViewGroup) mSpinner.getParent()).removeView(mSpinner);
-        }
-        final ViewGroup vg = (ViewGroup) view.itemView;
-        vg.addView(mSpinner, 0);
-        final ViewGroup.LayoutParams lp = mSpinner.getLayoutParams();
-        lp.width = 0;
-        mSpinner.setLayoutParams(lp);
-    }
-}
diff --git a/src/com/android/settings/applications/AppLaunchSettings.java b/src/com/android/settings/applications/AppLaunchSettings.java
index cbac4a1..ae711f7 100644
--- a/src/com/android/settings/applications/AppLaunchSettings.java
+++ b/src/com/android/settings/applications/AppLaunchSettings.java
@@ -26,6 +26,7 @@
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.UserHandle;
+import android.support.v7.preference.DropDownPreference;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.Preference.OnPreferenceChangeListener;
 import android.util.ArraySet;
@@ -34,7 +35,6 @@
 import android.view.View.OnClickListener;
 
 import com.android.internal.logging.MetricsLogger;
-import com.android.settings.DropDownPreference;
 import com.android.settings.R;
 import com.android.settings.Utils;
 
diff --git a/src/com/android/settings/nfc/NfcForegroundPreference.java b/src/com/android/settings/nfc/NfcForegroundPreference.java
index 2e0c3d8..f2d98bf 100644
--- a/src/com/android/settings/nfc/NfcForegroundPreference.java
+++ b/src/com/android/settings/nfc/NfcForegroundPreference.java
@@ -16,8 +16,8 @@
 package com.android.settings.nfc;
 
 import android.content.Context;
+import android.support.v7.preference.DropDownPreference;
 
-import com.android.settings.DropDownPreference;
 import com.android.settings.R;
 
 public class NfcForegroundPreference extends DropDownPreference implements
diff --git a/src/com/android/settings/notification/ConfigureNotificationSettings.java b/src/com/android/settings/notification/ConfigureNotificationSettings.java
index 4b438f0..f3f74a7 100644
--- a/src/com/android/settings/notification/ConfigureNotificationSettings.java
+++ b/src/com/android/settings/notification/ConfigureNotificationSettings.java
@@ -17,7 +17,6 @@
 package com.android.settings.notification;
 
 import com.android.internal.widget.LockPatternUtils;
-import com.android.settings.DropDownPreference;
 import com.android.settings.InstrumentedFragment;
 import com.android.settings.R;
 import com.android.settings.SettingsPreferenceFragment;
@@ -31,6 +30,7 @@
 import android.os.Handler;
 import android.os.UserHandle;
 import android.provider.Settings;
+import android.support.v7.preference.DropDownPreference;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.Preference.OnPreferenceChangeListener;
 import android.support.v7.preference.TwoStatePreference;
diff --git a/src/com/android/settings/notification/SettingPref.java b/src/com/android/settings/notification/SettingPref.java
index 99ce3b5..18efc33 100644
--- a/src/com/android/settings/notification/SettingPref.java
+++ b/src/com/android/settings/notification/SettingPref.java
@@ -22,11 +22,11 @@
 import android.net.Uri;
 import android.provider.Settings.Global;
 import android.provider.Settings.System;
+import android.support.v7.preference.DropDownPreference;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.Preference.OnPreferenceChangeListener;
 import android.support.v7.preference.TwoStatePreference;
 
-import com.android.settings.DropDownPreference;
 import com.android.settings.SettingsPreferenceFragment;
 
 /** Helper to manage a two-state or dropdown preference bound to a global or system setting. */
diff --git a/src/com/android/settings/notification/ZenModeEventRuleSettings.java b/src/com/android/settings/notification/ZenModeEventRuleSettings.java
index d8e7ad1..c5691d4 100644
--- a/src/com/android/settings/notification/ZenModeEventRuleSettings.java
+++ b/src/com/android/settings/notification/ZenModeEventRuleSettings.java
@@ -26,12 +26,12 @@
 import android.provider.Settings;
 import android.service.notification.ZenModeConfig;
 import android.service.notification.ZenModeConfig.EventInfo;
+import android.support.v7.preference.DropDownPreference;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.Preference.OnPreferenceChangeListener;
 import android.support.v7.preference.PreferenceScreen;
 
 import com.android.internal.logging.MetricsLogger;
-import com.android.settings.DropDownPreference;
 import com.android.settings.R;
 
 import java.util.ArrayList;
diff --git a/src/com/android/settings/notification/ZenModePrioritySettings.java b/src/com/android/settings/notification/ZenModePrioritySettings.java
index e3413a7..f479ba3 100644
--- a/src/com/android/settings/notification/ZenModePrioritySettings.java
+++ b/src/com/android/settings/notification/ZenModePrioritySettings.java
@@ -21,13 +21,13 @@
 import android.os.Bundle;
 import android.service.notification.ZenModeConfig;
 import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.DropDownPreference;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.Preference.OnPreferenceChangeListener;
 import android.support.v7.preference.PreferenceScreen;
 import android.util.Log;
 
 import com.android.internal.logging.MetricsLogger;
-import com.android.settings.DropDownPreference;
 import com.android.settings.R;
 import com.android.settings.search.Indexable;
 
diff --git a/src/com/android/settings/notification/ZenModeRuleSettingsBase.java b/src/com/android/settings/notification/ZenModeRuleSettingsBase.java
index e8a9c28..b0f12f8 100644
--- a/src/com/android/settings/notification/ZenModeRuleSettingsBase.java
+++ b/src/com/android/settings/notification/ZenModeRuleSettingsBase.java
@@ -26,6 +26,7 @@
 import android.net.Uri;
 import android.os.Bundle;
 import android.service.notification.ConditionProviderService;
+import android.support.v7.preference.DropDownPreference;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.Preference.OnPreferenceChangeListener;
 import android.support.v7.preference.Preference.OnPreferenceClickListener;
@@ -39,7 +40,6 @@
 import android.widget.Toast;
 
 import com.android.internal.logging.MetricsLogger;
-import com.android.settings.DropDownPreference;
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.widget.SwitchBar;