Replace custom Dialogs with Spinners.

Change-Id: Idb55d2834b99fb23907a204200d71d25a194df2f
diff --git a/res/drawable-hdpi/btn_circle_disable.png b/res/drawable-hdpi/btn_circle_disable.png
deleted file mode 100644
index 39652a8..0000000
--- a/res/drawable-hdpi/btn_circle_disable.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/btn_circle_disable_focused.png b/res/drawable-hdpi/btn_circle_disable_focused.png
deleted file mode 100644
index 1aa7ffe..0000000
--- a/res/drawable-hdpi/btn_circle_disable_focused.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/btn_circle_normal.png b/res/drawable-hdpi/btn_circle_normal.png
deleted file mode 100644
index 6011219..0000000
--- a/res/drawable-hdpi/btn_circle_normal.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/btn_circle_pressed.png b/res/drawable-hdpi/btn_circle_pressed.png
deleted file mode 100644
index 4942e50..0000000
--- a/res/drawable-hdpi/btn_circle_pressed.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/btn_circle_selected.png b/res/drawable-hdpi/btn_circle_selected.png
deleted file mode 100644
index fe49a40..0000000
--- a/res/drawable-hdpi/btn_circle_selected.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldpi/btn_circle_disable.png b/res/drawable-ldpi/btn_circle_disable.png
deleted file mode 100644
index 87a51c5..0000000
--- a/res/drawable-ldpi/btn_circle_disable.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldpi/btn_circle_disable_focused.png b/res/drawable-ldpi/btn_circle_disable_focused.png
deleted file mode 100644
index cc28e3b..0000000
--- a/res/drawable-ldpi/btn_circle_disable_focused.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldpi/btn_circle_normal.png b/res/drawable-ldpi/btn_circle_normal.png
deleted file mode 100644
index b25ad81..0000000
--- a/res/drawable-ldpi/btn_circle_normal.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldpi/btn_circle_pressed.png b/res/drawable-ldpi/btn_circle_pressed.png
deleted file mode 100644
index abeedad..0000000
--- a/res/drawable-ldpi/btn_circle_pressed.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldpi/btn_circle_selected.png b/res/drawable-ldpi/btn_circle_selected.png
deleted file mode 100644
index e3e8d13..0000000
--- a/res/drawable-ldpi/btn_circle_selected.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/btn_circle_disable.png b/res/drawable-mdpi/btn_circle_disable.png
deleted file mode 100644
index 29e227c..0000000
--- a/res/drawable-mdpi/btn_circle_disable.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/btn_circle_disable_focused.png b/res/drawable-mdpi/btn_circle_disable_focused.png
deleted file mode 100644
index c5aa3c5..0000000
--- a/res/drawable-mdpi/btn_circle_disable_focused.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/btn_circle_normal.png b/res/drawable-mdpi/btn_circle_normal.png
deleted file mode 100644
index 6358351..0000000
--- a/res/drawable-mdpi/btn_circle_normal.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/btn_circle_pressed.png b/res/drawable-mdpi/btn_circle_pressed.png
deleted file mode 100644
index dc07a61..0000000
--- a/res/drawable-mdpi/btn_circle_pressed.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/btn_circle_selected.png b/res/drawable-mdpi/btn_circle_selected.png
deleted file mode 100644
index 6eb2ff5..0000000
--- a/res/drawable-mdpi/btn_circle_selected.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/btn_circle.xml b/res/drawable/btn_circle.xml
deleted file mode 100644
index 243f506..0000000
--- a/res/drawable/btn_circle.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 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.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_window_focused="false" android:state_enabled="true"
-        android:drawable="@drawable/btn_circle_normal" />
-    <item android:state_window_focused="false" android:state_enabled="false"
-        android:drawable="@drawable/btn_circle_disable" />
-    <item android:state_pressed="true" android:state_enabled="false"
-        android:drawable="@drawable/btn_circle_disable" />
-    <item android:state_pressed="true" 
-        android:drawable="@drawable/btn_circle_pressed" />
-    <item android:state_focused="true" android:state_enabled="true"
-        android:drawable="@drawable/btn_circle_selected" />
-    <item android:state_enabled="true"
-        android:drawable="@drawable/btn_circle_normal" />
-    <item android:state_focused="true"
-        android:drawable="@drawable/btn_circle_disable_focused" />
-    <item
-         android:drawable="@drawable/btn_circle_disable" />
-</selector>
diff --git a/res/layout-land/music_main.xml b/res/layout-land/music_main.xml
index fcfe530..fc3eacb 100644
--- a/res/layout-land/music_main.xml
+++ b/res/layout-land/music_main.xml
@@ -47,7 +47,7 @@
             android:layout_marginLeft="15dip"
             android:layout_alignParentLeft="true"
             android:textAppearance="?android:attr/textAppearanceLarge"
