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()]));
+ }
}