diff --git a/android/phoenix/AndroidManifest.xml b/android/phoenix/AndroidManifest.xml index 12b4d1a2a3..9bd77e3de4 100644 --- a/android/phoenix/AndroidManifest.xml +++ b/android/phoenix/AndroidManifest.xml @@ -25,9 +25,6 @@ - - - diff --git a/android/phoenix/res/values/array.xml b/android/phoenix/res/values/array.xml index d25dc54553..e0909f36d0 100644 --- a/android/phoenix/res/values/array.xml +++ b/android/phoenix/res/values/array.xml @@ -1,40 +1,40 @@ - - Quit - Menu toggle + + @string/quit + @string/menu_toggle - + 0 1 - - 64ms (Low) - 96ms (Medium) - 128ms (Medium) - 160ms (High) + + @string/sixty_four_ms + @string/ninety_six_ms + @string/one_twenty_eight_ms + @string/one_sixty_ms - + 64 96 128 160 - - Full screen - Auto - Square pixel + + @string/fullscreen + @string/automatic + @string/square_pixel 4:3 16:9 16:10 8:7 - + full auto square @@ -44,21 +44,21 @@ 1.14286 - + Red Samurai iPega PG-9017 iPega PG-9017 (Mode 2) Gamestop Wireless - + 0 1 2 3 - + UNBOUND SOFT LEFT SOFT RIGHT diff --git a/android/phoenix/res/values/strings.xml b/android/phoenix/res/values/strings.xml index 530ed1c704..38280b232c 100644 --- a/android/phoenix/res/values/strings.xml +++ b/android/phoenix/res/values/strings.xml @@ -5,10 +5,209 @@ File type icon Select the button to use Unbind - Report IME Report Refresh Rate Detect Optimal device settings - Extracting assets, please wait ... + Extracting assets, please wait … + + RetroArch - Main Menu + TV Mode + Load Core + Load Game + Load Game (History) + Video Options + Audio Options + Input Options + Path Options + Settings + Help + About + + + Select Libretro core + + + Refresh rate calibration + Touch the screen with your fingers for more accurate measurements. + Refresh rate measured to: %1$s Hz. + + + Recently played games + Loading [%1$s]… + + + Current: %1$s + Press key to use + + + No core + Welcome to RetroArch + This is your first time starting up RetroArch. RetroArch will now be preconfigured for the best possible gameplay experience. + The ideal configuration options for your device will now be preconfigured.\n\nNOTE: For optimal performance, turn off Google Account sync, GPS and Wi-Fi in your Android settings menu. + The ideal configuration options for your device will now be preconfigured.\n\nNOTE: For optimal performance, turn off Google Account sync, Google Play Store auto-updates, GPS and Wi-Fi in your Android settings menu. + NVidia Shield detected + GameMID detected + OUYA detected + Xperia Play detected + Nexus 7 2013 detected + Device either not detected in list or doesn\'t have any optimal settings in our database. + Go to \'Load Core\' and select a core first. + Loading [%1$s]… + + + Using OS-reported refresh rate of: %1$s Hz. + + + + + Quit + Menu toggle + + + Audio + Enable audio + Dynamic rate control + Enable dynamic rate control (recommended). + Audio latency + Set the amount of desired audio latency. Your mileage may vary on the device you are using. + Automatically detect audio latency + Use automatic audio latency detection. Only available for Android 4.1 and up - your mileage may vary based on the device you are using. + 64ms (Low) + 96ms (Medium) + 128ms (Medium) + 160ms (High) + + + Back behavior + Select how you want the Back button to behave. + IME + Set Input Method + Sets IME to be used in-game. + Enable configuration autodetect + This will attempt to preconfigure various gamepads and/or IME apps that you connect. + List of autodetected devices + Configuration Autodetect - Supported Pads + iCade profile Pad 1 + Select the iCade profile to use for controller 1. + iCade profile Pad 2 + Select the iCade profile to use for controller 2. + iCade profile Pad 3 + Select the iCade profile to use for controller 3. + iCade profile Pad 4 + Select the iCade profile to use for controller 4. + Debug input reporting + This will report keycodes on-screen generated by your input device(s). Useful for debugging. + Touchscreen Overlay + Enable touchscreen overlays (WARNING: Lower-resolution overlays might be more suitable for less powerful devices). + Input overlay + Sets touchscreen overlay config. + Overlay opacity + Set the opacity of the touch overlay. + Custom Binds + Player 1 Custom Binds + Player 2 Custom Binds + Player 3 Custom Binds + Player 4 Custom Binds + Up Button + Down Button + Left Button + Right Button + A Button + B Button + X Button + Y Button + Start Button + Select Button + L1 Button + L2 Button + L3 Button + R1 Button + R2 Button + R3 Button + Diagnostics + Report IME + Reports the current IME (Input Method Editor) name. + + + ROM paths + ROM directory + Sets directory where ROM browser will first browse for ROM files. + Save files + Enable custom directory + Enables use of custom save file folder. (.srm) save files will be saved and loaded to configured directory. If not enabled, save files will reside in ROM folder. + Savefile directory + Sets directory where to save and load game save files. + Save states + Enables use of custom save state folder. (.state) save states will be saved and loaded to configured directory. If not enabled, save states will reside in ROM folder. + Save state directory + Sets directory where to save and load game save states. + System + Enables use of custom system folder. Cores will look for system specific files, like BIOSes, in this folder. If not enabled, it will look in the ROM folder. + System directory + Sets directory where system files are loaded from. + + + Configuration style + Global configuration + Enable global settings for all cores. Leave disabled if you want per-core settings. + Auto load state + Loads an automatically created savestate (*.state.auto) at startup. + Auto save state + Automatically saves state (*.state.auto) when exiting game. + Rewinding + Enable real-time rewinding of gameplay. (WARNING: Very CPU intensive - will decrease ingame performance by a lot - only use this option on a powerful device). + + + Full screen + Auto + Square pixel + VSync + When set to enabled, prevents screen tearing. + Auto-rotate + Will auto-rotate the screen for vertically oriented games. + Scale integer + Scales video only in whole steps of game resolution. Useful when playing without bilinear filtering. + Aspect ratio + Aspect ratio to enforce. + Synchronization + Threaded video driver + Uses a multi-threaded video driver. Is likely to improve performance at the expense of slightly more latency and jitter. Use this if you have troubles getting good video and audio. + Forced refresh rate (Hz) + Force a specific refresh rate to be detected. Only set manually if calibration reports wrong refresh rate. + Calibrate refresh rate + Attempts to find the true refresh rate of monitor. Updates value in \'Force refresh rate (Hz)\' option. To help ensure accuracy, make sure no intense background services are running, and avoid triggering screensaver. + Set OS-reported refresh rate + Sets refresh rate equal to OS-reported value. This might not be accurate for your device. + Shaders + Bilinear filter + Applies Bilinear filtering, smooths out edges (settings still apply even if no shader is selected). + First-pass shader + Enable first pass shader (WARNING: recommended system requirements for these shaders is a Tegra 4 / Exynos 5 class GPU and/or higher). + GLSL shader + Sets GLES2 style shader. + Fonts + On-screen fonts + Enable rendering of on-screen fonts for messages. + + + Websites + RetroArch/libretro homepage + The official homepage of the RetroArch/libretro project. + Manuals + RetroArch Guide (PDF) + The manual to RetroArch Android in PDF format. + Cores Guide (PDF) + The manual to most libretro cores in PDF format. + Development + Overlay Guide (PDF) + Explains howto make your own overlays. + + + OK + Close + General + Enable + + diff --git a/android/phoenix/res/xml/prefs.xml b/android/phoenix/res/xml/prefs.xml index 91a0b3c118..cd42cb86f2 100644 --- a/android/phoenix/res/xml/prefs.xml +++ b/android/phoenix/res/xml/prefs.xml @@ -1,482 +1,482 @@ + android:title="@string/mainmenu_title" > - + - + - + - + - - + + + android:summary="@string/vsync_desc" + android:title="@string/vsync" /> + android:summary="@string/auto_rotate_desc" + android:title="@string/auto_rotate" /> + android:summary="@string/scale_integer_desc" + android:title="@string/scale_integer" /> + android:summary="@string/aspect_ratio_desc" + android:title="@string/aspect_ratio" /> - + + android:summary="@string/threaded_video_driver_desc" + android:title="@string/threaded_video_driver" /> + android:summary="@string/forced_refresh_rate_desc" + android:title="@string/forced_refresh_rate" /> + android:summary="@string/calibrate_refresh_rate_desc" + android:title="@string/calibrate_refresh_rate" > + android:summary="@string/set_os_reported_refresh_rate_desc" + android:title="@string/set_os_reported_refresh_rate" > - + + android:summary="@string/bilinear_filter_desc" + android:title="@string/bilinear_filter" /> + android:title="@string/first_pass_shader" /> - - + - - + + + android:title="@string/enable_audio" /> - - + + + android:summary="@string/back_behavior_desc" + android:title="@string/back_behavior" /> - + + android:summary="@string/ime_method_desc" + android:title="@string/ime_method" > - + - - + + + android:summary="@string/icade_profile_pad_one_desc" + android:title="@string/icade_profile_pad_one" /> + android:summary="@string/icade_profile_pad_two_desc" + android:title="@string/icade_profile_pad_two" /> + android:summary="@string/icade_profile_pad_three_desc" + android:title="@string/icade_profile_pad_three" /> + android:summary="@string/icade_profile_pad_four_desc" + android:title="@string/icade_profile_pad_four" /> - + + android:summary="@string/debug_input_reporting_desc" + android:title="@string/enable" /> - + + android:summary="@string/touchscreen_overlay_desc" + android:title="@string/enable" /> - + + android:title="@string/up_button" /> + android:title="@string/down_button" /> + android:title="@string/left_button" /> + android:title="@string/right_button" /> + android:title="@string/a_button" /> + android:title="@string/b_button" /> + android:title="@string/x_button" /> + android:title="@string/y_button" /> + android:title="@string/start_button" /> + android:title="@string/select_button" /> + android:title="@string/l1_button" /> + android:title="@string/r1_button" /> + android:title="@string/l2_button" /> + android:title="@string/r2_button" /> + android:title="@string/l3_button" /> + android:title="@string/r3_button" /> + android:title="@string/up_button" /> + android:title="@string/down_button" /> + android:title="@string/left_button" /> + android:title="@string/right_button" /> + android:title="@string/a_button" /> + android:title="@string/b_button" /> + android:title="@string/x_button" /> + android:title="@string/y_button" /> + android:title="@string/start_button" /> + android:title="@string/select_button" /> + android:title="@string/l1_button" /> + android:title="@string/r1_button" /> + android:title="@string/l2_button" /> + android:title="@string/r2_button" /> + android:title="@string/l3_button" /> + android:title="@string/r3_button" /> + android:title="@string/up_button" /> + android:title="@string/down_button" /> + android:title="@string/left_button" /> + android:title="@string/right_button" /> + android:title="@string/a_button" /> + android:title="@string/b_button" /> + android:title="@string/x_button" /> + android:title="@string/y_button" /> + android:title="@string/start_button" /> + android:title="@string/select_button" /> + android:title="@string/l1_button" /> + android:title="@string/r1_button" /> + android:title="@string/l2_button" /> + android:title="@string/r2_button" /> + android:title="@string/l3_button" /> + android:title="@string/r3_button" /> + android:title="@string/up_button" /> + android:title="@string/down_button" /> + android:title="@string/left_button" /> + android:title="@string/right_button" /> + android:title="@string/a_button" /> + android:title="@string/b_button" /> + android:title="@string/x_button" /> + android:title="@string/y_button" /> + android:title="@string/start_button" /> + android:title="@string/select_button" /> + android:title="@string/l1_button" /> + android:title="@string/r1_button" /> + android:title="@string/l2_button" /> + android:title="@string/r2_button" /> + android:title="@string/l3_button" /> + android:title="@string/r3_button" /> - - + + - - - + + + - - + - - - + - - - + - - - + + + android:summary="@string/global_config_desc" + android:title="@string/global_config" /> - + + android:summary="@string/auto_load_state_desc" + android:title="@string/auto_load_state" /> + android:summary="@string/auto_save_state_desc" + android:title="@string/auto_save_state" /> - + + android:summary="@string/rewinding_desc" + android:title="@string/enable" /> - + - - - + + + - - + + - + - - + + diff --git a/android/phoenix/src/org/retroarch/browser/ConfigFile.java b/android/phoenix/src/org/retroarch/browser/ConfigFile.java index 2aec2b2859..7aed60a60a 100644 --- a/android/phoenix/src/org/retroarch/browser/ConfigFile.java +++ b/android/phoenix/src/org/retroarch/browser/ConfigFile.java @@ -10,7 +10,7 @@ import java.io.PrintWriter; import java.util.HashMap; import java.util.Map; -public class ConfigFile { +public final class ConfigFile { private HashMap map = new HashMap(); public void append(InputStream stream) throws IOException { diff --git a/android/phoenix/src/org/retroarch/browser/CoreSelection.java b/android/phoenix/src/org/retroarch/browser/CoreSelection.java index fb1d2ac3d4..0b4a8222be 100644 --- a/android/phoenix/src/org/retroarch/browser/CoreSelection.java +++ b/android/phoenix/src/org/retroarch/browser/CoreSelection.java @@ -13,7 +13,7 @@ import android.view.*; // JELLY_BEAN_MR1 = 17 -public class CoreSelection extends Activity implements +public final class CoreSelection extends Activity implements AdapterView.OnItemClickListener { private IconAdapter adapter; static private final String TAG = "CoreSelection"; @@ -41,7 +41,7 @@ public class CoreSelection extends Activity implements list.setAdapter(adapter); list.setOnItemClickListener(this); - setTitle("Select Libretro core"); + setTitle(R.string.select_libretro_core); // Populate the list final String modulePath = MainMenuActivity.getInstance() diff --git a/android/phoenix/src/org/retroarch/browser/DirectoryActivity.java b/android/phoenix/src/org/retroarch/browser/DirectoryActivity.java index 4ba900fe0a..86c2deab0d 100644 --- a/android/phoenix/src/org/retroarch/browser/DirectoryActivity.java +++ b/android/phoenix/src/org/retroarch/browser/DirectoryActivity.java @@ -22,14 +22,14 @@ public class DirectoryActivity extends Activity implements public String path; public boolean parentIsBack; - public BackStackItem(String aPath, boolean aParentIsBack) { - path = aPath; - parentIsBack = aParentIsBack; + public BackStackItem(String path, boolean parentIsBack) { + this.path = path; + this.parentIsBack = parentIsBack; } - private BackStackItem(Parcel aIn) { - path = aIn.readString(); - parentIsBack = aIn.readInt() != 0; + private BackStackItem(Parcel in) { + this.path = in.readString(); + this.parentIsBack = in.readInt() != 0; } public int describeContents() { @@ -87,7 +87,7 @@ public class DirectoryActivity extends Activity implements backStack = savedInstanceState.getParcelableArrayList("BACKSTACK"); } - if (backStack == null || backStack.size() == 0) { + if (backStack == null || backStack.isEmpty()) { backStack = new ArrayList(); String startPath = (startDirectory == null || startDirectory.isEmpty()) ? Environment .getExternalStorageDirectory().getPath() : startDirectory; @@ -112,7 +112,7 @@ public class DirectoryActivity extends Activity implements editor.commit(); } - Intent intent = new Intent(); + Intent intent = new Intent(); intent.putExtra("PATH", path); setResult(RESULT_OK, intent); finish(); diff --git a/android/phoenix/src/org/retroarch/browser/DisplayRefreshRateTest.java b/android/phoenix/src/org/retroarch/browser/DisplayRefreshRateTest.java index 22df6cedbd..9445ad6ced 100644 --- a/android/phoenix/src/org/retroarch/browser/DisplayRefreshRateTest.java +++ b/android/phoenix/src/org/retroarch/browser/DisplayRefreshRateTest.java @@ -3,6 +3,8 @@ package org.retroarch.browser; import javax.microedition.khronos.egl.EGLConfig; import javax.microedition.khronos.opengles.GL10; +import org.retroarch.R; + import android.app.Activity; import android.content.SharedPreferences; import android.opengl.GLES20; @@ -12,7 +14,7 @@ import android.util.Log; import android.view.WindowManager; import android.widget.Toast; -public class DisplayRefreshRateTest extends Activity { +public final class DisplayRefreshRateTest extends Activity { private class Renderer implements GLSurfaceView.Renderer { private static final String TAG = "GLESRenderer"; @@ -105,12 +107,12 @@ public class DisplayRefreshRateTest extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - Toast.makeText(this, "Touch the screen with your fingers for more accurate measurements.", Toast.LENGTH_LONG).show(); + Toast.makeText(this, R.string.touch_screen_with_fingers, Toast.LENGTH_LONG).show(); surfaceView = new GLSurfaceView(this); surfaceView.setEGLContextClientVersion(2); surfaceView.setRenderer(new Renderer(this)); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); - setTitle("Refresh rate calibration"); + setTitle(R.string.refresh_rate_calibration); setContentView(surfaceView); } @@ -118,7 +120,7 @@ public class DisplayRefreshRateTest extends Activity { protected void onDestroy() { SharedPreferences prefs = MainMenuActivity.getPreferences(); String fps = prefs.getString("video_refresh_rate", "ERROR"); - Toast.makeText(this, "Refresh rate measured to: " + fps + " Hz.", Toast.LENGTH_LONG).show(); + Toast.makeText(this, String.format(getString(R.string.refresh_rate_measured_to), fps), Toast.LENGTH_LONG).show(); super.onDestroy(); } } diff --git a/android/phoenix/src/org/retroarch/browser/FileWrapper.java b/android/phoenix/src/org/retroarch/browser/FileWrapper.java index afbd0fbd54..08584343eb 100644 --- a/android/phoenix/src/org/retroarch/browser/FileWrapper.java +++ b/android/phoenix/src/org/retroarch/browser/FileWrapper.java @@ -6,7 +6,7 @@ import org.retroarch.R; import android.graphics.drawable.Drawable; -class FileWrapper implements IconAdapterItem { +final class FileWrapper implements IconAdapterItem { public final File file; public final boolean parentItem; public final boolean dirSelectItem; diff --git a/android/phoenix/src/org/retroarch/browser/HelpActivity.java b/android/phoenix/src/org/retroarch/browser/HelpActivity.java index ea1e113b79..2248d92ce4 100644 --- a/android/phoenix/src/org/retroarch/browser/HelpActivity.java +++ b/android/phoenix/src/org/retroarch/browser/HelpActivity.java @@ -6,7 +6,7 @@ import android.os.Bundle; import android.preference.PreferenceActivity; import android.preference.PreferenceManager; -public class HelpActivity extends PreferenceActivity { +public final class HelpActivity extends PreferenceActivity { @SuppressWarnings("deprecation") @Override public void onCreate(Bundle savedInstanceState) { diff --git a/android/phoenix/src/org/retroarch/browser/HistorySelection.java b/android/phoenix/src/org/retroarch/browser/HistorySelection.java index f35b32c26d..47956dde55 100644 --- a/android/phoenix/src/org/retroarch/browser/HistorySelection.java +++ b/android/phoenix/src/org/retroarch/browser/HistorySelection.java @@ -17,7 +17,7 @@ import android.widget.AdapterView; import android.widget.ListView; import android.widget.Toast; -public class HistorySelection extends Activity implements +public final class HistorySelection extends Activity implements AdapterView.OnItemClickListener { private IconAdapter adapter; @@ -34,7 +34,7 @@ public class HistorySelection extends Activity implements list.setAdapter(adapter); list.setOnItemClickListener(this); - setTitle("Recently played games"); + setTitle(R.string.recently_played_games); File history = new File(getApplicationInfo().dataDir, "retroarch-history.txt"); @@ -71,8 +71,7 @@ public class HistorySelection extends Activity implements MainMenuActivity.getInstance().updateConfigFile(); - Toast.makeText(this, "Loading: [" + gamePath + "] ...", - Toast.LENGTH_SHORT).show(); + Toast.makeText(this, String.format(getString(R.string.loading_gamepath), gamePath), Toast.LENGTH_SHORT).show(); myIntent = new Intent(this, RetroActivity.class); myIntent.putExtra("ROM", gamePath); myIntent.putExtra("LIBRETRO", corePath); diff --git a/android/phoenix/src/org/retroarch/browser/HistoryWrapper.java b/android/phoenix/src/org/retroarch/browser/HistoryWrapper.java index ae57f1c149..977802398d 100644 --- a/android/phoenix/src/org/retroarch/browser/HistoryWrapper.java +++ b/android/phoenix/src/org/retroarch/browser/HistoryWrapper.java @@ -4,7 +4,7 @@ import java.io.File; import android.graphics.drawable.Drawable; -public class HistoryWrapper implements IconAdapterItem { +public final class HistoryWrapper implements IconAdapterItem { private String gamePath; private String gamePathShort; diff --git a/android/phoenix/src/org/retroarch/browser/IMEActivity.java b/android/phoenix/src/org/retroarch/browser/IMEActivity.java index cfe1f55cd4..5525f14720 100644 --- a/android/phoenix/src/org/retroarch/browser/IMEActivity.java +++ b/android/phoenix/src/org/retroarch/browser/IMEActivity.java @@ -5,7 +5,7 @@ import android.content.Context; import android.os.Bundle; import android.view.inputmethod.InputMethodManager; -public class IMEActivity extends Activity { +public final class IMEActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/android/phoenix/src/org/retroarch/browser/IconAdapter.java b/android/phoenix/src/org/retroarch/browser/IconAdapter.java index 5d1a2c9f64..c70f0f9e22 100644 --- a/android/phoenix/src/org/retroarch/browser/IconAdapter.java +++ b/android/phoenix/src/org/retroarch/browser/IconAdapter.java @@ -16,7 +16,7 @@ interface IconAdapterItem { public abstract Drawable getIconDrawable(); } -class IconAdapter extends ArrayAdapter { +final class IconAdapter extends ArrayAdapter { private final int layout; public IconAdapter(Activity aContext, int aLayout) { diff --git a/android/phoenix/src/org/retroarch/browser/KeyBindPreference.java b/android/phoenix/src/org/retroarch/browser/KeyBindPreference.java index a50efc226a..d676656725 100644 --- a/android/phoenix/src/org/retroarch/browser/KeyBindPreference.java +++ b/android/phoenix/src/org/retroarch/browser/KeyBindPreference.java @@ -14,7 +14,7 @@ import android.widget.EditText; import android.widget.ListView; import org.retroarch.R; -class KeyBindEditText extends EditText +final class KeyBindEditText extends EditText { KeyBindPreference pref; public KeyBindEditText(Context context, AttributeSet attrs) { @@ -39,15 +39,17 @@ class KeyBindEditText extends EditText } } -class KeyBindPreference extends DialogPreference implements View.OnKeyListener, AdapterView.OnItemClickListener, LayoutInflater.Factory { +final class KeyBindPreference extends DialogPreference implements View.OnKeyListener, AdapterView.OnItemClickListener, LayoutInflater.Factory { private int key_bind_code; private boolean grabKeyCode = false; KeyBindEditText keyText; private String[] key_labels; private final int DEFAULT_KEYCODE = 0; + private final Context context; public KeyBindPreference(Context context, AttributeSet attrs) { super(context, attrs); + this.context = context; key_labels = getContext().getResources().getStringArray(R.array.key_bind_values); } @@ -57,7 +59,7 @@ class KeyBindPreference extends DialogPreference implements View.OnKeyListener, { grabKeyCode = false; key_bind_code = keyCode; - keyText.setText("Current: " + key_labels[key_bind_code]); + keyText.setText(String.format(context.getString(R.string.current_binding), key_labels[key_bind_code])); } } @@ -84,7 +86,7 @@ class KeyBindPreference extends DialogPreference implements View.OnKeyListener, ((Button) view.findViewById(R.id.key_bind_detect)).setOnClickListener(new View.OnClickListener() { public void onClick(View v) { grabKeyCode = true; - keyText.setText("Press key to use"); + keyText.setText(R.string.press_key_to_use); keyText.requestFocus(); } }); diff --git a/android/phoenix/src/org/retroarch/browser/MainMenuActivity.java b/android/phoenix/src/org/retroarch/browser/MainMenuActivity.java index 679fae917d..3fbddc8007 100644 --- a/android/phoenix/src/org/retroarch/browser/MainMenuActivity.java +++ b/android/phoenix/src/org/retroarch/browser/MainMenuActivity.java @@ -28,7 +28,7 @@ import android.view.Display; import android.view.WindowManager; import android.widget.Toast; -public class MainMenuActivity extends PreferenceActivity { +public final class MainMenuActivity extends PreferenceActivity { private static MainMenuActivity instance = null; static private final int ACTIVITY_LOAD_ROM = 0; static private final String TAG = "MainMenu"; @@ -80,7 +80,7 @@ public class MainMenuActivity extends PreferenceActivity { SharedPreferences prefs = getPreferences(); libretro_path = prefs.getString("libretro_path", getApplicationInfo().nativeLibraryDir); - libretro_name = prefs.getString("libretro_name", "No core"); + libretro_name = prefs.getString("libretro_name", getString(R.string.no_core)); refreshPreferenceScreen(); @@ -94,9 +94,8 @@ public class MainMenuActivity extends PreferenceActivity { if (!detectDevice(false)) { AlertDialog.Builder alert = new AlertDialog.Builder(this) - .setTitle("Welcome to RetroArch") - .setMessage( - "This is your first time starting up RetroArch. RetroArch will now be preconfigured for the best possible gameplay experience.") + .setTitle(R.string.welcome_to_retroarch) + .setMessage(R.string.welcome_to_retroarch_desc) .setPositiveButton("OK", null); alert.show(); } @@ -360,7 +359,7 @@ public class MainMenuActivity extends PreferenceActivity { // Refactor this entire mess and make this usable for per-core config if (android.os.Build.VERSION.SDK_INT >= 17 && - prefs.getBoolean("audio_latency_auto", true) == true) { + prefs.getBoolean("audio_latency_auto", true)) { int buffersize = getLowLatencyBufferSize(); boolean lowLatency = hasLowLatencyAudio(); @@ -475,11 +474,11 @@ public class MainMenuActivity extends PreferenceActivity { .getApplicationInfo().dataDir + "/retroarch-history.txt"); for (int i = 1; i <= 4; i++) { - final String btns[] = { "up", "down", "left", "right", "a", "b", + final String[] btns = { "up", "down", "left", "right", "a", "b", "x", "y", "start", "select", "l", "r", "l2", "r2", "l3", "r3" }; for (String b : btns) { - String p = "input_player" + String.valueOf(i) + "_" + b + String p = "input_player" + i + "_" + b + "_btn"; config.setInt(p, prefs.getInt(p, 0)); } @@ -493,8 +492,7 @@ public class MainMenuActivity extends PreferenceActivity { } private byte[] loadAsset(String asset) throws IOException { - String path = asset; - InputStream stream = getAssets().open(path); + InputStream stream = getAssets().open(asset); int len = stream.available(); byte[] buf = new byte[len]; stream.read(buf, 0, len); @@ -544,8 +542,7 @@ public class MainMenuActivity extends PreferenceActivity { try { String dataDir = getApplicationInfo().dataDir; File cacheVersion = new File(dataDir, ".cacheversion"); - if (cacheVersion != null && cacheVersion.isFile() - && cacheVersion.canRead() && cacheVersion.canWrite()) { + if (cacheVersion.isFile() && cacheVersion.canRead() && cacheVersion.canWrite()) { DataInputStream cacheStream = new DataInputStream( new FileInputStream(cacheVersion)); @@ -655,31 +652,23 @@ public class MainMenuActivity extends PreferenceActivity { boolean detectDevice(boolean show_dialog) { boolean retval = false; - boolean mentionPlayStore = !android.os.Build.MODEL - .equals("OUYA Console"); - final String message = "The ideal configuration options for your device will now be preconfigured.\n\nNOTE: For optimal performance, turn off Google Account sync, " - + (mentionPlayStore ? "Google Play Store auto-updates, " : "") - + "GPS and Wi-Fi in your Android settings menu."; + final boolean mentionPlayStore = !android.os.Build.MODEL.equals("OUYA Console"); + final String message = (mentionPlayStore ? getString(R.string.detect_device_msg_general) : getString(R.string.detect_device_msg_ouya)); Log.i("Device MODEL", android.os.Build.MODEL); if (android.os.Build.MODEL.equals("SHIELD")) { AlertDialog.Builder alert = new AlertDialog.Builder(this) - .setTitle("NVidia Shield detected") + .setTitle(R.string.nvidia_shield_detected) .setMessage(message) - .setPositiveButton("OK", + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { @Override - public void onClick(DialogInterface dialog, - int which) { + public void onClick(DialogInterface dialog, int which) { SharedPreferences prefs = getPreferences(); - SharedPreferences.Editor edit = prefs - .edit(); - edit.putString("video_refresh_rate", Double - .valueOf(60.00d).toString()); - edit.putBoolean("input_overlay_enable", - false); - edit.putBoolean("input_autodetect_enable", - true); + SharedPreferences.Editor edit = prefs.edit(); + edit.putString("video_refresh_rate", Double.toString(60.00d)); + edit.putBoolean("input_overlay_enable", false); + edit.putBoolean("input_autodetect_enable", true); edit.putString("audio_latency", "64"); edit.putBoolean("audio_latency_auto", true); edit.commit(); @@ -689,20 +678,16 @@ public class MainMenuActivity extends PreferenceActivity { retval = true; } else if (android.os.Build.MODEL.equals("GAMEMID_BT")) { AlertDialog.Builder alert = new AlertDialog.Builder(this) - .setTitle("GameMID detected") + .setTitle(R.string.game_mid_detected) .setMessage(message) - .setPositiveButton("OK", + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { @Override - public void onClick(DialogInterface dialog, - int which) { + public void onClick(DialogInterface dialog, int which) { SharedPreferences prefs = getPreferences(); - SharedPreferences.Editor edit = prefs - .edit(); - edit.putBoolean("input_overlay_enable", - false); - edit.putBoolean("input_autodetect_enable", - true); + SharedPreferences.Editor edit = prefs.edit(); + edit.putBoolean("input_overlay_enable", false); + edit.putBoolean("input_autodetect_enable", true); edit.putString("audio_latency", "160"); edit.putBoolean("audio_latency_auto", false); edit.commit(); @@ -712,20 +697,16 @@ public class MainMenuActivity extends PreferenceActivity { retval = true; } else if (android.os.Build.MODEL.equals("OUYA Console")) { AlertDialog.Builder alert = new AlertDialog.Builder(this) - .setTitle("OUYA detected") + .setTitle(R.string.ouya_detected) .setMessage(message) - .setPositiveButton("OK", + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { @Override - public void onClick(DialogInterface dialog, - int which) { + public void onClick(DialogInterface dialog, int which) { SharedPreferences prefs = getPreferences(); - SharedPreferences.Editor edit = prefs - .edit(); - edit.putBoolean("input_overlay_enable", - false); - edit.putBoolean("input_autodetect_enable", - true); + SharedPreferences.Editor edit = prefs.edit(); + edit.putBoolean("input_overlay_enable", false); + edit.putBoolean("input_autodetect_enable", true); edit.putString("audio_latency", "64"); edit.putBoolean("audio_latency_auto", true); edit.commit(); @@ -735,23 +716,18 @@ public class MainMenuActivity extends PreferenceActivity { retval = true; } else if (android.os.Build.MODEL.equals("R800x")) { AlertDialog.Builder alert = new AlertDialog.Builder(this) - .setTitle("Xperia Play detected") + .setTitle(R.string.xperia_play_detected) .setMessage(message) - .setPositiveButton("OK", + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { @Override - public void onClick(DialogInterface dialog, - int which) { + public void onClick(DialogInterface dialog, int which) { SharedPreferences prefs = getPreferences(); - SharedPreferences.Editor edit = prefs - .edit(); + SharedPreferences.Editor edit = prefs.edit(); edit.putBoolean("video_threaded", false); - edit.putBoolean("input_overlay_enable", - false); - edit.putBoolean("input_autodetect_enable", - true); - edit.putString("video_refresh_rate", Double - .valueOf(59.19132938771038).toString()); + edit.putBoolean("input_overlay_enable", false); + edit.putBoolean("input_autodetect_enable", true); + edit.putString("video_refresh_rate", Double.toString(59.19132938771038)); edit.putString("audio_latency", "128"); edit.putBoolean("audio_latency_auto", false); edit.commit(); @@ -761,18 +737,15 @@ public class MainMenuActivity extends PreferenceActivity { retval = true; } else if (android.os.Build.ID.equals("JSS15J")) { AlertDialog.Builder alert = new AlertDialog.Builder(this) - .setTitle("Nexus 7 2013 detected") + .setTitle(R.string.nexus_7_2013_detected) .setMessage(message) - .setPositiveButton("OK", + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { @Override - public void onClick(DialogInterface dialog, - int which) { + public void onClick(DialogInterface dialog, int which) { SharedPreferences prefs = getPreferences(); - SharedPreferences.Editor edit = prefs - .edit(); - edit.putString("video_refresh_rate", Double - .valueOf(59.65).toString()); + SharedPreferences.Editor edit = prefs.edit(); + edit.putString("video_refresh_rate", Double.toString(59.65)); edit.putString("audio_latency", "64"); edit.putBoolean("audio_latency_auto", false); edit.commit(); @@ -783,10 +756,7 @@ public class MainMenuActivity extends PreferenceActivity { } if (show_dialog) { - Toast.makeText( - this, - "Device either not detected in list or doesn't have any optimal settings in our database.", - Toast.LENGTH_SHORT).show(); + Toast.makeText(this, R.string.no_optimal_settings, Toast.LENGTH_SHORT).show(); } refreshPreferenceScreen(); @@ -803,12 +773,10 @@ public class MainMenuActivity extends PreferenceActivity { public void startActivity(Intent intent) { if (intent.getComponent().getClassName() .equals("org.retroarch.browser.ROMActivity")) { - if (new File(libretro_path).isDirectory() == false) { + if (!new File(libretro_path).isDirectory()) { super.startActivityForResult(intent, ACTIVITY_LOAD_ROM); } else { - Toast.makeText(this, - "Go to 'Load Core' and select a core first.", - Toast.LENGTH_SHORT).show(); + Toast.makeText(this, R.string.load_a_core_first, Toast.LENGTH_SHORT).show(); } } else { super.startActivity(intent); @@ -821,18 +789,12 @@ public class MainMenuActivity extends PreferenceActivity { case ACTIVITY_LOAD_ROM: { if (data.getStringExtra("PATH") != null) { updateConfigFile(); - Intent myIntent; - String current_ime = Settings.Secure.getString( - getContentResolver(), - Settings.Secure.DEFAULT_INPUT_METHOD); - Toast.makeText(this, - "Loading: [" + data.getStringExtra("PATH") + "]...", - Toast.LENGTH_SHORT).show(); - myIntent = new Intent(this, RetroActivity.class); + String current_ime = Settings.Secure.getString(getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD); + Toast.makeText(this,String.format(getString(R.string.loading_data), data.getStringExtra("PATH")), Toast.LENGTH_SHORT).show(); + Intent myIntent = new Intent(this, RetroActivity.class); myIntent.putExtra("ROM", data.getStringExtra("PATH")); myIntent.putExtra("LIBRETRO", libretro_path); - myIntent.putExtra("CONFIGFILE", - getDefaultConfigPath()); + myIntent.putExtra("CONFIGFILE", getDefaultConfigPath()); myIntent.putExtra("IME", current_ime); startActivity(myIntent); } @@ -850,10 +812,8 @@ public class MainMenuActivity extends PreferenceActivity { private void loadRomExternal(String rom, String core) { updateConfigFile(); Intent myIntent = new Intent(this, RetroActivity.class); - String current_ime = Settings.Secure.getString(getContentResolver(), - Settings.Secure.DEFAULT_INPUT_METHOD); - Toast.makeText(this, "Loading: [" + rom + "]...", Toast.LENGTH_SHORT) - .show(); + String current_ime = Settings.Secure.getString(getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD); + Toast.makeText(this, String.format(getString(R.string.loading_data), rom), Toast.LENGTH_SHORT).show(); myIntent.putExtra("ROM", rom); myIntent.putExtra("LIBRETRO", core); myIntent.putExtra("CONFIGFILE", getDefaultConfigPath()); diff --git a/android/phoenix/src/org/retroarch/browser/ModuleWrapper.java b/android/phoenix/src/org/retroarch/browser/ModuleWrapper.java index f029edb0cc..d5add3ad4d 100644 --- a/android/phoenix/src/org/retroarch/browser/ModuleWrapper.java +++ b/android/phoenix/src/org/retroarch/browser/ModuleWrapper.java @@ -6,12 +6,12 @@ import java.io.IOException; import android.content.Context; import android.graphics.drawable.Drawable; -class ModuleWrapper implements IconAdapterItem { +final class ModuleWrapper implements IconAdapterItem { public final File file; - private ConfigFile config; + private final ConfigFile config; - public ModuleWrapper(Context aContext, File aFile, ConfigFile config) throws IOException { - file = aFile; + public ModuleWrapper(Context context, File file, ConfigFile config) throws IOException { + this.file = file; this.config = config; } diff --git a/android/phoenix/src/org/retroarch/browser/OverlayActivity.java b/android/phoenix/src/org/retroarch/browser/OverlayActivity.java index 38981f6b87..f78f2abf80 100644 --- a/android/phoenix/src/org/retroarch/browser/OverlayActivity.java +++ b/android/phoenix/src/org/retroarch/browser/OverlayActivity.java @@ -4,7 +4,7 @@ import java.io.File; import android.os.Bundle; -public class OverlayActivity extends DirectoryActivity { +public final class OverlayActivity extends DirectoryActivity { @Override public void onCreate(Bundle savedInstanceState) { File overlayDir = new File(getBaseContext().getApplicationInfo().dataDir, "overlays"); diff --git a/android/phoenix/src/org/retroarch/browser/ROMActivity.java b/android/phoenix/src/org/retroarch/browser/ROMActivity.java index 27a9e084b2..c969ab34f5 100644 --- a/android/phoenix/src/org/retroarch/browser/ROMActivity.java +++ b/android/phoenix/src/org/retroarch/browser/ROMActivity.java @@ -5,7 +5,7 @@ import java.io.File; import android.content.SharedPreferences; import android.os.Bundle; -public class ROMActivity extends DirectoryActivity { +public final class ROMActivity extends DirectoryActivity { @Override public void onCreate(Bundle savedInstanceState) { diff --git a/android/phoenix/src/org/retroarch/browser/ROMDirActivity.java b/android/phoenix/src/org/retroarch/browser/ROMDirActivity.java index c29dfc9722..5664cdde64 100644 --- a/android/phoenix/src/org/retroarch/browser/ROMDirActivity.java +++ b/android/phoenix/src/org/retroarch/browser/ROMDirActivity.java @@ -2,7 +2,7 @@ package org.retroarch.browser; import android.os.Bundle; -public class ROMDirActivity extends DirectoryActivity { +public final class ROMDirActivity extends DirectoryActivity { @Override public void onCreate(Bundle savedInstanceState) { super.setPathSettingKey("rgui_browser_directory"); diff --git a/android/phoenix/src/org/retroarch/browser/RefreshRateSetOS.java b/android/phoenix/src/org/retroarch/browser/RefreshRateSetOS.java index cbef30d588..a7ef52749d 100644 --- a/android/phoenix/src/org/retroarch/browser/RefreshRateSetOS.java +++ b/android/phoenix/src/org/retroarch/browser/RefreshRateSetOS.java @@ -1,5 +1,7 @@ package org.retroarch.browser; +import org.retroarch.R; + import android.app.Activity; import android.content.Context; import android.content.SharedPreferences; @@ -8,7 +10,7 @@ import android.view.Display; import android.view.WindowManager; import android.widget.Toast; -public class RefreshRateSetOS extends Activity { +public final class RefreshRateSetOS extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { @@ -22,7 +24,7 @@ public class RefreshRateSetOS extends Activity { edit.putString("video_refresh_rate", Double.valueOf(rate).toString()); edit.commit(); - Toast.makeText(this, "Using OS-reported refresh rate of: " + rate + " Hz.", Toast.LENGTH_LONG).show(); + Toast.makeText(this, String.format(getString(R.string.using_os_reported_refresh_rate), rate), Toast.LENGTH_LONG).show(); finish(); } } diff --git a/android/phoenix/src/org/retroarch/browser/ReportIME.java b/android/phoenix/src/org/retroarch/browser/ReportIME.java index c8f5d463b4..02c578c6b6 100644 --- a/android/phoenix/src/org/retroarch/browser/ReportIME.java +++ b/android/phoenix/src/org/retroarch/browser/ReportIME.java @@ -1,12 +1,14 @@ package org.retroarch.browser; +import org.retroarch.R; + import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.provider.Settings; -public class ReportIME extends Activity { +public final class ReportIME extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -16,7 +18,7 @@ public class ReportIME extends Activity { final Activity ctx = this; AlertDialog.Builder dialog = new AlertDialog.Builder(this) .setMessage(current_ime) - .setNeutralButton("Close", + .setNeutralButton(R.string.close, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, diff --git a/android/phoenix/src/org/retroarch/browser/RetroActivity.java b/android/phoenix/src/org/retroarch/browser/RetroActivity.java index 8a666d8e5c..deef2a5b27 100644 --- a/android/phoenix/src/org/retroarch/browser/RetroActivity.java +++ b/android/phoenix/src/org/retroarch/browser/RetroActivity.java @@ -4,10 +4,7 @@ import android.app.NativeActivity; import android.os.Bundle; import android.widget.Toast; -public class RetroActivity extends NativeActivity { - public RetroActivity() { - super(); - } +public final class RetroActivity extends NativeActivity { @Override public void onCreate(Bundle savedInstance) { diff --git a/android/phoenix/src/org/retroarch/browser/RetroTVMode.java b/android/phoenix/src/org/retroarch/browser/RetroTVMode.java index 60e84b9998..ea4889b386 100644 --- a/android/phoenix/src/org/retroarch/browser/RetroTVMode.java +++ b/android/phoenix/src/org/retroarch/browser/RetroTVMode.java @@ -5,7 +5,7 @@ import android.content.Intent; import android.os.Bundle; import android.provider.Settings; -public class RetroTVMode extends Activity { +public final class RetroTVMode extends Activity { @Override public void onCreate(Bundle savedInstanceState) { diff --git a/android/phoenix/src/org/retroarch/browser/SRMDirActivity.java b/android/phoenix/src/org/retroarch/browser/SRMDirActivity.java index 65c62efcdb..d56130309d 100644 --- a/android/phoenix/src/org/retroarch/browser/SRMDirActivity.java +++ b/android/phoenix/src/org/retroarch/browser/SRMDirActivity.java @@ -2,7 +2,7 @@ package org.retroarch.browser; import android.os.Bundle; -public class SRMDirActivity extends DirectoryActivity { +public final class SRMDirActivity extends DirectoryActivity { @Override public void onCreate(Bundle savedInstanceState) { super.setPathSettingKey("savefile_directory"); diff --git a/android/phoenix/src/org/retroarch/browser/SeekbarPreference.java b/android/phoenix/src/org/retroarch/browser/SeekbarPreference.java index ee90a5dcd7..a41f3e5d9c 100644 --- a/android/phoenix/src/org/retroarch/browser/SeekbarPreference.java +++ b/android/phoenix/src/org/retroarch/browser/SeekbarPreference.java @@ -10,7 +10,7 @@ import android.view.View; import android.widget.SeekBar; import android.widget.TextView; -public class SeekbarPreference extends DialogPreference implements SeekBar.OnSeekBarChangeListener { +public final class SeekbarPreference extends DialogPreference implements SeekBar.OnSeekBarChangeListener { float seek_value; SeekBar bar; TextView text; @@ -29,7 +29,7 @@ public class SeekbarPreference extends DialogPreference implements SeekBar.OnSee seek_value = getPersistedFloat(1.0f); int prog = (int) (seek_value * 100); bar.setProgress(prog); - text.setText(String.valueOf(prog) + "%"); + text.setText(prog + "%"); bar.setOnSeekBarChangeListener(this); return view; } @@ -46,7 +46,7 @@ public class SeekbarPreference extends DialogPreference implements SeekBar.OnSee @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { seek_value = (float) progress / 100.0f; - text.setText(String.valueOf((int)(seek_value * 100)) + "%"); + text.setText((int) (seek_value * 100) + "%"); } @Override diff --git a/android/phoenix/src/org/retroarch/browser/ShaderActivity.java b/android/phoenix/src/org/retroarch/browser/ShaderActivity.java index 3fb705de94..4bf0bd92c1 100644 --- a/android/phoenix/src/org/retroarch/browser/ShaderActivity.java +++ b/android/phoenix/src/org/retroarch/browser/ShaderActivity.java @@ -4,7 +4,7 @@ import java.io.File; import android.os.Bundle; -public class ShaderActivity extends DirectoryActivity { +public final class ShaderActivity extends DirectoryActivity { @Override public void onCreate(Bundle savedInstanceState) { File shaderDir = new File(getBaseContext().getApplicationInfo().dataDir, "shaders_glsl"); diff --git a/android/phoenix/src/org/retroarch/browser/StateDirActivity.java b/android/phoenix/src/org/retroarch/browser/StateDirActivity.java index 2f28a4cdcb..a43845ea69 100644 --- a/android/phoenix/src/org/retroarch/browser/StateDirActivity.java +++ b/android/phoenix/src/org/retroarch/browser/StateDirActivity.java @@ -2,7 +2,7 @@ package org.retroarch.browser; import android.os.Bundle; -public class StateDirActivity extends DirectoryActivity { +public final class StateDirActivity extends DirectoryActivity { @Override public void onCreate(Bundle savedInstanceState) { super.setPathSettingKey("savestate_directory"); diff --git a/android/phoenix/src/org/retroarch/browser/SystemDirActivity.java b/android/phoenix/src/org/retroarch/browser/SystemDirActivity.java index 1a2be43477..b483de0a1d 100644 --- a/android/phoenix/src/org/retroarch/browser/SystemDirActivity.java +++ b/android/phoenix/src/org/retroarch/browser/SystemDirActivity.java @@ -2,7 +2,7 @@ package org.retroarch.browser; import android.os.Bundle; -public class SystemDirActivity extends DirectoryActivity { +public final class SystemDirActivity extends DirectoryActivity { @Override public void onCreate(Bundle savedInstanceState) { super.setPathSettingKey("system_directory");