summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2020-11-20 02:37:51 +0100
committerGitHub <noreply@github.com>2020-11-20 02:37:51 +0100
commit30bffca5c3a20ab7a8270c6be5939d74a37ca2d5 (patch)
treed4b8832e5b717384e7b8ec2fa3b844843100a774 /Source/Android/app/src/main/java
parent7f7fd4d8d3490558bac67ee835de7ca74139ba56 (diff)
parent3a119e1ec7d599e2a6677d1de3e154771f0aca11 (diff)
Merge pull request #9193 from JosJuice/android-clear-motioncontrolsenabled
Android: Re-add motionControlsEnabled to clearWiimoteNewIniLinkedPreferences
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java41
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryInitialization.java41
2 files changed, 51 insertions, 31 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java
index 08a36aecbf..4456dad6c6 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java
@@ -186,11 +186,30 @@ public final class EmulationActivity extends AppCompatActivity
sIgnoreLaunchRequests = false;
}
- public static void clearWiimoteNewIniLinkedPreferences(Context context)
+ public static void updateWiimoteNewIniPreferences(Context context)
{
- SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
- editor.remove("wiiController");
- editor.apply();
+ SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
+ updateWiimoteNewController(preferences.getInt("wiiController", 3), context);
+
+ updateWiimoteNewImuIr(IntSetting.MAIN_MOTION_CONTROLS.getIntGlobal());
+ }
+
+ private static void updateWiimoteNewController(int value, Context context)
+ {
+ File wiimoteNewFile = SettingsFile.getSettingsFile(Settings.FILE_WIIMOTE);
+ IniFile wiimoteNewIni = new IniFile(wiimoteNewFile);
+ wiimoteNewIni.setString("Wiimote1", "Extension",
+ context.getResources().getStringArray(R.array.controllersValues)[value]);
+ wiimoteNewIni.setBoolean("Wiimote1", "Options/Sideways Wiimote", value == 2);
+ wiimoteNewIni.save(wiimoteNewFile);
+ }
+
+ private static void updateWiimoteNewImuIr(int value)
+ {
+ File wiimoteNewFile = SettingsFile.getSettingsFile(Settings.FILE_WIIMOTE);
+ IniFile wiimoteNewIni = new IniFile(wiimoteNewFile);
+ wiimoteNewIni.setBoolean("Wiimote1", "IMUIR/Enabled", value != 1);
+ wiimoteNewIni.save(wiimoteNewFile);
}
@Override
@@ -847,13 +866,7 @@ public final class EmulationActivity extends AppCompatActivity
{
editor.putInt("wiiController", indexSelected);
- File wiimoteNewFile = SettingsFile.getSettingsFile(Settings.FILE_WIIMOTE);
- IniFile wiimoteNewIni = new IniFile(wiimoteNewFile);
- wiimoteNewIni.setString("Wiimote1", "Extension",
- getResources().getStringArray(R.array.controllersValues)[indexSelected]);
- wiimoteNewIni.setBoolean("Wiimote1", "Options/Sideways Wiimote", indexSelected == 2);
- wiimoteNewIni.save(wiimoteNewFile);
-
+ updateWiimoteNewController(indexSelected, this);
NativeLibrary.ReloadWiimoteConfig();
});
builder.setPositiveButton(R.string.ok, (dialogInterface, i) ->
@@ -877,11 +890,7 @@ public final class EmulationActivity extends AppCompatActivity
updateMotionListener();
- File wiimoteNewFile = SettingsFile.getSettingsFile(Settings.FILE_WIIMOTE);
- IniFile wiimoteNewIni = new IniFile(wiimoteNewFile);
- wiimoteNewIni.setBoolean("Wiimote1", "IMUIR/Enabled", indexSelected != 1);
- wiimoteNewIni.save(wiimoteNewFile);
-
+ updateWiimoteNewImuIr(indexSelected);
NativeLibrary.ReloadWiimoteConfig();
});
builder.setPositiveButton(R.string.ok, (dialogInterface, i) -> dialogInterface.dismiss());
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryInitialization.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryInitialization.java
index 4e293dfc4a..fc699a8838 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryInitialization.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryInitialization.java
@@ -70,10 +70,17 @@ public final class DirectoryInitialization
if (setDolphinUserDirectory(context))
{
initializeInternalStorage(context);
- initializeExternalStorage(context);
+ boolean wiimoteIniWritten = initializeExternalStorage(context);
NativeLibrary.Initialize();
NativeLibrary.ReportStartToAnalytics();
+ if (wiimoteIniWritten)
+ {
+ // This has to be done after calling NativeLibrary.Initialize(),
+ // as it relies on the config system
+ EmulationActivity.updateWiimoteNewIniPreferences(context);
+ }
+
directoryState = DirectoryInitializationState.DOLPHIN_DIRECTORIES_INITIALIZED;
}
else
@@ -137,7 +144,8 @@ public final class DirectoryInitialization
SetSysDirectory(sysDirectory.getPath());
}
- private static void initializeExternalStorage(Context context)
+ // Returns whether the WiimoteNew.ini file was written to
+ private static boolean initializeExternalStorage(Context context)
{
// Create User directory structure and copy some NAND files from the extracted Sys directory.
CreateUserDirectories();
@@ -159,21 +167,20 @@ public final class DirectoryInitialization
copyAsset("GCPadNew.ini", new File(configDirectory, "GCPadNew.ini"), true, context);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
- if (prefs.getInt("WiimoteNewVersion", 0) != WiimoteNewVersion)
+ boolean overwriteWiimoteIni = prefs.getInt("WiimoteNewVersion", 0) != WiimoteNewVersion;
+ boolean wiimoteIniWritten = copyAsset("WiimoteNew.ini",
+ new File(configDirectory, "WiimoteNew.ini"), overwriteWiimoteIni, context);
+ if (overwriteWiimoteIni)
{
- EmulationActivity.clearWiimoteNewIniLinkedPreferences(context);
- copyAsset("WiimoteNew.ini", new File(configDirectory, "WiimoteNew.ini"), true, context);
SharedPreferences.Editor sPrefsEditor = prefs.edit();
sPrefsEditor.putInt("WiimoteNewVersion", WiimoteNewVersion);
sPrefsEditor.apply();
}
- else
- {
- copyAsset("WiimoteNew.ini", new File(configDirectory, "WiimoteNew.ini"), false, context);
- }
copyAsset("WiimoteProfile.ini", new File(profileDirectory, "WiimoteProfile.ini"), true,
context);
+
+ return wiimoteIniWritten;
}
private static void deleteDirectoryRecursively(@NonNull final File file)
@@ -258,7 +265,7 @@ public final class DirectoryInitialization
LocalBroadcastManager.getInstance(context).sendBroadcast(localIntent);
}
- private static void copyAsset(String asset, File output, Boolean overwrite, Context context)
+ private static boolean copyAsset(String asset, File output, Boolean overwrite, Context context)
{
Log.verbose("[DirectoryInitialization] Copying File " + asset + " to " + output);
@@ -266,11 +273,14 @@ public final class DirectoryInitialization
{
if (!output.exists() || overwrite)
{
- InputStream in = context.getAssets().open(asset);
- OutputStream out = new FileOutputStream(output);
- copyFile(in, out);
- in.close();
- out.close();
+ try (InputStream in = context.getAssets().open(asset))
+ {
+ try (OutputStream out = new FileOutputStream(output))
+ {
+ copyFile(in, out);
+ return true;
+ }
+ }
}
}
catch (IOException e)
@@ -278,6 +288,7 @@ public final class DirectoryInitialization
Log.error("[DirectoryInitialization] Failed to copy asset file: " + asset +
e.getMessage());
}
+ return false;
}
private static void copyAssetFolder(String assetFolder, File outputFolder, Boolean overwrite,