summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorJMC47 <JMC4789@gmail.com>2022-07-23 07:59:19 -0400
committerGitHub <noreply@github.com>2022-07-23 07:59:19 -0400
commit3d7b66bcfc08381400d3259d49943919733bf85b (patch)
treebbf125fd88f7b108a2bf62e18d417200fe746443 /Source/Android/app/src/main/java
parentfdecd56ec751f4d8de88b5ef50dd48a9bd069160 (diff)
parenta20d0e31d6ea8b1cb272a4721fefed62eda03bcb (diff)
Merge pull request #10861 from JosJuice/android-new-sd
Android: Bring SD card settings up to date with DolphinQt
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java30
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java2
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/StringSetting.java5
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java32
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/WiiUtils.java4
5 files changed, 60 insertions, 13 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 c320106f2f..2f4e465c11 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
@@ -187,29 +187,39 @@ public final class EmulationActivity extends AppCompatActivity
{
new AfterDirectoryInitializationRunner().runWithLifecycle(activity, true, () ->
{
- if (FileBrowserHelper.isPathEmptyOrValid(StringSetting.MAIN_DEFAULT_ISO) &&
- FileBrowserHelper.isPathEmptyOrValid(StringSetting.MAIN_FS_PATH) &&
- FileBrowserHelper.isPathEmptyOrValid(StringSetting.MAIN_DUMP_PATH) &&
- FileBrowserHelper.isPathEmptyOrValid(StringSetting.MAIN_LOAD_PATH) &&
- FileBrowserHelper.isPathEmptyOrValid(StringSetting.MAIN_RESOURCEPACK_PATH) &&
- FileBrowserHelper.isPathEmptyOrValid(StringSetting.MAIN_SD_PATH))
+ if (!FileBrowserHelper.isPathEmptyOrValid(StringSetting.MAIN_DEFAULT_ISO) ||
+ !FileBrowserHelper.isPathEmptyOrValid(StringSetting.MAIN_FS_PATH) ||
+ !FileBrowserHelper.isPathEmptyOrValid(StringSetting.MAIN_DUMP_PATH) ||
+ !FileBrowserHelper.isPathEmptyOrValid(StringSetting.MAIN_LOAD_PATH) ||
+ !FileBrowserHelper.isPathEmptyOrValid(StringSetting.MAIN_RESOURCEPACK_PATH))
{
- continueCallback.run();
+ AlertDialog.Builder builder = new AlertDialog.Builder(activity);
+ builder.setMessage(R.string.unavailable_paths);
+ builder.setPositiveButton(R.string.yes, (dialogInterface, i) ->
+ SettingsActivity.launch(activity, MenuTag.CONFIG_PATHS));
+ builder.setNeutralButton(R.string.continue_anyway, (dialogInterface, i) ->
+ continueCallback.run());
+ builder.show();
}
- else
+ else if (!FileBrowserHelper.isPathEmptyOrValid(StringSetting.MAIN_WII_SD_CARD_IMAGE_PATH) ||
+ !FileBrowserHelper.isPathEmptyOrValid(
+ StringSetting.MAIN_WII_SD_CARD_SYNC_FOLDER_PATH))
{
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setMessage(R.string.unavailable_paths);
builder.setPositiveButton(R.string.yes, (dialogInterface, i) ->
- SettingsActivity.launch(activity, MenuTag.CONFIG_PATHS));
+ SettingsActivity.launch(activity, MenuTag.CONFIG_WII));
builder.setNeutralButton(R.string.continue_anyway, (dialogInterface, i) ->
continueCallback.run());
builder.show();
}
+ else
+ {
+ continueCallback.run();
+ }
});
}
-
public static void launchSystemMenu(FragmentActivity activity)
{
if (sIgnoreLaunchRequests)
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java
index b419099808..44ee61ed71 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java
@@ -29,6 +29,8 @@ public enum BooleanSetting implements AbstractBooleanSetting
MAIN_SIMULATE_KONGA_2(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "SimulateKonga2", false),
MAIN_SIMULATE_KONGA_3(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "SimulateKonga3", false),
MAIN_WII_SD_CARD(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "WiiSDCard", true),
+ MAIN_WII_SD_CARD_ENABLE_FOLDER_SYNC(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE,
+ "WiiSDCardEnableFolderSync", false),
MAIN_WIIMOTE_CONTINUOUS_SCANNING(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE,
"WiimoteContinuousScanning", false),
MAIN_WIIMOTE_ENABLE_SPEAKER(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE,
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/StringSetting.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/StringSetting.java
index 4c4a74da84..d838f6879b 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/StringSetting.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/StringSetting.java
@@ -29,7 +29,10 @@ public enum StringSetting implements AbstractStringSetting
MAIN_RESOURCEPACK_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL, "ResourcePackPath",
""),
MAIN_FS_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL, "NANDRootPath", ""),
- MAIN_SD_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL, "WiiSDCardPath", ""),
+ MAIN_WII_SD_CARD_IMAGE_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL, "WiiSDCardPath",
+ ""),
+ MAIN_WII_SD_CARD_SYNC_FOLDER_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL,
+ "WiiSDCardSyncFolder", ""),
MAIN_WFS_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL, "WFSPath", ""),
GFX_ENHANCE_POST_SHADER(Settings.FILE_GFX, Settings.SECTION_GFX_ENHANCEMENTS,
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java
index dd3fb15506..8dda6b64c6 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java
@@ -41,7 +41,10 @@ import org.dolphinemu.dolphinemu.features.settings.model.view.StringSingleChoice
import org.dolphinemu.dolphinemu.features.settings.model.view.SubmenuSetting;
import org.dolphinemu.dolphinemu.features.settings.utils.SettingsFile;
import org.dolphinemu.dolphinemu.ui.main.MainPresenter;
+import org.dolphinemu.dolphinemu.utils.BooleanSupplier;
import org.dolphinemu.dolphinemu.utils.EGLHelper;
+import org.dolphinemu.dolphinemu.utils.ThreadUtil;
+import org.dolphinemu.dolphinemu.utils.WiiUtils;
import java.util.ArrayList;
import java.util.LinkedHashMap;
@@ -423,8 +426,6 @@ public final class SettingsFragmentPresenter
MainPresenter.REQUEST_DIRECTORY, "/Load"));
sl.add(new FilePicker(mContext, StringSetting.MAIN_RESOURCEPACK_PATH,
R.string.resource_pack_path, 0, MainPresenter.REQUEST_DIRECTORY, "/ResourcePacks"));
- sl.add(new FilePicker(mContext, StringSetting.MAIN_SD_PATH, R.string.SD_card_path, 0,
- MainPresenter.REQUEST_SD_FILE, "/Wii/sd.raw"));
sl.add(new FilePicker(mContext, StringSetting.MAIN_WFS_PATH, R.string.wfs_path, 0,
MainPresenter.REQUEST_DIRECTORY, "/WFS"));
}
@@ -445,6 +446,7 @@ public final class SettingsFragmentPresenter
private void addWiiSettings(ArrayList<SettingsItem> sl)
{
+ sl.add(new HeaderSetting(mContext, R.string.wii_misc_settings, 0));
sl.add(new SingleChoiceSetting(mContext, IntSetting.SYSCONF_LANGUAGE, R.string.system_language,
0, R.array.wiiSystemLanguageEntries, R.array.wiiSystemLanguageValues));
sl.add(new CheckBoxSetting(mContext, BooleanSetting.SYSCONF_WIDESCREEN, R.string.wii_widescreen,
@@ -455,10 +457,29 @@ public final class SettingsFragmentPresenter
R.string.wii_screensaver, R.string.wii_screensaver_description));
sl.add(new SingleChoiceSetting(mContext, IntSetting.SYSCONF_SOUND_MODE, R.string.sound_mode, 0,
R.array.soundModeEntries, R.array.soundModeValues));
+
+ sl.add(new HeaderSetting(mContext, R.string.wii_sd_card_settings, 0));
sl.add(new CheckBoxSetting(mContext, BooleanSetting.MAIN_WII_SD_CARD, R.string.insert_sd_card,
R.string.insert_sd_card_description));
sl.add(new CheckBoxSetting(mContext, BooleanSetting.MAIN_ALLOW_SD_WRITES,
R.string.wii_sd_card_allow_writes, 0));
+ sl.add(new CheckBoxSetting(mContext, BooleanSetting.MAIN_WII_SD_CARD_ENABLE_FOLDER_SYNC,
+ R.string.wii_sd_card_sync, R.string.wii_sd_card_sync_description));
+ // TODO: Hardcoding "Load" here is wrong, because the user may have changed the Load path.
+ // The code structure makes this hard to fix, and with scoped storage active the Load path
+ // can't be changed anyway
+ sl.add(new FilePicker(mContext, StringSetting.MAIN_WII_SD_CARD_IMAGE_PATH,
+ R.string.wii_sd_card_path, 0, MainPresenter.REQUEST_SD_FILE, "/Load/WiiSD.raw"));
+ sl.add(new FilePicker(mContext, StringSetting.MAIN_WII_SD_CARD_SYNC_FOLDER_PATH,
+ R.string.wii_sd_sync_folder, 0, MainPresenter.REQUEST_DIRECTORY, "/Load/WiiSDSync/"));
+ sl.add(new RunRunnable(mContext, R.string.wii_sd_card_folder_to_file, 0,
+ R.string.wii_sd_card_folder_to_file_confirmation, 0,
+ () -> convertOnThread(WiiUtils::syncSdFolderToSdImage)));
+ sl.add(new RunRunnable(mContext, R.string.wii_sd_card_file_to_folder, 0,
+ R.string.wii_sd_card_file_to_folder_confirmation, 0,
+ () -> convertOnThread(WiiUtils::syncSdImageToSdFolder)));
+
+ sl.add(new HeaderSetting(mContext, R.string.wii_wiimote_settings, 0));
sl.add(new CheckBoxSetting(mContext, BooleanSetting.SYSCONF_WIIMOTE_MOTOR,
R.string.wiimote_rumble, 0));
sl.add(new IntSliderSetting(mContext, IntSetting.SYSCONF_SPEAKER_VOLUME,
@@ -1384,4 +1405,11 @@ public final class SettingsFragmentPresenter
mView.getAdapter().notifyAllSettingsChanged();
}
+
+ private void convertOnThread(BooleanSupplier f)
+ {
+ ThreadUtil.runOnThreadAndShowResult(mView.getActivity(), R.string.wii_converting, 0, () ->
+ mContext.getResources().getString(
+ f.get() ? R.string.wii_convert_success : R.string.wii_convert_failure));
+ }
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/WiiUtils.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/WiiUtils.java
index 44103f7483..fb1d7e90cb 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/WiiUtils.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/WiiUtils.java
@@ -33,4 +33,8 @@ public final class WiiUtils
public static native boolean isSystemMenuInstalled();
public static native String getSystemMenuVersion();
+
+ public static native boolean syncSdFolderToSdImage();
+
+ public static native boolean syncSdImageToSdFolder();
}