From 00c4dad7849e7b88c006475c961ce125a29ccb8a Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 15 Jun 2019 19:08:35 +0200 Subject: [PATCH] Android: Bring back the game details dialog It was made inaccessible in e19922c (I'm not sure why) and then removed by 593b697. --- .../dolphinemu/adapters/GameAdapter.java | 3 ++- .../dolphinemu/adapters/GameRowPresenter.java | 3 ++- .../dolphinemu/dialogs/GameDetailsDialog.java | 10 ++++++---- .../dolphinemu/dialogs/GameSettingsDialog.java | 18 +++++++++++++----- .../Android/app/src/main/res/values/arrays.xml | 2 ++ 5 files changed, 25 insertions(+), 11 deletions(-) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameAdapter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameAdapter.java index 5cdb4d984d..7d037522ef 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameAdapter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameAdapter.java @@ -146,7 +146,8 @@ public final class GameAdapter extends RecyclerView.Adapter impl } GameSettingsDialog fragment = - GameSettingsDialog.newInstance(gameId, holder.gameFile.getPlatform()); + GameSettingsDialog. + newInstance(holder.gameFile.getPath(), gameId, holder.gameFile.getPlatform()); ((FragmentActivity) view.getContext()).getSupportFragmentManager().beginTransaction() .add(fragment, GameSettingsDialog.TAG).commit(); return true; diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameRowPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameRowPresenter.java index 439c4a94d0..7db90db8aa 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameRowPresenter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameRowPresenter.java @@ -91,7 +91,8 @@ public final class GameRowPresenter extends Presenter } GameSettingsDialog fragment = - GameSettingsDialog.newInstance(gameId, holder.gameFile.getPlatform()); + GameSettingsDialog.newInstance(holder.gameFile.getPath(), gameId, + holder.gameFile.getPlatform()); ((FragmentActivity) view.getContext()).getSupportFragmentManager().beginTransaction() .add(fragment, GameSettingsDialog.TAG).commit(); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.java index be254a4b7c..133b1ef635 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.java @@ -1,14 +1,16 @@ package org.dolphinemu.dolphinemu.dialogs; -import android.app.AlertDialog; import android.app.Dialog; import android.os.Bundle; -import android.support.design.widget.FloatingActionButton; -import android.support.v4.app.DialogFragment; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; +import androidx.appcompat.app.AlertDialog; +import androidx.fragment.app.DialogFragment; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; + import com.squareup.picasso.Picasso; import org.dolphinemu.dolphinemu.R; @@ -38,7 +40,7 @@ public final class GameDetailsDialog extends DialogFragment { GameFile gameFile = GameFileCacheService.addOrGet(getArguments().getString(ARG_GAME_PATH)); - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity()); ViewGroup contents = (ViewGroup) getActivity().getLayoutInflater() .inflate(R.layout.dialog_game_details, null); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameSettingsDialog.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameSettingsDialog.java index 9d2bf1cf76..a526723c8a 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameSettingsDialog.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameSettingsDialog.java @@ -6,6 +6,7 @@ import android.os.Bundle; import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; +import androidx.fragment.app.FragmentActivity; import android.widget.Toast; @@ -20,14 +21,16 @@ import java.io.File; public class GameSettingsDialog extends DialogFragment { public static final String TAG = "GameSettingsDialog"; + public static final String ARG_PATH = "path"; public static final String ARG_GAMEID = "game_id"; public static final String ARG_PLATFORM = "platform"; - public static GameSettingsDialog newInstance(String gameId, int platform) + public static GameSettingsDialog newInstance(String path, String gameId, int platform) { GameSettingsDialog fragment = new GameSettingsDialog(); Bundle arguments = new Bundle(); + arguments.putString(ARG_PATH, path); arguments.putString(ARG_GAMEID, gameId); arguments.putInt(ARG_PLATFORM, platform); fragment.setArguments(arguments); @@ -41,6 +44,7 @@ public class GameSettingsDialog extends DialogFragment { AlertDialog.Builder builder = new AlertDialog.Builder(requireContext()); + String path = requireArguments().getString(ARG_PATH); String gameId = requireArguments().getString(ARG_GAMEID); int platform = requireArguments().getInt(ARG_PLATFORM); @@ -52,22 +56,26 @@ public class GameSettingsDialog extends DialogFragment switch (which) { case 0: - SettingsActivity.launch(getContext(), MenuTag.CONFIG, gameId); + GameDetailsDialog.newInstance(path).show((requireActivity()) + .getSupportFragmentManager(), "game_details"); break; case 1: - SettingsActivity.launch(getContext(), MenuTag.GRAPHICS, gameId); + SettingsActivity.launch(getContext(), MenuTag.CONFIG, gameId); break; case 2: - SettingsActivity.launch(getContext(), MenuTag.GCPAD_TYPE, gameId); + SettingsActivity.launch(getContext(), MenuTag.GRAPHICS, gameId); break; case 3: + SettingsActivity.launch(getContext(), MenuTag.GCPAD_TYPE, gameId); + break; + case 4: // Clear option for GC, Wii controls for else if (platform == Platform.GAMECUBE.toInt()) clearGameSettings(gameId); else SettingsActivity.launch(getActivity(), MenuTag.WIIMOTE, gameId); break; - case 4: + case 5: clearGameSettings(gameId); break; } diff --git a/Source/Android/app/src/main/res/values/arrays.xml b/Source/Android/app/src/main/res/values/arrays.xml index 9e2f268151..3cfffe433f 100644 --- a/Source/Android/app/src/main/res/values/arrays.xml +++ b/Source/Android/app/src/main/res/values/arrays.xml @@ -336,12 +336,14 @@ + Details Core Settings GFX Settings GameCube Controller Settings Clear Game Settings + Details Core Settings GFX Settings GameCube Controller Settings