mirror of
https://github.com/izzy2lost/dolphin.git
synced 2026-06-19 01:16:48 -07:00
Merge pull request #2413 from sigmabeta/android-lollipop-settings
Android: Implement Settings screen in new UI.
This commit is contained in:
@@ -29,6 +29,7 @@ android {
|
||||
}
|
||||
}
|
||||
|
||||
// Define build types, which are orthogonal to product flavors.
|
||||
buildTypes {
|
||||
// Signed by release key, allowing for upload to Play Store.
|
||||
release {
|
||||
@@ -43,6 +44,35 @@ android {
|
||||
jniDebuggable true
|
||||
}
|
||||
}
|
||||
|
||||
// Define product flavors, which can be split into categories. Common examples
|
||||
// of product flavors are paid vs. free, ARM vs. x86, etc.
|
||||
productFlavors {
|
||||
arm {
|
||||
// This flavor is mutually exclusive against any flavor in the same dimension.
|
||||
flavorDimension "abi"
|
||||
|
||||
// When building this flavor, only include native libs from the specified folder.
|
||||
ndk {
|
||||
abiFilter "armeabi-v7a"
|
||||
}
|
||||
}
|
||||
|
||||
arm_64 {
|
||||
flavorDimension "abi"
|
||||
ndk {
|
||||
abiFilter "arm64-v8a"
|
||||
}
|
||||
}
|
||||
|
||||
// TODO Uncomment this when we successfully build for x86_64.
|
||||
/*x86_64 {
|
||||
flavorDimension "abi"
|
||||
ndk {
|
||||
abiFilter "x86_64"
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!-- All lists for ListPreference keys/values are placed here -->
|
||||
<resources>
|
||||
|
||||
<!-- New UI CPU Core selection - ARM32 -->
|
||||
<string-array name="string_emu_cores" translatable="false">
|
||||
<item>@string/interpreter</item>
|
||||
<item>@string/jit_arm_recompiler</item>
|
||||
</string-array>
|
||||
<string-array name="int_emu_cores" translatable="false">
|
||||
<item>0</item>
|
||||
<item>3</item>
|
||||
</string-array>
|
||||
|
||||
</resources>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Title of the app -->
|
||||
<string name="title_new_ui">Dolphin ARM32</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!-- All lists for ListPreference keys/values are placed here -->
|
||||
<resources>
|
||||
|
||||
<!-- New UI CPU Core selection - ARM64 -->
|
||||
<string-array name="string_emu_cores" translatable="false">
|
||||
<item>@string/interpreter</item>
|
||||
<item>@string/jit_arm64_recompiler</item>
|
||||
</string-array>
|
||||
<string-array name="int_emu_cores" translatable="false">
|
||||
<item>0</item>
|
||||
<item>4</item>
|
||||
</string-array>
|
||||
|
||||
</resources>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Title of the app -->
|
||||
<string name="title_new_ui">Dolphin ARM64</string>
|
||||
</resources>
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
<activity
|
||||
android:name=".activities.GameGridActivity"
|
||||
android:label="Dolphin New UI"
|
||||
android:label="@string/title_new_ui"
|
||||
android:theme="@style/DolphinGamecube">
|
||||
|
||||
<!-- This intentfilter marks this Activity as the one that gets launched from Home screen. -->
|
||||
@@ -27,9 +27,14 @@
|
||||
|
||||
<activity
|
||||
android:name=".activities.AddDirectoryActivity"
|
||||
android:theme="@style/DolphinWii"
|
||||
android:theme="@style/DolphinGamecube"
|
||||
android:label="@string/add_directory_title"/>
|
||||
|
||||
<activity
|
||||
android:name=".activities.SettingsActivity"
|
||||
android:theme="@style/DolphinSettingsGamecube"
|
||||
android:label="@string/grid_menu_settings"/>
|
||||
|
||||
<activity
|
||||
android:name="org.dolphinemu.dolphinemu.gamelist.GameListActivity"
|
||||
android:label="@string/app_name"
|
||||
@@ -60,7 +65,9 @@
|
||||
android:label="@string/settings"
|
||||
android:theme="@android:style/Theme.Holo.Light" />
|
||||
|
||||
<service android:name=".AssetCopyService"/>
|
||||
<service android:name=".services.AssetCopyService"/>
|
||||
|
||||
<service android:name=".services.SettingsSaveService"/>
|
||||
|
||||
</application>
|
||||
|
||||
|
||||
+26
-4
@@ -10,16 +10,17 @@ import android.support.v7.widget.GridLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.Toolbar;
|
||||
|
||||
import org.dolphinemu.dolphinemu.AssetCopyService;
|
||||
import org.dolphinemu.dolphinemu.NativeLibrary;
|
||||
import org.dolphinemu.dolphinemu.R;
|
||||
import org.dolphinemu.dolphinemu.adapters.GameAdapter;
|
||||
import org.dolphinemu.dolphinemu.model.Game;
|
||||
import org.dolphinemu.dolphinemu.model.GcGame;
|
||||
import org.dolphinemu.dolphinemu.services.AssetCopyService;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
@@ -89,8 +90,8 @@ public final class GameGridActivity extends Activity
|
||||
* Callback from AddDirectoryActivity. Applies any changes necessary to the GameGridActivity.
|
||||
*
|
||||
* @param requestCode An int describing whether the Activity that is returning did so successfully.
|
||||
* @param resultCode An int describing what Activity is giving us this callback.
|
||||
* @param result The information the returning Activity is providing us.
|
||||
* @param resultCode An int describing what Activity is giving us this callback.
|
||||
* @param result The information the returning Activity is providing us.
|
||||
*/
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent result)
|
||||
@@ -126,7 +127,27 @@ public final class GameGridActivity extends Activity
|
||||
MenuInflater inflater = getMenuInflater();
|
||||
inflater.inflate(R.menu.menu_game_grid, menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called by the framework whenever any actionbar/toolbar icon is clicked.
|
||||
*
|
||||
* @param item The icon that was clicked on.
|
||||
* @return True if the event was handled, false to bubble it up to the OS.
|
||||
*/
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item)
|
||||
{
|
||||
switch (item.getItemId())
|
||||
{
|
||||
case R.id.menu_settings:
|
||||
// Launch the Settings Actvity.
|
||||
Intent settings = new Intent(this, SettingsActivity.class);
|
||||
startActivity(settings);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// TODO Replace all of this with a SQLite database
|
||||
@@ -172,7 +193,8 @@ public final class GameGridActivity extends Activity
|
||||
}
|
||||
|
||||
}
|
||||
} catch (Exception ignored)
|
||||
}
|
||||
catch (Exception ignored)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
package org.dolphinemu.dolphinemu.activities;
|
||||
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
|
||||
import org.dolphinemu.dolphinemu.fragments.SettingsFragment;
|
||||
import org.dolphinemu.dolphinemu.services.SettingsSaveService;
|
||||
|
||||
public final class SettingsActivity extends Activity
|
||||
{
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState)
|
||||
{
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
// Display the fragment as the main content.
|
||||
getFragmentManager().beginTransaction()
|
||||
.replace(android.R.id.content, new SettingsFragment(), "settings_fragment")
|
||||
.commit();
|
||||
}
|
||||
|
||||
/**
|
||||
* If this is called, the user has left the settings screen (potentially through the
|
||||
* home button) and will expect their changes to be persisted. So we kick off an
|
||||
* IntentService which will do so on a background thread.
|
||||
*/
|
||||
@Override
|
||||
protected void onStop()
|
||||
{
|
||||
super.onStop();
|
||||
|
||||
Log.d("DolphinEmulator", "Settings activity stopping. Saving settings to INI...");
|
||||
|
||||
// Copy assets into appropriate locations.
|
||||
Intent settingsSaver = new Intent(this, SettingsSaveService.class);
|
||||
startService(settingsSaver);
|
||||
}
|
||||
}
|
||||
+197
@@ -0,0 +1,197 @@
|
||||
package org.dolphinemu.dolphinemu.fragments;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.preference.ListPreference;
|
||||
import android.preference.PreferenceFragment;
|
||||
import android.preference.PreferenceManager;
|
||||
|
||||
import org.dolphinemu.dolphinemu.R;
|
||||
import org.dolphinemu.dolphinemu.utils.EGLHelper;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.microedition.khronos.opengles.GL10;
|
||||
|
||||
public final class SettingsFragment extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener
|
||||
{
|
||||
private SharedPreferences mPreferences;
|
||||
private ListPreference mVideoBackendPreference;
|
||||
|
||||
private final EGLHelper mEglHelper = new EGLHelper(EGLHelper.EGL_OPENGL_ES2_BIT);
|
||||
private final String mVendor = mEglHelper.getGL().glGetString(GL10.GL_VENDOR);
|
||||
|
||||
private final String mVersion = mEglHelper.getGL().glGetString(GL10.GL_VERSION);
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState)
|
||||
{
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
// Load the preferences from an XML resource
|
||||
addPreferencesFromResource(R.xml.preferences);
|
||||
|
||||
// TODO Below here is effectively ported from the old VideoSettingsFragment. There is
|
||||
// TODO probably a simpler way to do this, but potentially could require UI discussion/feedback.
|
||||
|
||||
// Setting valid video backends.
|
||||
mVideoBackendPreference = (ListPreference) findPreference("gpuPref");
|
||||
final boolean deviceSupportsGL = mEglHelper.supportsOpenGL();
|
||||
final boolean deviceSupportsGLES3 = mEglHelper.supportsGLES3();
|
||||
|
||||
if (deviceSupportsGL)
|
||||
{
|
||||
mVideoBackendPreference.setEntries(R.array.videoBackendEntriesGL);
|
||||
mVideoBackendPreference.setEntryValues(R.array.videoBackendValuesGL);
|
||||
}
|
||||
else if (deviceSupportsGLES3)
|
||||
{
|
||||
mVideoBackendPreference.setEntries(R.array.videoBackendEntriesGLES3);
|
||||
mVideoBackendPreference.setEntryValues(R.array.videoBackendValuesGLES3);
|
||||
}
|
||||
else
|
||||
{
|
||||
mVideoBackendPreference.setEntries(R.array.videoBackendEntriesNoGLES3);
|
||||
mVideoBackendPreference.setEntryValues(R.array.videoBackendValuesNoGLES3);
|
||||
}
|
||||
|
||||
//
|
||||
// Set available post processing shaders
|
||||
//
|
||||
|
||||
List<CharSequence> shader_names = new ArrayList<CharSequence>();
|
||||
List<CharSequence> shader_values = new ArrayList<CharSequence>();
|
||||
|
||||
// Disabled option
|
||||
shader_names.add("Disabled");
|
||||
shader_values.add("");
|
||||
|
||||
// TODO Since shaders are included with the APK, we know what they are at build-time. We should
|
||||
// TODO be able to run this logic somehow at build-time and not rely on the device doing it.
|
||||
|
||||
File shaders_folder = new File(Environment.getExternalStorageDirectory() + File.separator + "dolphin-emu" + File.separator + "Shaders");
|
||||
if (shaders_folder.exists())
|
||||
{
|
||||
File[] shaders = shaders_folder.listFiles();
|
||||
for (File file : shaders)
|
||||
{
|
||||
if (file.isFile())
|
||||
{
|
||||
String filename = file.getName();
|
||||
if (filename.endsWith(".glsl"))
|
||||
{
|
||||
// Strip the extension and put it in to the list
|
||||
shader_names.add(filename.substring(0, filename.lastIndexOf('.')));
|
||||
shader_values.add(filename.substring(0, filename.lastIndexOf('.')));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final ListPreference shader_preference = (ListPreference) findPreference("postProcessingShader");
|
||||
shader_preference.setEntries(shader_names.toArray(new CharSequence[shader_names.size()]));
|
||||
shader_preference.setEntryValues(shader_values.toArray(new CharSequence[shader_values.size()]));
|
||||
|
||||
//
|
||||
// Disable all options if Software Rendering is used.
|
||||
//
|
||||
// Note that the numeric value in 'getPreference()'
|
||||
// denotes the placement on the UI. So if more elements are
|
||||
// added to the video settings, these may need to change.
|
||||
//
|
||||
mPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||
|
||||
if (mVideoBackendPreference.getValue().equals("Software Renderer"))
|
||||
{
|
||||
findPreference("enhancements").setEnabled(false);
|
||||
findPreference("hacks").setEnabled(false);
|
||||
findPreference("showFPS").setEnabled(false);
|
||||
}
|
||||
else if (mVideoBackendPreference.getValue().equals("OGL"))
|
||||
{
|
||||
findPreference("enhancements").setEnabled(true);
|
||||
findPreference("hacks").setEnabled(true);
|
||||
findPreference("showFPS").setEnabled(true);
|
||||
|
||||
// Check if we support stereo
|
||||
// If we support desktop GL then we must support at least OpenGL 3.2
|
||||
// If we only support OpenGLES then we need both OpenGLES 3.1 and AEP
|
||||
if ((mEglHelper.supportsOpenGL() && mEglHelper.GetVersion() >= 320) ||
|
||||
(mEglHelper.supportsGLES3() && mEglHelper.GetVersion() >= 310 && mEglHelper.SupportsExtension("GL_ANDROID_extension_pack_es31a")))
|
||||
findPreference("StereoscopyScreen").setEnabled(true);
|
||||
else
|
||||
findPreference("StereoscopyScreen").setEnabled(false);
|
||||
}
|
||||
|
||||
// Also set a listener, so that if someone changes the video backend, it will disable
|
||||
// the video settings, upon the user choosing "Software Rendering".
|
||||
mPreferences.registerOnSharedPreferenceChangeListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSharedPreferenceChanged(SharedPreferences preferences, String key)
|
||||
{
|
||||
if (key.equals("gpuPref"))
|
||||
{
|
||||
if (preferences.getString(key, "Software Renderer").equals("Software Renderer"))
|
||||
{
|
||||
findPreference("enhancements").setEnabled(false);
|
||||
findPreference("hacks").setEnabled(false);
|
||||
findPreference("showFPS").setEnabled(false);
|
||||
}
|
||||
else if (preferences.getString(key, "Software Renderer").equals("OGL"))
|
||||
{
|
||||
findPreference("enhancements").setEnabled(true);
|
||||
findPreference("hacks").setEnabled(true);
|
||||
findPreference("showFPS").setEnabled(true);
|
||||
|
||||
// Create an alert telling them that their phone sucks
|
||||
if (mEglHelper.supportsGLES3()
|
||||
&& mVendor.equals("Qualcomm")
|
||||
&& getQualcommVersion() == 14.0f)
|
||||
{
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
||||
builder.setTitle(R.string.device_compat_warning);
|
||||
builder.setMessage(R.string.device_gles3compat_warning_msg);
|
||||
builder.setPositiveButton(R.string.yes, null);
|
||||
builder.setNegativeButton(R.string.no, new DialogInterface.OnClickListener()
|
||||
{
|
||||
public void onClick(DialogInterface dialog, int which)
|
||||
{
|
||||
// Get an editor.
|
||||
SharedPreferences.Editor editor = mPreferences.edit();
|
||||
editor.putString("gpuPref", "Software Renderer");
|
||||
editor.apply();
|
||||
mVideoBackendPreference.setValue("Software Renderer");
|
||||
}
|
||||
});
|
||||
builder.show();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private float getQualcommVersion()
|
||||
{
|
||||
final int start = mVersion.indexOf("V@") + 2;
|
||||
final StringBuilder versionBuilder = new StringBuilder();
|
||||
|
||||
for (int i = start; i < mVersion.length(); i++)
|
||||
{
|
||||
char c = mVersion.charAt(i);
|
||||
|
||||
// End of numeric portion of version string.
|
||||
if (c == ' ')
|
||||
break;
|
||||
|
||||
versionBuilder.append(c);
|
||||
}
|
||||
|
||||
return Float.parseFloat(versionBuilder.toString());
|
||||
}
|
||||
}
|
||||
+1
-2
@@ -20,7 +20,6 @@ import android.os.Environment;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.support.v4.app.ActionBarDrawerToggle;
|
||||
import android.support.v4.widget.DrawerLayout;
|
||||
import android.util.Log;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
@@ -28,12 +27,12 @@ import android.view.View;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.ListView;
|
||||
|
||||
import org.dolphinemu.dolphinemu.AssetCopyService;
|
||||
import org.dolphinemu.dolphinemu.NativeLibrary;
|
||||
import org.dolphinemu.dolphinemu.R;
|
||||
import org.dolphinemu.dolphinemu.about.AboutActivity;
|
||||
import org.dolphinemu.dolphinemu.emulation.EmulationActivity;
|
||||
import org.dolphinemu.dolphinemu.folderbrowser.FolderBrowser;
|
||||
import org.dolphinemu.dolphinemu.services.AssetCopyService;
|
||||
import org.dolphinemu.dolphinemu.settings.PrefsActivity;
|
||||
import org.dolphinemu.dolphinemu.sidemenu.SideMenuAdapter;
|
||||
import org.dolphinemu.dolphinemu.sidemenu.SideMenuItem;
|
||||
|
||||
+2
-2
@@ -4,13 +4,13 @@
|
||||
* Refer to the license.txt file included.
|
||||
*/
|
||||
|
||||
package org.dolphinemu.dolphinemu;
|
||||
package org.dolphinemu.dolphinemu.services;
|
||||
|
||||
import android.app.IntentService;
|
||||
import android.content.Intent;
|
||||
import android.os.Environment;
|
||||
import android.util.Log;
|
||||
|
||||
import org.dolphinemu.dolphinemu.NativeLibrary;
|
||||
import org.dolphinemu.dolphinemu.settings.UserPreferences;
|
||||
|
||||
import java.io.File;
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
package org.dolphinemu.dolphinemu.services;
|
||||
|
||||
import android.app.IntentService;
|
||||
import android.content.Intent;
|
||||
import android.util.Log;
|
||||
|
||||
import org.dolphinemu.dolphinemu.settings.UserPreferences;
|
||||
|
||||
/**
|
||||
* IntentServices, unlike regular services, inherently run on a background thread.
|
||||
* This IntentService saves all the options the user set in the Java-based UI into
|
||||
* INI files the native code can read.
|
||||
*/
|
||||
public final class SettingsSaveService extends IntentService
|
||||
{
|
||||
private static final String TAG = "DolphinEmulator";
|
||||
|
||||
public SettingsSaveService()
|
||||
{
|
||||
super("SettingsSaveService");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onHandleIntent(Intent intent)
|
||||
{
|
||||
Log.v(TAG, "Saving settings to INI files...");
|
||||
UserPreferences.SavePrefsToIni(this);
|
||||
Log.v(TAG, "Save successful.");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/frame_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="@dimen/activity_horizontal_margin"
|
||||
android:layout_marginRight="@dimen/activity_horizontal_margin"
|
||||
tools:listitem="@layout/list_item_file"
|
||||
android:elevation="4dp"
|
||||
android:background="@android:color/white"/>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item
|
||||
android:id="@+id/clearGameList"
|
||||
android:title="@string/clear_game_list"
|
||||
android:id="@+id/menu_settings"
|
||||
android:title="@string/grid_menu_settings"
|
||||
android:showAsAction="never"/>
|
||||
</menu>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Example customization of dimensions originally defined in res/values/dimens.xml
|
||||
(such as screen margins) for screens with more than 1024dp of available width. -->
|
||||
<dimen name="activity_horizontal_margin">96dp</dimen>
|
||||
</resources>
|
||||
@@ -1,6 +1,5 @@
|
||||
<resources>
|
||||
<!-- Example customization of dimensions originally defined in res/values/dimens.xml
|
||||
(such as screen margins) for screens with more than 820dp of available width. This
|
||||
would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
|
||||
(such as screen margins) for screens with more than 820dp of available width. -->
|
||||
<dimen name="activity_horizontal_margin">64dp</dimen>
|
||||
</resources>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
<!-- All lists for ListPreference keys/values are placed here -->
|
||||
<resources>
|
||||
|
||||
|
||||
<!-- CPU core selection - X86_64 -->
|
||||
<string-array name="emuCoreEntriesX86_64" translatable="false">
|
||||
<item>@string/interpreter</item>
|
||||
@@ -42,7 +42,14 @@
|
||||
<string-array name="emuCoreValuesOther" translatable="false">
|
||||
<item>0</item>
|
||||
</string-array>
|
||||
|
||||
|
||||
<!-- New UI CPU Core selection - Default -->
|
||||
<string-array name="string_emu_cores" translatable="false">
|
||||
<item>@string/interpreter</item>
|
||||
</string-array>
|
||||
<string-array name="int_emu_cores" translatable="false">
|
||||
<item>0</item>
|
||||
</string-array>
|
||||
|
||||
<!-- Video Backend Selection - Supports OpenGL ES 3 -->
|
||||
<string-array name="videoBackendEntriesGLES3" translatable="false">
|
||||
|
||||
@@ -220,8 +220,20 @@
|
||||
<string name="disabled">Disabled</string>
|
||||
<string name="other">Other</string>
|
||||
|
||||
<!-- New UI Strings -->
|
||||
<string name="title_new_ui">Dolphin New UI</string>
|
||||
|
||||
|
||||
<!-- Game Grid Screen-->
|
||||
<string name="grid_menu_settings">Settings</string>
|
||||
|
||||
<!-- Add Directory Screen-->
|
||||
<string name="add_directory_title">Add Folder to Library</string>
|
||||
<string name="add_directory_up_one_level">Up one level</string>
|
||||
<string name="add_directory_empty_folder">That folder is empty.</string>
|
||||
|
||||
<!-- Preferences Screen -->
|
||||
<string name="preferences_cpu">CPU Settings</string>
|
||||
<string name="preferences_input">Input Settings</string>
|
||||
<string name="preferences_video">Video Settings</string>
|
||||
</resources>
|
||||
|
||||
@@ -9,6 +9,12 @@
|
||||
<item name="android:colorPrimaryDark">@color/dolphin_blue_dark</item>
|
||||
</style>
|
||||
|
||||
<!-- Same as above, but use default action bar, and mandate margins. -->
|
||||
<style name="DolphinSettingsBase" parent="android:Theme.Material.Light.DarkActionBar">
|
||||
<item name="android:colorPrimary">@color/dolphin_blue</item>
|
||||
<item name="android:colorPrimaryDark">@color/dolphin_blue_dark</item>
|
||||
</style>
|
||||
|
||||
<!-- Inherit from the Base Dolphin Theme-->
|
||||
<style name="DolphinWii" parent="DolphinBase">
|
||||
<!-- theme UI controls like checkboxes and text fields -->
|
||||
@@ -24,4 +30,20 @@
|
||||
<!-- theme UI controls like checkboxes and text fields -->
|
||||
<item name="android:colorAccent">@color/dolphin_accent_wiiware</item>
|
||||
</style>
|
||||
|
||||
<!-- Inherit from the Base Dolphin Settings Theme-->
|
||||
<style name="DolphinSettingsWii" parent="DolphinSettingsBase">
|
||||
<!-- theme UI controls like checkboxes and text fields -->
|
||||
<item name="android:colorAccent">@color/dolphin_accent_wii</item>
|
||||
</style>
|
||||
|
||||
<style name="DolphinSettingsGamecube" parent="DolphinSettingsBase">
|
||||
<!-- theme UI controls like checkboxes and text fields -->
|
||||
<item name="android:colorAccent">@color/dolphin_accent_gamecube</item>
|
||||
</style>
|
||||
|
||||
<style name="DolphinSettingsWiiware" parent="DolphinSettingsBase">
|
||||
<!-- theme UI controls like checkboxes and text fields -->
|
||||
<item name="android:colorAccent">@color/dolphin_accent_wiiware</item>
|
||||
</style>
|
||||
</resources>
|
||||
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user