OmniGears: remove ringer volume default listitem at !isVoiceCapable

PS3:
correct array creation

Change-Id: I02efb2b83991329855271ca9389b2a60c550aa21
diff --git a/src/org/omnirom/omnigears/ButtonSettings.java b/src/org/omnirom/omnigears/ButtonSettings.java
index 4102c4a..00ae2d2 100644
--- a/src/org/omnirom/omnigears/ButtonSettings.java
+++ b/src/org/omnirom/omnigears/ButtonSettings.java
@@ -36,6 +36,7 @@
 
 import android.content.ContentResolver;
 import android.content.res.Resources;
+import android.media.AudioSystem;
 import android.os.Bundle;
 import android.preference.CheckBoxPreference;
 import android.preference.ListPreference;
@@ -145,6 +146,10 @@
             }
             String currentDefault = Settings.System.getString(resolver, Settings.System.VOLUME_KEYS_DEFAULT);
 
+            if (!Utils.isVoiceCapable(getActivity())) {
+                removeListEntry(mVolumeDefault, String.valueOf(AudioSystem.STREAM_RING));
+            }
+
             if (currentDefault == null) {
                 currentDefault = mVolumeDefault.getEntryValues()[mVolumeDefault.getEntryValues().length - 1].toString();
             }
@@ -181,7 +186,7 @@
             prefScreen.removePreference(keysHomeCategory);
             prefScreen.removePreference(keysMenuCategory);
             prefScreen.removePreference(keysAssistCategory);
-            prefScreen.removePreference(keysAppSwitchCategory);           
+            prefScreen.removePreference(keysAppSwitchCategory);
         } else {
             mEnableCustomBindings = (SwitchPreference) prefScreen.findPreference(
                     KEYS_ENABLE_CUSTOM);
@@ -520,4 +525,21 @@
             alertDialog.show();
         }
     }
+
+    public void removeListEntry(ListPreference list, String valuetoRemove) {
+        ArrayList<CharSequence> entries = new ArrayList<CharSequence>();
+        ArrayList<CharSequence> values = new ArrayList<CharSequence>();
+
+        for (int i = 0; i < list.getEntryValues().length; i++) {
+            if (list.getEntryValues()[i].toString().equals(valuetoRemove)) {
+                continue;
+            } else {
+                entries.add(list.getEntries()[i]);
+                values.add(list.getEntryValues()[i]);
+            }
+        }
+
+        list.setEntries(entries.toArray(new CharSequence[entries.size()]));
+        list.setEntryValues(values.toArray(new CharSequence[values.size()]));
+    }
 }