mirror of
https://github.com/izzy2lost/dolphin.git
synced 2026-06-19 01:16:48 -07:00
[Android] Redo the Settings menu, Can now change the CPU Core, dual core setting, and video backend in the settings"
This commit is contained in:
Generated
+283
-173
File diff suppressed because it is too large
Load Diff
@@ -37,11 +37,9 @@
|
||||
android:theme="@android:style/Theme"
|
||||
android:configChanges="orientation|locale|keyboard|keyboardHidden|navigation|fontScale|uiMode" >
|
||||
</activity>
|
||||
<activity
|
||||
android:name="org.dolphinemu.dolphinemu.SettingBrowser"
|
||||
android:label="@string/app_name"
|
||||
android:theme="@android:style/Theme"
|
||||
android:configChanges="orientation|locale|keyboard|keyboardHidden|navigation|fontScale|uiMode" >
|
||||
<activity
|
||||
android:name=".PrefsActivity"
|
||||
android:theme="@android:style/Theme.Black.NoTitleBar" >
|
||||
</activity>
|
||||
</application>
|
||||
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
>
|
||||
<PreferenceCategory
|
||||
android:summary="Settings"
|
||||
android:title="CPU Settings" >
|
||||
<ListPreference
|
||||
android:entries="@array/cpuOptions"
|
||||
android:entryValues="@array/cpuValues"
|
||||
android:key="cpupref"
|
||||
android:summary="Emulation core to use"
|
||||
android:title="CPU Core" />
|
||||
<CheckBoxPreference
|
||||
android:key="dualcorepref"
|
||||
android:summary="On/Off"
|
||||
android:title="Dual Core" />
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory
|
||||
android:summary="Settings"
|
||||
android:title="Video Settings" >
|
||||
<ListPreference
|
||||
android:entries="@array/gpuOptions"
|
||||
android:entryValues="@array/gpuValues"
|
||||
android:key="gpupref"
|
||||
android:summary="Video backend to use"
|
||||
android:title="Video Backend" />
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
||||
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string-array name="cpuOptions">
|
||||
<item>Interpreter</item>
|
||||
<item>ARM JIT Recompiler</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="cpuValues">
|
||||
<item>0</item>
|
||||
<item>3</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="gpuOptions">
|
||||
<item>Software Renderer</item>
|
||||
<item>OpenGL</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="gpuValues">
|
||||
<item>Software Renderer</item>
|
||||
<item>OGL</item>
|
||||
</string-array>
|
||||
</resources>
|
||||
@@ -3,7 +3,9 @@ package org.dolphinemu.dolphinemu;
|
||||
import android.app.Activity;
|
||||
import android.app.ListActivity;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.AdapterView;
|
||||
@@ -24,6 +26,8 @@ public class GameListView extends ListActivity {
|
||||
private static GameListView me;
|
||||
public static native String GetConfig(String Key, String Value, String Default);
|
||||
public static native void SetConfig(String Key, String Value, String Default);
|
||||
|
||||
enum keyTypes {TYPE_STRING, TYPE_BOOL};
|
||||
|
||||
private void Fill()
|
||||
{
|
||||
@@ -88,19 +92,67 @@ public class GameListView extends ListActivity {
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data)
|
||||
{
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
|
||||
if (resultCode == Activity.RESULT_OK)
|
||||
{
|
||||
String FileName = data.getStringExtra("Select");
|
||||
Toast.makeText(this, "Folder Selected: " + FileName, Toast.LENGTH_SHORT).show();
|
||||
String Directories = GetConfig("General", "GCMPathes", "0");
|
||||
int intDirectories = Integer.parseInt(Directories);
|
||||
Directories = Integer.toString(intDirectories + 1);
|
||||
SetConfig("General", "GCMPathes", Directories);
|
||||
SetConfig("General", "GCMPaths" + Integer.toString(intDirectories), FileName);
|
||||
|
||||
Fill();
|
||||
}
|
||||
|
||||
switch (requestCode)
|
||||
{
|
||||
// Browse
|
||||
case 1:
|
||||
if (resultCode == Activity.RESULT_OK)
|
||||
{
|
||||
String FileName = data.getStringExtra("Select");
|
||||
Toast.makeText(this, "Folder Selected: " + FileName, Toast.LENGTH_SHORT).show();
|
||||
String Directories = GetConfig("General", "GCMPathes", "0");
|
||||
int intDirectories = Integer.parseInt(Directories);
|
||||
Directories = Integer.toString(intDirectories + 1);
|
||||
SetConfig("General", "GCMPathes", Directories);
|
||||
SetConfig("General", "GCMPaths" + Integer.toString(intDirectories), FileName);
|
||||
|
||||
Fill();
|
||||
}
|
||||
break;
|
||||
// Settings
|
||||
case 2:
|
||||
|
||||
String Keys[] = {
|
||||
"cpupref",
|
||||
"dualcorepref",
|
||||
"gpupref",
|
||||
};
|
||||
String ConfigKeys[] = {
|
||||
"Core-CPUCore",
|
||||
"Core-CPUThread",
|
||||
"Core-GFXBackend",
|
||||
};
|
||||
|
||||
keyTypes KeysTypes[] = {
|
||||
keyTypes.TYPE_STRING,
|
||||
keyTypes.TYPE_BOOL,
|
||||
keyTypes.TYPE_STRING,
|
||||
};
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
|
||||
|
||||
// Set our preferences here
|
||||
for (int a = 0; a < Keys.length; ++a)
|
||||
{
|
||||
String ConfigValues[] = ConfigKeys[a].split("-");
|
||||
String Key = ConfigValues[0];
|
||||
String Value = ConfigValues[1];
|
||||
|
||||
switch(KeysTypes[a])
|
||||
{
|
||||
case TYPE_STRING:
|
||||
String strPref = prefs.getString(Keys[a], "");
|
||||
SetConfig(Key, Value, strPref);
|
||||
break;
|
||||
case TYPE_BOOL:
|
||||
boolean boolPref = prefs.getBoolean(Keys[a], true);
|
||||
SetConfig(Key, Value, boolPref ? "True" : "False");
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -138,8 +190,8 @@ public class GameListView extends ListActivity {
|
||||
break;
|
||||
case 1:
|
||||
Toast.makeText(me, "Loading up settings", Toast.LENGTH_SHORT).show();
|
||||
Intent SettingIntent = new Intent(me, SettingBrowser.class);
|
||||
startActivityForResult(SettingIntent, 1);
|
||||
Intent SettingIntent = new Intent(me, PrefsActivity.class);
|
||||
startActivityForResult(SettingIntent, 2);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
package org.dolphinemu.dolphinemu;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.preference.PreferenceActivity;
|
||||
import android.preference.PreferenceFragment;
|
||||
|
||||
/**
|
||||
* Copyright 2013 Dolphin Emulator Project
|
||||
* Licensed under GPLv2
|
||||
* Refer to the license.txt file included.
|
||||
*/
|
||||
public class PrefsActivity extends PreferenceActivity {
|
||||
|
||||
public class PrefsFragment extends PreferenceFragment {
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
// Load the preferences from an XML resource
|
||||
addPreferencesFromResource(R.layout.prefs);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
getFragmentManager().beginTransaction().replace(android.R.id.content,
|
||||
new PrefsFragment()).commit();
|
||||
}
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
Intent intent = new Intent();
|
||||
setResult(Activity.RESULT_OK, intent);
|
||||
this.finish();
|
||||
super.onBackPressed();
|
||||
}
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
package org.dolphinemu.dolphinemu;
|
||||
|
||||
import android.app.ListActivity;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.ListView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Copyright 2013 Dolphin Emulator Project
|
||||
* Licensed under GPLv2
|
||||
* Refer to the license.txt file included.
|
||||
*/
|
||||
|
||||
public class SettingBrowser extends ListActivity {
|
||||
private SettingMenuAdapter adapter;
|
||||
private void Fill()
|
||||
{
|
||||
this.setTitle("Settings");
|
||||
List<SettingMenuItem> dir = new ArrayList<SettingMenuItem>();
|
||||
|
||||
dir.add(new SettingMenuItem("Setting 1", "SubTitle 1", 0));
|
||||
Collections.sort(dir);
|
||||
|
||||
adapter = new SettingMenuAdapter(this,R.layout.folderbrowser,dir);
|
||||
this.setListAdapter(adapter);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onListItemClick(ListView l, View v, int position, long id) {
|
||||
super.onListItemClick(l, v, position, id);
|
||||
SettingMenuItem o = adapter.getItem(position);
|
||||
switch (o.getID())
|
||||
{
|
||||
default:
|
||||
// Do nothing yet
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState)
|
||||
{
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
Fill();
|
||||
}
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
this.finish();
|
||||
super.onBackPressed();
|
||||
}
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
package org.dolphinemu.dolphinemu;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.TextView;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Copyright 2013 Dolphin Emulator Project
|
||||
* Licensed under GPLv2
|
||||
* Refer to the license.txt file included.
|
||||
*/
|
||||
|
||||
public class SettingMenuAdapter extends ArrayAdapter<SettingMenuItem>{
|
||||
|
||||
private Context c;
|
||||
private int id;
|
||||
private List<SettingMenuItem>items;
|
||||
|
||||
public SettingMenuAdapter(Context context, int textViewResourceId,
|
||||
List<SettingMenuItem> objects) {
|
||||
super(context, textViewResourceId, objects);
|
||||
c = context;
|
||||
id = textViewResourceId;
|
||||
items = objects;
|
||||
}
|
||||
public SettingMenuItem getItem(int i)
|
||||
{
|
||||
return items.get(i);
|
||||
}
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
View v = convertView;
|
||||
if (v == null) {
|
||||
LayoutInflater vi = (LayoutInflater)c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
v = vi.inflate(id, null);
|
||||
if (v == null)
|
||||
return null; // This should never be hit, but have it to clear a warning
|
||||
}
|
||||
final SettingMenuItem o = items.get(position);
|
||||
if (o != null) {
|
||||
TextView t1 = (TextView) v.findViewById(R.id.TextView01);
|
||||
TextView t2 = (TextView) v.findViewById(R.id.TextView02);
|
||||
|
||||
if (t1 != null)
|
||||
t1.setText(o.getName());
|
||||
if (t2 != null)
|
||||
t2.setText(o.getSubtitle());
|
||||
}
|
||||
return v;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
package org.dolphinemu.dolphinemu;
|
||||
|
||||
public class SettingMenuItem implements Comparable<SettingMenuItem>{
|
||||
private String name;
|
||||
private String subtitle;
|
||||
private int m_id;
|
||||
|
||||
public SettingMenuItem(String n,String d, int id)
|
||||
{
|
||||
name = n;
|
||||
subtitle = d;
|
||||
m_id = id;
|
||||
}
|
||||
|
||||
public String getName()
|
||||
{
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getSubtitle()
|
||||
{
|
||||
return subtitle;
|
||||
}
|
||||
public int getID()
|
||||
{
|
||||
return m_id;
|
||||
}
|
||||
|
||||
public int compareTo(SettingMenuItem o)
|
||||
{
|
||||
if(this.name != null)
|
||||
return this.name.toLowerCase().compareTo(o.getName().toLowerCase());
|
||||
else
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user