summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java/org
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2020-07-18 11:37:41 +0200
committerJosJuice <josjuice@gmail.com>2020-09-23 18:36:23 +0200
commit8f712114b6c6e62c3f1c23fdf3d75c13ce64d480 (patch)
treef9d4123a41074830f361e34597304d5637287885 /Source/Android/app/src/main/java/org
parenta9b15dfe3c1833d9e281343e61301cb309a44eb8 (diff)
Android: Use storage access framework for importing WADs
This is part of my efforts to add support for scoped storage. I figured I would start with a relatively simple feature to make sure that everyone is fine with the approach I'm taking before I tackle more complicated features like the game list.
Diffstat (limited to 'Source/Android/app/src/main/java/org')
-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.java8
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java3
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java8
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/FileBrowserHelper.java3
5 files changed, 12 insertions, 13 deletions
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 605c23854e..cbb54a4d45 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
@@ -293,9 +293,6 @@ 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 a36a5dfe34..855f1802b2 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
@@ -171,8 +171,10 @@ public final class MainActivity extends AppCompatActivity implements MainView
@Override
public void launchInstallWAD()
{
- FileBrowserHelper.openFilePicker(this, MainPresenter.REQUEST_WAD_FILE, false,
- FileBrowserHelper.WAD_EXTENSION);
+ Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
+ intent.addCategory(Intent.CATEGORY_OPENABLE);
+ intent.setType("*/*");
+ startActivityForResult(intent, MainPresenter.REQUEST_WAD_FILE);
}
/**
@@ -199,7 +201,7 @@ public final class MainActivity extends AppCompatActivity implements MainView
break;
case MainPresenter.REQUEST_WAD_FILE:
- mPresenter.installWAD(FileBrowserHelper.getSelectedPath(result));
+ mPresenter.installWAD(result.getData().toString());
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 6cd3637f8f..75f2002ba3 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
@@ -16,6 +16,7 @@ import org.dolphinemu.dolphinemu.R;
import org.dolphinemu.dolphinemu.features.settings.ui.MenuTag;
import org.dolphinemu.dolphinemu.model.GameFileCache;
import org.dolphinemu.dolphinemu.services.GameFileCacheService;
+import org.dolphinemu.dolphinemu.utils.AfterDirectoryInitializationRunner;
public final class MainPresenter
{
@@ -99,7 +100,7 @@ public final class MainPresenter
return true;
case R.id.menu_install_wad:
- mView.launchInstallWAD();
+ new AfterDirectoryInitializationRunner().run(context, true, mView::launchInstallWAD);
return true;
}
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 4f3146ef05..08e90530db 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
@@ -172,8 +172,10 @@ public final class TvMainActivity extends FragmentActivity implements MainView
@Override
public void launchInstallWAD()
{
- FileBrowserHelper.openFilePicker(this, MainPresenter.REQUEST_WAD_FILE, false,
- FileBrowserHelper.WAD_EXTENSION);
+ Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
+ intent.addCategory(Intent.CATEGORY_OPENABLE);
+ intent.setType("*/*");
+ startActivityForResult(intent, MainPresenter.REQUEST_WAD_FILE);
}
@Override
@@ -211,7 +213,7 @@ public final class TvMainActivity extends FragmentActivity implements MainView
break;
case MainPresenter.REQUEST_WAD_FILE:
- mPresenter.installWAD(FileBrowserHelper.getSelectedPath(result));
+ mPresenter.installWAD(result.getData().toString());
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 4c6803d1af..949cee554c 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,9 +27,6 @@ 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);