-            android:text="@string/main_toggle_effects_title" />
+            android:text="@string/eq_dialog_title" />
         <Switch
             android:id="@+id/mainToggleEffectsCheckBox"
             android:layout_width="wrap_content"
@@ -64,56 +64,15 @@
         <LinearLayout
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:minHeight="?android:attr/listPreferredItemHeight"
             android:gravity="center_vertical"
             android:layout_gravity="center"
             android:orientation="vertical">
 
-            <LinearLayout
-                android:id="@+id/eqLayout"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:orientation="horizontal"
-                android:minHeight="?android:attr/listPreferredItemHeight"
-                android:gravity="center_vertical"
-                android:paddingRight="?android:attr/scrollbarSize"
-                android:focusable="true"
-                android:background="@android:drawable/list_selector_background">
-
-                <RelativeLayout
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginLeft="15dip"
-                    android:layout_marginRight="6dip"
-                    android:layout_marginTop="6dip"
-                    android:layout_marginBottom="6dip"
-                    android:layout_weight="1">
-                    <TextView
-                        android:id="@+id/eqPresetsTitleTextView"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:textAppearance="?android:attr/textAppearanceLarge"
-                        android:ellipsize="marquee"
-                        android:fadingEdge="horizontal"
-                        android:text="@string/eq_title" />
-                    <TextView
-                        android:id="@+id/eqPresetsSummaryTextView"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:layout_below="@+id/eqPresetsTitleTextView"
-                        android:layout_alignLeft="@+id/eqPresetsTitleTextView"
-                        android:textAppearance="?android:attr/textAppearanceSmall"
-                        android:maxLines="4" />
-                </RelativeLayout>
-                <ImageView
-                    android:id="@+id/eqPresetsImageView"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginRight="4dip"
-                    android:layout_gravity="center_vertical"
-                    android:background="@drawable/btn_circle"
-                    android:src="@drawable/ic_btn_round_more" />
-            </LinearLayout>
+            <Spinner android:id="@+id/eqSpinner"
+              android:layout_width="wrap_content"
+              android:layout_height="wrap_content"
+              android:drawSelectorOnTop="true"
+            />
 
             <LinearLayout
                 android:layout_width="wrap_content"
@@ -189,51 +148,13 @@
                             android:paddingRight="20dip" />
                     </LinearLayout>
 
-                    <LinearLayout
-                        android:id="@+id/eRLayout"
-                        android:layout_width="match_parent"
+                    <Spinner android:id="@+id/prSpinner"
+                        android:layout_width="fill_parent"
                         android:layout_height="wrap_content"
                         android:minHeight="?android:attr/listPreferredItemHeight"
