summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2021-04-19 21:57:40 +0200
committerGitHub <noreply@github.com>2021-04-19 21:57:40 +0200
commitcf80ed7f2df94868665c9efa2ec8d0f1bb4ab377 (patch)
tree66d03a2afdf9ea891a6e4e851b5149c1ee6b7fa4 /Source/Android/app/src/main/java
parentec5fbeb0d629565d90e664e2781e7ec80b983861 (diff)
parentceacd0930b27c7402be78daf9f449997fe0ff2e0 (diff)
Merge pull request #9653 from JosJuice/android-import-nand
Android: Add "Import BootMii NAND Backup"
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java5
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java39
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java9
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/WiiUtils.java2
4 files changed, 51 insertions, 4 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java
index 0418f453de..62d8ee8def 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java
@@ -226,6 +226,11 @@ public final class MainActivity extends AppCompatActivity
FileBrowserHelper.runAfterExtensionCheck(this, uri, FileBrowserHelper.BIN_EXTENSION,
() -> mPresenter.importWiiSave(result.getData().toString()));
break;
+
+ case MainPresenter.REQUEST_NAND_BIN_FILE:
+ FileBrowserHelper.runAfterExtensionCheck(this, uri, FileBrowserHelper.BIN_EXTENSION,
+ () -> mPresenter.importNANDBin(result.getData().toString()));
+ break;
}
}
else
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java
index ed02a6f22e..7c1785f91c 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java
@@ -35,6 +35,7 @@ public final class MainPresenter
public static final int REQUEST_SD_FILE = 3;
public static final int REQUEST_WAD_FILE = 4;
public static final int REQUEST_WII_SAVE_FILE = 5;
+ public static final int REQUEST_NAND_BIN_FILE = 6;
private static boolean sShouldRescanLibrary = true;
@@ -119,6 +120,11 @@ public final class MainPresenter
new AfterDirectoryInitializationRunner().run(context, true,
() -> mView.launchOpenFileActivity(REQUEST_WII_SAVE_FILE));
return true;
+
+ case R.id.menu_import_nand_backup:
+ new AfterDirectoryInitializationRunner().run(context, true,
+ () -> mView.launchOpenFileActivity(REQUEST_NAND_BIN_FILE));
+ return true;
}
return false;
@@ -184,7 +190,7 @@ public final class MainPresenter
public void installWAD(String path)
{
- runOnThreadAndShowResult(R.string.import_in_progress, () ->
+ runOnThreadAndShowResult(R.string.import_in_progress, 0, () ->
{
boolean success = WiiUtils.installWAD(path);
int message = success ? R.string.wad_install_success : R.string.wad_install_failure;
@@ -198,7 +204,7 @@ public final class MainPresenter
CompletableFuture<Boolean> canOverwriteFuture = new CompletableFuture<>();
- runOnThreadAndShowResult(R.string.import_in_progress, () ->
+ runOnThreadAndShowResult(R.string.import_in_progress, 0, () ->
{
BooleanSupplier canOverwrite = () ->
{
@@ -248,13 +254,38 @@ public final class MainPresenter
});
}
- private void runOnThreadAndShowResult(int progressMessage, Supplier<String> f)
+ public void importNANDBin(String path)
+ {
+ AlertDialog.Builder builder =
+ new AlertDialog.Builder(mContext, R.style.DolphinDialogBase);
+
+ builder.setMessage(R.string.nand_import_warning);
+ builder.setNegativeButton(R.string.no, (dialog, i) -> dialog.dismiss());
+ builder.setPositiveButton(R.string.yes, (dialog, i) ->
+ {
+ dialog.dismiss();
+
+ runOnThreadAndShowResult(R.string.import_in_progress, R.string.do_not_close_app, () ->
+ {
+ // ImportNANDBin doesn't provide any result value, unfortunately...
+ // It does however show a panic alert if something goes wrong.
+ WiiUtils.importNANDBin(path);
+ return null;
+ });
+ });
+
+ builder.show();
+ }
+
+ private void runOnThreadAndShowResult(int progressTitle, int progressMessage, Supplier<String> f)
{
final Activity mainPresenterActivity = (Activity) mContext;
AlertDialog progressDialog = new AlertDialog.Builder(mContext, R.style.DolphinDialogBase)
.create();
- progressDialog.setTitle(progressMessage);
+ progressDialog.setTitle(progressTitle);
+ if (progressMessage != 0)
+ progressDialog.setMessage(mContext.getResources().getString(progressMessage));
progressDialog.setCancelable(false);
progressDialog.show();
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java
index b03b894493..d35f440c0c 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java
@@ -264,6 +264,11 @@ public final class TvMainActivity extends FragmentActivity
FileBrowserHelper.runAfterExtensionCheck(this, uri, FileBrowserHelper.BIN_EXTENSION,
() -> mPresenter.importWiiSave(result.getData().toString()));
break;
+
+ case MainPresenter.REQUEST_NAND_BIN_FILE:
+ FileBrowserHelper.runAfterExtensionCheck(this, uri, FileBrowserHelper.BIN_EXTENSION,
+ () -> mPresenter.importNANDBin(result.getData().toString()));
+ break;
}
}
else
@@ -378,6 +383,10 @@ public final class TvMainActivity extends FragmentActivity
R.drawable.ic_folder,
R.string.grid_menu_import_wii_save));
+ rowItems.add(new TvSettingsItem(R.id.menu_import_nand_backup,
+ R.drawable.ic_folder,
+ R.string.grid_menu_import_nand_backup));
+
// Create a header for this row.
HeaderItem header =
new HeaderItem(R.string.preferences_settings, getString(R.string.preferences_settings));
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 9a6440c9e5..74bb049df5 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
@@ -11,4 +11,6 @@ public final class WiiUtils
public static native boolean installWAD(String file);
public static native int importWiiSave(String file, BooleanSupplier canOverwrite);
+
+ public static native void importNANDBin(String file);
}