summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorRyan Meredith <rwm@udel.edu>2020-04-17 05:25:08 -0400
committerRyan Meredith <rwm@udel.edu>2020-04-22 13:56:44 -0400
commit2d6d0c86cc71a1d3b1a2b865c6abd8cb7ace8665 (patch)
treef13508bdd8543f9cdb10741b6730b77d15410c77 /Source/Android/app/src/main/java
parentc9aab4f809d782418fbba8b85596dfc784ebee94 (diff)
Android: Add Install WAD to menu_game_grid
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java2
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java3
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java15
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java19
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainView.java2
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java15
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/FileBrowserHelper.java3
7 files changed, 59 insertions, 0 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java
index f04fee5c67..89ded1289d 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java
@@ -447,6 +447,8 @@ public final class NativeLibrary
public static native void ReloadWiimoteConfig();
+ public static native boolean InstallWAD(String file);
+
private static boolean alertResult = false;
public static boolean displayAlertMsg(final String caption, final String text,
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java
index 30e410bb5b..001bba3b5e 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java
@@ -322,6 +322,9 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde
case MainPresenter.REQUEST_GAME_FILE:
extensions = FileBrowserHelper.GAME_EXTENSIONS;
break;
+ case MainPresenter.REQUEST_WAD_FILE:
+ extensions = FileBrowserHelper.WAD_EXTENSION;
+ break;
default:
throw new InvalidParameterException("Unhandled request code");
}
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 be1a8a74a2..641b9a975e 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
@@ -155,6 +155,13 @@ public final class MainActivity extends AppCompatActivity implements MainView
FileBrowserHelper.GAME_EXTENSIONS);
}
+ @Override
+ public void launchInstallWAD()
+ {
+ FileBrowserHelper.openFilePicker(this, MainPresenter.REQUEST_WAD_FILE, false,
+ FileBrowserHelper.WAD_EXTENSION);
+ }
+
/**
* @param requestCode An int describing whether the Activity that is returning did so successfully.
* @param resultCode An int describing what Activity is giving us this callback.
@@ -181,6 +188,14 @@ public final class MainActivity extends AppCompatActivity implements MainView
EmulationActivity.launchFile(this, FileBrowserHelper.getSelectedFiles(result));
}
break;
+
+ case MainPresenter.REQUEST_WAD_FILE:
+ // If the user picked a file, as opposed to just backing out.
+ if (resultCode == MainActivity.RESULT_OK)
+ {
+ mPresenter.installWAD(FileBrowserHelper.getSelectedPath(result));
+ }
+ break;
}
}
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 b015df54b4..f7cb972624 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
@@ -4,10 +4,12 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
+import android.widget.Toast;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import org.dolphinemu.dolphinemu.BuildConfig;
+import org.dolphinemu.dolphinemu.NativeLibrary;
import org.dolphinemu.dolphinemu.R;
import org.dolphinemu.dolphinemu.features.settings.ui.MenuTag;
import org.dolphinemu.dolphinemu.model.GameFileCache;
@@ -18,6 +20,7 @@ public final class MainPresenter
public static final int REQUEST_DIRECTORY = 1;
public static final int REQUEST_GAME_FILE = 2;
public static final int REQUEST_SD_FILE = 3;
+ public static final int REQUEST_WAD_FILE = 4;
private final MainView mView;
private final Context mContext;
@@ -92,6 +95,10 @@ public final class MainPresenter
case R.id.menu_open_file:
mView.launchOpenFileActivity();
return true;
+
+ case R.id.menu_install_wad:
+ mView.launchInstallWAD();
+ return true;
}
return false;
@@ -111,4 +118,16 @@ public final class MainPresenter
{
mDirToAdd = dir;
}
+
+ public void installWAD(String file)
+ {
+ if (NativeLibrary.InstallWAD(file))
+ {
+ Toast.makeText(mContext, R.string.wad_install_success, Toast.LENGTH_SHORT).show();
+ }
+ else
+ {
+ Toast.makeText(mContext, R.string.wad_install_failure, Toast.LENGTH_SHORT).show();
+ }
+ }
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainView.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainView.java
index 5e3dc6243e..fc4ed31513 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainView.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainView.java
@@ -23,6 +23,8 @@ public interface MainView
void launchOpenFileActivity();
+ void launchInstallWAD();
+
/**
* To be called when the game file cache is updated.
*/
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 1b12b0cb3e..8726c832e2 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
@@ -151,6 +151,13 @@ public final class TvMainActivity extends FragmentActivity implements MainView
}
@Override
+ public void launchInstallWAD()
+ {
+ FileBrowserHelper.openFilePicker(this, MainPresenter.REQUEST_WAD_FILE, false,
+ FileBrowserHelper.WAD_EXTENSION);
+ }
+
+ @Override
public void showGames()
{
// Kicks off the program services to update all channels
@@ -187,6 +194,14 @@ public final class TvMainActivity extends FragmentActivity implements MainView
EmulationActivity.launchFile(this, FileBrowserHelper.getSelectedFiles(result));
}
break;
+
+ case MainPresenter.REQUEST_WAD_FILE:
+ // If the user picked a file, as opposed to just backing out.
+ if (resultCode == MainActivity.RESULT_OK)
+ {
+ mPresenter.installWAD(FileBrowserHelper.getSelectedPath(result));
+ }
+ break;
}
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/FileBrowserHelper.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/FileBrowserHelper.java
index ae4a45b8e9..96658720c7 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/FileBrowserHelper.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/FileBrowserHelper.java
@@ -27,6 +27,9 @@ public final class FileBrowserHelper
public static final HashSet<String> RAW_EXTENSION = new HashSet<>(Collections.singletonList(
"raw"));
+ public static final HashSet<String> WAD_EXTENSION = new HashSet<>(Collections.singletonList(
+ "wad"));
+
public static void openDirectoryPicker(FragmentActivity activity, HashSet<String> extensions)
{
Intent i = new Intent(activity, CustomFilePickerActivity.class);