-                        android:gravity="center_vertical"
-                        android:paddingRight="?android:attr/scrollbarSize"
-                        android:focusable="true"
-                        android:background="@android:drawable/list_selector_background"
-                        android:visibility="gone">
-                        <RelativeLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_marginLeft="15dip"
-                            android:layout_marginRight="6dip"
-                            android:layout_marginTop="6dip"
-                            android:layout_marginBottom="6dip"
-                            android:layout_weight="1">
-                            <TextView
-                                android:id="@+id/eRPresetsTitleTextView"
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:textAppearance="?android:attr/textAppearanceLarge"
-                                android:ellipsize="marquee"
-                                android:fadingEdge="horizontal"
-                                android:text="@string/pr_title" />
-                            <TextView
-                                android:id="@+id/eRPresetsSummaryTextView"
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_below="@+id/eRPresetsTitleTextView"
-                                android:layout_alignLeft="@+id/eRPresetsTitleTextView"
-                                android:textAppearance="?android:attr/textAppearanceSmall"
-                                android:maxLines="4"
-                                android:text="@string/pr_summary" />
-                        </RelativeLayout>
-                        <ImageView
-                            android:id="@+id/eRPresetsImageView"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_marginRight="4dip"
-                            android:layout_gravity="center_vertical"
-                            android:background="@drawable/btn_circle"
-                            android:src="@drawable/ic_btn_round_more" />
-                    </LinearLayout>
+                        android:drawSelectorOnTop="true"
+                        android:visibility="gone"
+                    />
 
                 </LinearLayout>
             </LinearLayout>
diff --git a/res/layout/music_main.xml b/res/layout/music_main.xml
index 8993309..90c23ff 100644
--- a/res/layout/music_main.xml
+++ b/res/layout/music_main.xml
@@ -47,7 +47,7 @@
             android:layout_marginLeft="15dip"
             android:layout_alignParentLeft="true"
             android:textAppearance="?android:attr/textAppearanceLarge"
-            android:text="@string/main_toggle_effects_title" />
+            android:text="@string/eq_dialog_title" />
         <Switch
             android:id="@+id/mainToggleEffectsCheckBox"
             android:layout_width="wrap_content"
@@ -64,55 +64,15 @@
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:minHeight="?android:attr/listPreferredItemHeight"
             android:gravity="center_vertical"
             android:orientation="vertical">
 
-            <LinearLayout
-                android:id="@+id/eqLayout"
-                android:layout_width="match_parent"
+            <Spinner android:id="@+id/eqSpinner"
+                android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:orientation="horizontal">
                 android:minHeight="?android:attr/listPreferredItemHeight"
-                android:gravity="center_vertical"
-                android:paddingRight="?android:attr/scrollbarSize"
-                android:focusable="true"
-                android:background="@android:drawable/list_selector_background">
-
-                <RelativeLayout
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginLeft="15dip"
-                    android:layout_marginRight="6dip"
-                    android:layout_marginTop="6dip"
-                    android:layout_marginBottom="6dip"
-                    android:layout_weight="1">
-                    <TextView
-                        android:id="@+id/eqPresetsTitleTextView"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:textAppearance="?android:attr/textAppearanceLarge"
-                        android:ellipsize="marquee"
-                        android:fadingEdge="horizontal"
-                        android:text="@string/eq_title" />
-                    <TextView
-                        android:id="@+id/eqPresetsSummaryTextView"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:layout_below="@+id/eqPresetsTitleTextView"
-                        android:layout_alignLeft="@+id/eqPresetsTitleTextView"
-                        android:textAppearance="?android:attr/textAppearanceSmall"
-                        android:maxLines="4" />
-                </RelativeLayout>
-                <ImageView
-                    android:id="@+id/eqPresetsImageView"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginRight="4dip"
-                    android:layout_gravity="center_vertical"
-                    android:background="@drawable/btn_circle"
-                    android:src="@drawable/ic_btn_round_more" />
-            </LinearLayout>
+                android:drawSelectorOnTop="true"
+            />
 
             <include layout="@layout/music_eq" />
 
@@ -178,51 +138,13 @@
                     android:paddingRight="20dip" />
             </LinearLayout>
 
