diff options
| author | JosJuice <josjuice@gmail.com> | 2021-01-17 22:18:31 +0100 |
|---|---|---|
| committer | JosJuice <josjuice@gmail.com> | 2021-01-27 20:10:06 +0100 |
| commit | b08306d0b89a34b4dc04a324ce47b8d8833230a8 (patch) | |
| tree | 68ddd8acc52bce37d19e303a0b4fbed42d5ddf8f /Source/Android/app/src/main/java | |
| parent | 4a394ffc9c6cbaa7a11de2a658948b2594ca6ab4 (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.java | 50 |
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(); } } |
