From 3b272d81b45f47d3fb0aab8ff0a1736fb1788f1e Mon Sep 17 00:00:00 2001 From: Lioncash Date: Mon, 12 Aug 2013 19:41:23 -0400 Subject: [PATCH] [Android] Use a HashMap in PrefsFragment.java instead of two CharSequence arrays. This way, we hold the [key|value] pairs together in one object and reduce overall code clutter. --- .../dolphinemu/dolphinemu/PrefsFragment.java | 45 ++++++++----------- 1 file changed, 19 insertions(+), 26 deletions(-) diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/PrefsFragment.java b/Source/Android/src/org/dolphinemu/dolphinemu/PrefsFragment.java index daf9aeb1c6..e16b2503c3 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/PrefsFragment.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/PrefsFragment.java @@ -1,5 +1,7 @@ package org.dolphinemu.dolphinemu; +import java.util.HashMap; + import android.app.Activity; import android.os.Build; import android.os.Bundle; @@ -138,36 +140,28 @@ public class PrefsFragment extends PreferenceFragment { addPreferencesFromResource(R.layout.prefs); final ListPreference etp = new ListPreference(m_activity); - CharSequence[] _entries; - CharSequence[] _entryvalues; + final HashMap entries = new HashMap(); if (Build.CPU_ABI.contains("x86")) { - _entries = new CharSequence[] { - "Interpreter", - "JIT64 Recompiler", - "JITIL Recompiler", - }; - _entryvalues = new CharSequence[] {"0", "1", "2"}; + entries.put("Interpreter", "0"); + entries.put("JIT64 Recompiler", "1"); + entries.put("JITIL Recompiler", "2"); } else if (Build.CPU_ABI.contains("arm")) { - _entries = new CharSequence[] { - "Interpreter", - "JIT ARM Recompiler", - }; - _entryvalues = new CharSequence[] {"0", "3"}; + entries.put("Interpreter", "0"); + entries.put("JIT ARM Recompiler", "3"); } else { - _entries = new CharSequence[] { - "Interpreter", - }; - _entryvalues = new CharSequence[] {"0"}; + entries.put("Interpreter", "0"); } - - etp.setEntries(_entries); - etp.setEntryValues(_entryvalues); + + // Convert the key/value sections to arrays respectively so the list can be set. + // If Java had proper generics it wouldn't look this disgusting. + etp.setEntries(entries.keySet().toArray(new CharSequence[entries.size()])); + etp.setEntryValues(entries.values().toArray(new CharSequence[entries.size()])); etp.setKey("cpupref"); etp.setTitle("CPU Core"); etp.setSummary("Emulation core to use"); @@ -185,17 +179,16 @@ public class PrefsFragment extends PreferenceFragment { final ListPreference videobackend = new ListPreference(m_activity); - _entries = new CharSequence[] { - "Software Renderer", - }; - _entryvalues = new CharSequence[] {"Software Renderer"}; + // Add available graphics renderers to the hashmap to add to the list. + entries.clear(); + entries.put("Software Renderer", "Software Renderer"); // TODO: I think this is a bug? The value shouldn't be the same as the key? videobackend.setKey("gpupref"); videobackend.setTitle("Video Backend"); videobackend.setSummary("Video backend to use"); - videobackend.setEntries(_entries); - videobackend.setEntryValues(_entryvalues); + videobackend.setEntries(entries.keySet().toArray(new CharSequence[entries.size()])); + videobackend.setEntryValues(entries.values().toArray(new CharSequence[entries.size()])); mCategory.addPreference(videobackend); }