diff --git a/Source/Android/res/layout/prefs.xml b/Source/Android/res/layout/prefs.xml
index d8d8664a97..53dd443300 100644
--- a/Source/Android/res/layout/prefs.xml
+++ b/Source/Android/res/layout/prefs.xml
@@ -1,24 +1,30 @@
-
-
+
+
+
+
+
-
-
+ android:key="dualCorePref"
+ android:summary="@string/on_off"
+ android:title="@string/dual_core" />
+
-
+ android:key="cpuCorePref"
+ android:summary="@string/emu_core_to_use"
+ android:title="@string/cpu_core" />
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Source/Android/res/values-ja/strings.xml b/Source/Android/res/values-ja/strings.xml
index 329d464ccb..ff2ce33212 100644
--- a/Source/Android/res/values-ja/strings.xml
+++ b/Source/Android/res/values-ja/strings.xml
@@ -73,6 +73,7 @@
ビデオ設定
Software Renderer
+ OpenGL ES 3
ビデオレンダラ
使用するビデオレンダラー
diff --git a/Source/Android/res/values/arrays.xml b/Source/Android/res/values/arrays.xml
new file mode 100644
index 0000000000..05d4668b99
--- /dev/null
+++ b/Source/Android/res/values/arrays.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+ - @string/interpreter
+ - @string/jit64_recompiler
+ - @string/jitil_recompiler
+
+
+ - 0
+ - 1
+ - 2
+
+
+
+
+ - @string/interpreter
+ - @string/jit_arm_recompiler
+
+
+ - 0
+ - 3
+
+
+
+
+ - @string/interpreter
+
+
+ - 0
+
+
+
+
+
+ - @string/software_renderer
+ - @string/opengl_es3
+
+
+ - Software Renderer
+ - OGL
+
+
+
+
+ - @string/software_renderer
+
+
+ - Software Renderer
+
+
+
\ No newline at end of file
diff --git a/Source/Android/res/values/prefvalues.xml b/Source/Android/res/values/prefvalues.xml
deleted file mode 100644
index 8564801f6f..0000000000
--- a/Source/Android/res/values/prefvalues.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
- - Software Renderer
- - OpenGL ES 3
-
-
-
- - Software Renderer
- - OGL
-
-
\ No newline at end of file
diff --git a/Source/Android/res/values/strings.xml b/Source/Android/res/values/strings.xml
index ea1e02297a..8fc3805134 100644
--- a/Source/Android/res/values/strings.xml
+++ b/Source/Android/res/values/strings.xml
@@ -73,6 +73,7 @@
Video Settings
Software Renderer
+ OpenGL ES 3
Video Backend
Video backend to use
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java b/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java
index 08c95fd2cd..e593a996ad 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java
@@ -127,9 +127,9 @@ public final class DolphinEmulator extends Activity
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = prefs.edit();
- editor.putString("cpupref", NativeLibrary.GetConfig("Dolphin.ini", "Core", "CPUCore", "3"));
- editor.putBoolean("dualcorepref", NativeLibrary.GetConfig("Dolphin.ini", "Core", "CPUThread", "False").equals("True") ? true : false);
- editor.putString("gpupref", NativeLibrary.GetConfig("Dolphin.ini", "Core", "GFXBackend ", "Software Renderer"));
+ editor.putString("cpuCorePref", NativeLibrary.GetConfig("Dolphin.ini", "Core", "CPUCore", "3"));
+ editor.putBoolean("dualCorePref", NativeLibrary.GetConfig("Dolphin.ini", "Core", "CPUThread", "False").equals("True") ? true : false);
+ editor.putString("gpuPref", NativeLibrary.GetConfig("Dolphin.ini", "Core", "GFXBackend ", "Software Renderer"));
editor.commit();
}
}
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/GameListActivity.java b/Source/Android/src/org/dolphinemu/dolphinemu/GameListActivity.java
index 2bd61cb0f2..bbc3a0be72 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/GameListActivity.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/GameListActivity.java
@@ -113,9 +113,9 @@ public final class GameListActivity extends Activity
case 2:
{
String Keys[] = {
- "cpupref",
- "dualcorepref",
- "gpupref",
+ "cpuCorePref",
+ "dualCorePref",
+ "gpuPref",
};
String ConfigKeys[] = {
"Core-CPUCore",
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/PrefsFragment.java b/Source/Android/src/org/dolphinemu/dolphinemu/PrefsFragment.java
index ad69a89a9d..bdc036e38a 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/PrefsFragment.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/PrefsFragment.java
@@ -1,12 +1,9 @@
package org.dolphinemu.dolphinemu;
-import java.util.HashMap;
-
import android.app.Activity;
import android.os.Build;
import android.os.Bundle;
import android.preference.ListPreference;
-import android.preference.PreferenceCategory;
import android.preference.PreferenceFragment;
import javax.microedition.khronos.egl.*;
@@ -111,11 +108,11 @@ public final class PrefsFragment extends PreferenceFragment
boolean mSupportsGLES3 = false;
// Check for OpenGL ES 3 support (General case).
- if (m_GLVersion.contains("OpenGL ES 3.0") || m_GLVersion.equals("OpenGL ES 3.0"))
+ if (m_GLVersion != null && (m_GLVersion.contains("OpenGL ES 3.0") || m_GLVersion.equals("OpenGL ES 3.0")))
mSupportsGLES3 = true;
// Checking for OpenGL ES 3 support for certain Qualcomm devices.
- if (!mSupportsGLES3 && m_GLVendor.equals("Qualcomm"))
+ if (!mSupportsGLES3 && m_GLVendor != null && m_GLVendor.equals("Qualcomm"))
{
if (m_GLRenderer.contains("Adreno (TM) 3"))
{
@@ -149,58 +146,43 @@ public final class PrefsFragment extends PreferenceFragment
// Load the preferences from an XML resource
addPreferencesFromResource(R.layout.prefs);
- final ListPreference etp = new ListPreference(m_activity);
- final HashMap entries = new HashMap();
+ final ListPreference cpuCores = (ListPreference) findPreference("cpuCorePref");
+ //
+ // Set valid emulation cores depending on the CPU architecture
+ // that the Android device is running on.
+ //
if (Build.CPU_ABI.contains("x86"))
{
- entries.put(getString(R.string.interpreter), "0");
- entries.put(getString(R.string.jit64_recompiler), "1");
- entries.put(getString(R.string.jitil_recompiler), "2");
+ cpuCores.setEntries(R.array.emuCoreEntriesX86);
+ cpuCores.setEntryValues(R.array.emuCoreValuesX86);
}
else if (Build.CPU_ABI.contains("arm"))
{
- entries.put(getString(R.string.interpreter), "0");
- entries.put(getString(R.string.jit_arm_recompiler), "3");
+ cpuCores.setEntries(R.array.emuCoreEntriesARM);
+ cpuCores.setEntryValues(R.array.emuCoreValuesARM);
}
else
{
- entries.put(getString(R.string.interpreter), "0");
+ cpuCores.setEntries(R.array.emuCoreEntriesOther);
+ cpuCores.setEntryValues(R.array.emuCoreValuesOther);
}
-
- // 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(getString(R.string.cpu_core));
- etp.setSummary(getString(R.string.emu_core_to_use));
- PreferenceCategory mCategory = (PreferenceCategory) findPreference("cpuprefcat");
- mCategory.addPreference(etp);
+ //
+ // Setting valid video backends.
+ //
+ final ListPreference videoBackends = (ListPreference) findPreference("gpuPref");
+ final boolean deviceSupportsGLES3 = SupportsGLES3();
- boolean mSupportsGLES3 = SupportsGLES3();
-
- if (!mSupportsGLES3)
+ if (deviceSupportsGLES3)
{
- mCategory = (PreferenceCategory) findPreference("videoprefcat");
- ListPreference mPref = (ListPreference) findPreference("gpupref");
- mCategory.removePreference(mPref);
-
- final ListPreference videobackend = new ListPreference(m_activity);
-
- // Add available graphics renderers to the hashmap to add to the list.
- entries.clear();
- entries.put(getString(R.string.software_renderer), "Software Renderer");
-
- videobackend.setKey("gpupref");
- videobackend.setTitle(getString(R.string.video_backend));
- videobackend.setSummary(getString(R.string.video_backend_to_use));
-
- videobackend.setEntries(entries.keySet().toArray(new CharSequence[entries.size()]));
- videobackend.setEntryValues(entries.values().toArray(new CharSequence[entries.size()]));
-
- mCategory.addPreference(videobackend);
+ videoBackends.setEntries(R.array.videoBackendEntriesGLES3);
+ videoBackends.setEntryValues(R.array.videoBackendValuesGLES3);
+ }
+ else
+ {
+ videoBackends.setEntries(R.array.videoBackendEntriesNoGLES3);
+ videoBackends.setEntryValues(R.array.videoBackendValuesNoGLES3);
}
}