-            <LinearLayout
-                android:id="@+id/eRLayout"
-                android:layout_width="match_parent"
+            <Spinner android:id="@+id/prSpinner"
+                android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:minHeight="?android:attr/listPreferredItemHeight"
-                android:gravity="center_vertical"
-                android:paddingRight="?android:attr/scrollbarSize"
-                android:focusable="true"
-                android:background="@android:drawable/list_selector_background"
-                android:visibility="gone">
-                <RelativeLayout
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginLeft="15dip"
-                    android:layout_marginRight="6dip"
-                    android:layout_marginTop="6dip"
-                    android:layout_marginBottom="6dip"
-                    android:layout_weight="1">
-                    <TextView
-                        android:id="@+id/eRPresetsTitleTextView"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:textAppearance="?android:attr/textAppearanceLarge"
-                        android:ellipsize="marquee"
-                        android:fadingEdge="horizontal"
-                        android:text="@string/pr_title" />
-                    <TextView
-                        android:id="@+id/eRPresetsSummaryTextView"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:layout_below="@+id/eRPresetsTitleTextView"
-                        android:layout_alignLeft="@+id/eRPresetsTitleTextView"
-                        android:textAppearance="?android:attr/textAppearanceSmall"
-                        android:maxLines="4"
-                        android:text="@string/pr_summary" />
-                </RelativeLayout>
-                <ImageView
-                    android:id="@+id/eRPresetsImageView"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginRight="4dip"
-                    android:layout_gravity="center_vertical"
-                    android:background="@drawable/btn_circle"
-                    android:src="@drawable/ic_btn_round_more" />
-            </LinearLayout>
+                android:drawSelectorOnTop="true"
+                android:visibility="gone"
+            />
 
         </LinearLayout>
     </ScrollView>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 8c048d5..c5507dd 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -20,7 +20,6 @@
     <!-- ControlPanelMusic strings -->
     <string name="no_effects">Effects not available</string>
     <string name="main_toggle_effects_title">Audio effects</string>
-    <string name="eq_title">Equalizer:</string>
     <string name="eq_dialog_title">Equalizer</string>
     <string name="headset_plug">Please plug headphones for these effects</string>
     <string name="bass_boost_strength">Bass boost</string>
diff --git a/src/com/android/musicfx/ActivityMusic.java b/src/com/android/musicfx/ActivityMusic.java
index b3c8e99..8e9dab2 100644
--- a/src/com/android/musicfx/ActivityMusic.java
+++ b/src/com/android/musicfx/ActivityMusic.java
@@ -43,11 +43,15 @@
 import android.view.View.OnClickListener;
 import android.view.View.OnTouchListener;
 import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemSelectedListener;
+import android.widget.ArrayAdapter;
 import android.widget.CompoundButton;
 import android.widget.CompoundButton.OnCheckedChangeListener;
 import android.widget.LinearLayout;
 import android.widget.ListView;
 import android.widget.RelativeLayout;
+import android.widget.Spinner;
 import android.widget.TextView;
 import android.widget.Toast;
 
@@ -66,12 +70,6 @@
     private final static int EQUALIZER_MAX_BANDS = 32;
 
     /**
-     * Dialog IDS
-     */
-    static final int DIALOG_EQUALIZER = 0;
-    static final int DIALOG_PRESET_REVERB = 1;
-
-    /**
      * Indicates if Virtualizer effect is supported.
      */
     private boolean mVirtualizerSupported;
@@ -99,6 +97,7 @@
     private String[] mEQPresetNames;
 
     private int mPRPreset;
+    private int mPRPresetPrevious;
 
     private boolean mIsHeadsetOn = false;
 
