summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2021-01-17 22:18:31 +0100
committerJosJuice <josjuice@gmail.com>2021-01-27 20:10:06 +0100
commitb08306d0b89a34b4dc04a324ce47b8d8833230a8 (patch)
tree68ddd8acc52bce37d19e303a0b4fbed42d5ddf8f /Source/Android/app/src/main/java
parent4a394ffc9c6cbaa7a11de2a658948b2594ca6ab4 (diff)
Android: Refactor MainPresenter.installWad
Also replacing a toast with a dialog so that you have proper time to read the message.
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java50
1 files changed, 28 insertions, 22 deletions
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 f51f269d58..489545e43a 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
@@ -7,7 +7,6 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.Uri;
-import android.widget.Toast;
import androidx.appcompat.app.AlertDialog;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
@@ -24,6 +23,7 @@ import org.dolphinemu.dolphinemu.utils.FileBrowserHelper;
import org.dolphinemu.dolphinemu.utils.WiiUtils;
import java.util.Arrays;
+import java.util.function.Supplier;
public final class MainPresenter
{
@@ -150,32 +150,38 @@ public final class MainPresenter
mDirToAdd = uri.toString();
}
- public void installWAD(String file)
+ public void installWAD(String path)
+ {
+ runOnThreadAndShowResult(R.string.import_in_progress, () ->
+ {
+ boolean success = WiiUtils.installWAD(path);
+ int message = success ? R.string.wad_install_success : R.string.wad_install_failure;
+ return mContext.getResources().getString(message);
+ });
+ }
+
+ private void runOnThreadAndShowResult(int progressMessage, Supplier<String> f)
{
final Activity mainPresenterActivity = (Activity) mContext;
- AlertDialog dialog = new AlertDialog.Builder(mContext, R.style.DolphinDialogBase).create();
- dialog.setTitle("Installing WAD");
- dialog.setMessage("Installing...");
- dialog.setCancelable(false);
- dialog.show();
+ AlertDialog progressDialog = new AlertDialog.Builder(mContext, R.style.DolphinDialogBase)
+ .create();
+ progressDialog.setTitle(progressMessage);
+ progressDialog.setCancelable(false);
+ progressDialog.show();
- Thread installWADThread = new Thread(() ->
+ new Thread(() ->
{
- if (WiiUtils.installWAD(file))
+ String result = f.get();
+ mainPresenterActivity.runOnUiThread(() ->
{
- mainPresenterActivity.runOnUiThread(
- () -> Toast.makeText(mContext, R.string.wad_install_success, Toast.LENGTH_SHORT)
- .show());
- }
- else
- {
- mainPresenterActivity.runOnUiThread(
- () -> Toast.makeText(mContext, R.string.wad_install_failure, Toast.LENGTH_SHORT)
- .show());
- }
- mainPresenterActivity.runOnUiThread(dialog::dismiss);
- }, "InstallWAD");
- installWADThread.start();
+ progressDialog.dismiss();
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(mContext, R.style.DolphinDialogBase);
+ builder.setMessage(result);
+ builder.setPositiveButton(R.string.ok, (dialog, i) -> dialog.dismiss());
+ builder.show();
+ });
+ }, mContext.getResources().getString(progressMessage)).start();
}
}