diff options
| author | JosJuice <josjuice@gmail.com> | 2020-07-18 11:37:41 +0200 |
|---|---|---|
| committer | JosJuice <josjuice@gmail.com> | 2020-09-23 18:36:23 +0200 |
| commit | 8f712114b6c6e62c3f1c23fdf3d75c13ce64d480 (patch) | |
| tree | f9d4123a41074830f361e34597304d5637287885 /Source/Android/app/src/main/java/org | |
| parent | a9b15dfe3c1833d9e281343e61301cb309a44eb8 (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')
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); |