@@ -404,28 +403,23 @@
 
             // Initialize the Equalizer elements.
             if (mEqualizerSupported) {
-                final View view = findViewById(R.id.eqLayout);
-                view.setOnClickListener(new OnClickListener() {
-
-                    @Override
-                    public void onClick(final View v) {
-                        showDialog(DIALOG_EQUALIZER);
-                    }
-                });
-                equalizerInit(findViewById(R.id.eqcontainer));
+                mEQPreset = ControlPanelEffect.getParameterInt(mContext, mCallingPackageName,
+                        mAudioSession, ControlPanelEffect.Key.eq_current_preset);
+                if (mEQPreset >= mEQPresetNames.length) {
+                    mEQPreset = 0;
+                }
+                mEQPresetPrevious = mEQPreset;
+                equalizerSpinnerInit((Spinner)findViewById(R.id.eqSpinner));
+                equalizerBandsInit(findViewById(R.id.eqcontainer));
             }
 
             // Initialize the Preset Reverb elements.
             // Set Spinner listeners.
             if (mPresetReverbSupported) {
-                final View view = findViewById(R.id.eRLayout);
-                view.setOnClickListener(new OnClickListener() {
-
-                    @Override
-                    public void onClick(final View v) {
-                        showDialog(DIALOG_PRESET_REVERB);
-                    }
-                });
+                mPRPreset = ControlPanelEffect.getParameterInt(mContext, mCallingPackageName,
+                        mAudioSession, ControlPanelEffect.Key.pr_current_preset);
+                mPRPresetPrevious = mPRPreset;
+                reverbSpinnerInit((Spinner)findViewById(R.id.prSpinner));
             }
 
         } else {
@@ -479,158 +473,51 @@
         unregisterReceiver(mReceiver);
     }
 
-    /*
-     * Create dialogs for about, EQ preset control, PR and reset to default (alert) dialogs
-     *
-     * (non-Javadoc)
-     *
-     * @see android.app.Activity#onCreateDialog(int)
-     */
-    @Override
-    protected Dialog onCreateDialog(final int id) {
-        final AlertDialog alertDialog;
-        switch (id) {
-        case DIALOG_EQUALIZER: {
-            final AlertDialog.Builder builder = new AlertDialog.Builder(this);
-            builder.setTitle(R.string.eq_dialog_title);
-            builder.setSingleChoiceItems(mEQPresetNames, -1,
-                    new DialogInterface.OnClickListener() {
-                        @Override
-                        public void onClick(final DialogInterface dialog, final int item) {
-                            if (item != mEQPresetPrevious) {
-                                equalizerSetPreset(item);
-                            }
-                            mEQPresetPrevious = item;
-                        }
-                    });
-            builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
-                @Override
-                public void onClick(final DialogInterface dialog, final int whichButton) {
-                    final ListView listView = ((AlertDialog) dialog).getListView();
-                    final int newPreset = listView.getCheckedItemPosition();
-                    equalizerSetPreset(newPreset);
-                }
-            });
-            builder.setNegativeButton(android.R.string.cancel,
-                    new DialogInterface.OnClickListener() {
-                        @Override
-                        public void onClick(final DialogInterface dialog, final int whichButton) {
-                            dialog.cancel();
-                        }
-                    });
-            builder.setOnCancelListener(new OnCancelListener() {
-                @Override
-                public void onCancel(final DialogInterface dialog) {
-                    equalizerSetPreset(mEQPreset);
-                    final int[] presetUserBandLevels = ControlPanelEffect.getParameterIntArray(
-                            mContext, mCallingPackageName, mAudioSession,
-                            ControlPanelEffect.Key.eq_preset_user_band_level);
-                    short band = 0;
-                    for (final int bandLevel : mEQPresetUserBandLevelsPrev) {
-                        if (bandLevel != presetUserBandLevels[band]) {
-                            if (!isEqualizerUserPreset(mEQPreset)) {
-                                ControlPanelEffect.setParameterInt(mContext, mCallingPackageName,
-                                        mAudioSession,
-                                        ControlPanelEffect.Key.eq_preset_user_band_level,
-                                        bandLevel, band);
-                            } else {
-                                equalizerBandUpdate(band, (short) bandLevel);
-                            }
-                        }
-                        band++;
-                    }
-                }
-            });
+    private void reverbSpinnerInit(Spinner spinner) {
+        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
+                android.R.layout.simple_spinner_item, PRESETREVERBPRESETSTRINGS);
+        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+        spinner.setAdapter(adapter);
+        spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
 
-            alertDialog = builder.create();
-            final LayoutInflater factory = LayoutInflater.from(this);
-            break;
-        }
-        case DIALOG_PRESET_REVERB: {
-            final AlertDialog.Builder builder = new AlertDialog.Builder(this);
-            builder.setTitle(R.string.pr_dialog_title);
-            builder.setSingleChoiceItems(PRESETREVERBPRESETSTRINGS, -1,
-                    new DialogInterface.OnClickListener() {
-                        @Override
-                        public void onClick(final DialogInterface dialog, final int item) {
-                            presetReverbSetPreset(item);
-                        }
-                    });
-            builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
-                @Override
-                public void onClick(final DialogInterface dialog, final int whichButton) {
-                    final ListView listView = ((AlertDialog) dialog).getListView();
-                    final int newPreset = listView.getCheckedItemPosition();
-                    presetReverbSetPreset(newPreset);
-                    ((TextView) findViewById(R.id.eRPresetsTitleTextView))
-                            .setText(getString(R.string.pr_title) + " "
-                                    + listView.getItemAtPosition(newPreset).toString());
+            @Override
+            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+                if (position != mPRPresetPrevious) {
+                    presetReverbSetPreset(position);
                 }
-            });
-            builder.setNegativeButton(android.R.string.cancel,
-                    new DialogInterface.OnClickListener() {
-                        @Override
-                        public void onClick(final DialogInterface dialog, final int whichButton) {
-                            dialog.cancel();
-                        }
-                    });
-            builder.setOnCancelListener(new OnCancelListener() {
-                @Override
-                public void onCancel(final DialogInterface dialog) {
-                    presetReverbSetPreset(mPRPreset);
-                }
-            });
-
-            alertDialog = builder.create();
-            break;
-        }
-        default:
-            Log.e(TAG, "onCreateDialog invalid Dialog id: " + id);
-            alertDialog = null;
-            break;
-        }
-        return alertDialog;
-    }
-
-    /*
-     * Updates dialog (selections) before they are shown if necessary
-     *
-     * (non-Javadoc)
-     *
-     * @see android.app.Activity#onPrepareDialog(int, android.app.Dialog, android.os.Bundle)
-     */
-    @Override
-    protected void onPrepareDialog(final int id, final Dialog dialog, final Bundle args) {
-        switch (id) {
-        case DIALOG_EQUALIZER: {
-            mEQPreset = ControlPanelEffect.getParameterInt(mContext, mCallingPackageName,
-                    mAudioSession, ControlPanelEffect.Key.eq_current_preset);
-            if (mEQPreset >= mEQPresetNames.length) {
-                mEQPreset = 0;
+                mPRPresetPrevious = position;
             }
-            mEQPresetPrevious = mEQPreset;
-            mEQPresetUserBandLevelsPrev = ControlPanelEffect.getParameterIntArray(mContext,
-                    mCallingPackageName, mAudioSession,
-                    ControlPanelEffect.Key.eq_preset_user_band_level);
-            final ListView listView = ((AlertDialog) dialog).getListView();
-            listView.setItemChecked(mEQPreset, true);
-            listView.setSelection(mEQPreset);
-            break;
-        }
-        case DIALOG_PRESET_REVERB: {
-            mPRPreset = ControlPanelEffect.getParameterInt(mContext, mCallingPackageName,
-                    mAudioSession, ControlPanelEffect.Key.pr_current_preset);
-            final ListView listView = ((AlertDialog) dialog).getListView();
-            listView.setItemChecked(mPRPreset, true);
-            listView.setSelection(mPRPreset);
-            break;
-        }
-        default:
-            Log.e(TAG, "onPrepareDialog invalid Dialog id: " + id);
-            break;
-        }
+
+            @Override
+            public void onNothingSelected(AdapterView<?> parent) {
+            }
+        });
+        spinner.setSelection(mPRPreset);
     }
 
+    private void equalizerSpinnerInit(Spinner spinner) {
+        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
+                android.R.layout.simple_spinner_item, mEQPresetNames);
+        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+        spinner.setAdapter(adapter);
+        spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
+
+            @Override
+            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+                if (position != mEQPresetPrevious) {
+                    equalizerSetPreset(position);
+                }
+                mEQPresetPrevious = position;
+            }
+
+            @Override
+            public void onNothingSelected(AdapterView<?> parent) {
+            }
+        });
+        spinner.setSelection(mEQPreset);
+    }
+
+
     /**
      * En/disables all children for a given view. For linear and relative layout children do this
      * recursively
@@ -671,24 +558,13 @@
                             ControlPanelEffect.Key.bb_strength));
         }
         if (mEqualizerSupported) {
-            final String [] presets = mEQPresetNames;
-            int idx = ControlPanelEffect.getParameterInt(mContext,
-                                    mCallingPackageName, mAudioSession,
-                                    ControlPanelEffect.Key.eq_current_preset);
-            if (idx >= presets.length) {
-                idx = 0;
-            }
-            ((TextView) findViewById(R.id.eqPresetsSummaryTextView))
-                    .setText(presets[idx]);
             equalizerUpdateDisplay();
         }
         if (mPresetReverbSupported) {
-            ((TextView) findViewById(R.id.eRPresetsTitleTextView))
-                    .setText(getString(R.string.pr_title)
-                            + " "
-                            + PRESETREVERBPRESETSTRINGS[ControlPanelEffect.getParameterInt(
+            int reverb = ControlPanelEffect.getParameterInt(
                                     mContext, mCallingPackageName, mAudioSession,
-                                    ControlPanelEffect.Key.pr_current_preset)]);
+                                    ControlPanelEffect.Key.pr_current_preset);
+            ((Spinner)findViewById(R.id.prSpinner)).setSelection(reverb);
         }
     }
 
@@ -711,7 +587,7 @@
     /**
      * Initializes the equalizer elements. Set the SeekBars and Spinner listeners.
      */
-    private void equalizerInit(View eqcontainer) {
+    private void equalizerBandsInit(View eqcontainer) {
         // Initialize the N-Band Equalizer elements.
         mNumberEqualizerBands = ControlPanelEffect.getParameterInt(mContext, mCallingPackageName,
                 mAudioSession, ControlPanelEffect.Key.eq_num_bands);
@@ -860,26 +736,6 @@
         ControlPanelEffect.setParameterInt(mContext, mCallingPackageName, mAudioSession,
                 ControlPanelEffect.Key.eq_current_preset, preset);
         equalizerUpdateDisplay();
-        ((TextView) findViewById(R.id.eqPresetsSummaryTextView))
-        .setText(mEQPresetNames[preset]);
-    }
-
-    /**
-     * Checks if an User EQ preset is set.
-     */
-    private boolean isEqualizerUserPreset(final int preset) {
-        return (preset == mEQPresetUserPos);
-    }
-
-    /**
-     * Sets the given PR preset.
-     *
-     * @param preset
-     *            PR preset id.
-     */
-    private void presetReverbSetPreset(final short preset) {
-        ControlPanelEffect.setParameterInt(mContext, mCallingPackageName, mAudioSession,
-                ControlPanelEffect.Key.pr_current_preset, preset);
     }
 
     /**
@@ -889,7 +745,8 @@
      *            PR preset id.
      */
     private void presetReverbSetPreset(final int preset) {
-        presetReverbSetPreset((short) preset);
+        ControlPanelEffect.setParameterInt(mContext, mCallingPackageName, mAudioSession,
+                ControlPanelEffect.Key.pr_current_preset, preset);
     }
 
     /**