summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorRyan Meredith <rwm@udel.edu>2020-03-24 17:08:35 -0400
committerRyan Meredith <rwm@udel.edu>2020-03-24 17:08:35 -0400
commitd15d6e70d7fa1cca77f51c3f22d5eb04fafadde1 (patch)
tree100d5a360b1e8d14c5baa46427367a26c32183e7 /Source/Android/app/src/main/java
parentde5430b2225df7e41d466e4511e49d82f06ae83b (diff)
Android: Don't let onSettingChanged clobber ConfirmRunnable changes
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/MenuTag.java3
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java4
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivityPresenter.java8
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivityView.java8
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java42
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragment.java14
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java7
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentView.java6
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/ConfirmRunnableViewHolder.java6
9 files changed, 45 insertions, 53 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/MenuTag.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/MenuTag.java
index 88fcd6a011..ef7aca9f04 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/MenuTag.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/MenuTag.java
@@ -27,8 +27,7 @@ public enum MenuTag
WIIMOTE_EXTENSION_1("wiimote_extension", 4),
WIIMOTE_EXTENSION_2("wiimote_extension", 5),
WIIMOTE_EXTENSION_3("wiimote_extension", 6),
- WIIMOTE_EXTENSION_4("wiimote_extension", 7),
- BLANK("Blank");
+ WIIMOTE_EXTENSION_4("wiimote_extension", 7);
private String tag;
private int subType = -1;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java
index d5f6754225..bfaf6daf80 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java
@@ -105,13 +105,13 @@ public final class SettingsActivity extends AppCompatActivity implements Setting
@Override
public void showSettingsFragment(MenuTag menuTag, Bundle extras, boolean addToStack,
- boolean customAnimations, String gameID)
+ String gameID)
{
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
if (addToStack)
{
- if (areSystemAnimationsEnabled() && customAnimations)
+ if (areSystemAnimationsEnabled())
{
transaction.setCustomAnimations(
R.animator.settings_enter,
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivityPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivityPresenter.java
index ebdcd9bdcd..77ce9cee9c 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivityPresenter.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivityPresenter.java
@@ -70,7 +70,7 @@ public final class SettingsActivityPresenter
}
}
- mView.showSettingsFragment(menuTag, null, false, true, gameId);
+ mView.showSettingsFragment(menuTag, null, false, gameId);
mView.onSettingsFileLoaded(mSettings);
}
@@ -195,7 +195,7 @@ public final class SettingsActivityPresenter
{
Bundle bundle = new Bundle();
bundle.putInt(SettingsFragmentPresenter.ARG_CONTROLLER_TYPE, value / 6);
- mView.showSettingsFragment(key, bundle, true, true, gameId);
+ mView.showSettingsFragment(key, bundle, true, gameId);
}
}
@@ -204,7 +204,7 @@ public final class SettingsActivityPresenter
switch (value)
{
case 1:
- mView.showSettingsFragment(menuTag, null, true, true, gameId);
+ mView.showSettingsFragment(menuTag, null, true, gameId);
break;
case 2:
@@ -219,7 +219,7 @@ public final class SettingsActivityPresenter
{
Bundle bundle = new Bundle();
bundle.putInt(SettingsFragmentPresenter.ARG_CONTROLLER_TYPE, value);
- mView.showSettingsFragment(menuTag, bundle, true, true, gameId);
+ mView.showSettingsFragment(menuTag, bundle, true, gameId);
}
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivityView.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivityView.java
index 21ea870839..71583aa989 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivityView.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivityView.java
@@ -14,12 +14,10 @@ public interface SettingsActivityView
/**
* Show a new SettingsFragment.
*
- * @param menuTag Identifier for the settings group that should be displayed.
- * @param addToStack Whether or not this fragment should replace a previous one.
- * @param customAnimations Custom animations are used if true while system animations are enabled.
+ * @param menuTag Identifier for the settings group that should be displayed.
+ * @param addToStack Whether or not this fragment should replace a previous one.
*/
- void showSettingsFragment(MenuTag menuTag, Bundle extras, boolean addToStack,
- boolean customAnimations, String gameId);
+ void showSettingsFragment(MenuTag menuTag, Bundle extras, boolean addToStack, String gameId);
/**
* Called by a contained Fragment to get access to the Setting HashMap
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 04d68d17fc..f11a183626 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
@@ -55,6 +55,7 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde
implements DialogInterface.OnClickListener, SeekBar.OnSeekBarChangeListener
{
private SettingsFragmentView mView;
+ private static SettingsFragmentView sView;
private Context mContext;
private ArrayList<SettingsItem> mSettings;
@@ -72,6 +73,7 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde
public SettingsAdapter(SettingsFragmentView view, Context context)
{
mView = view;
+ sView = view;
mContext = context;
mClickedPosition = -1;
}
@@ -332,20 +334,32 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde
public static void resetPaths()
{
- NativeLibrary.SetConfig(SettingsFile.FILE_NAME_DOLPHIN + ".ini", Settings.SECTION_INI_CORE,
- SettingsFile.KEY_DEFAULT_ISO, "");
- NativeLibrary.SetConfig(SettingsFile.FILE_NAME_DOLPHIN + ".ini", Settings.SECTION_INI_GENERAL,
- SettingsFile.KEY_NAND_ROOT_PATH, SettingsFragmentPresenter.getDefaultNANDRootPath());
- NativeLibrary.SetConfig(SettingsFile.FILE_NAME_DOLPHIN + ".ini", Settings.SECTION_INI_GENERAL,
- SettingsFile.KEY_DUMP_PATH, SettingsFragmentPresenter.getDefaultDumpPath());
- NativeLibrary.SetConfig(SettingsFile.FILE_NAME_DOLPHIN + ".ini", Settings.SECTION_INI_GENERAL,
- SettingsFile.KEY_LOAD_PATH, SettingsFragmentPresenter.getDefaultLoadPath());
- NativeLibrary.SetConfig(SettingsFile.FILE_NAME_DOLPHIN + ".ini", Settings.SECTION_INI_GENERAL,
- SettingsFile.KEY_RESOURCE_PACK_PATH,
- SettingsFragmentPresenter.getDefaultResourcePackPath());
- NativeLibrary.SetConfig(SettingsFile.FILE_NAME_DOLPHIN + ".ini", Settings.SECTION_INI_GENERAL,
- SettingsFile.KEY_WII_SD_CARD_PATH, SettingsFragmentPresenter.getDefaultSDPath());
- NativeLibrary.ReloadConfig();
+ StringSetting defaultISO =
+ new StringSetting(SettingsFile.KEY_DEFAULT_ISO, Settings.SECTION_INI_CORE, "");
+ StringSetting NANDRootPath =
+ new StringSetting(SettingsFile.KEY_NAND_ROOT_PATH, Settings.SECTION_INI_GENERAL,
+ SettingsFragmentPresenter.getDefaultNANDRootPath());
+ StringSetting dumpPath =
+ new StringSetting(SettingsFile.KEY_DUMP_PATH, Settings.SECTION_INI_GENERAL,
+ SettingsFragmentPresenter.getDefaultDumpPath());
+ StringSetting loadPath =
+ new StringSetting(SettingsFile.KEY_LOAD_PATH, Settings.SECTION_INI_GENERAL,
+ SettingsFragmentPresenter.getDefaultLoadPath());
+ StringSetting resourcePackPath =
+ new StringSetting(SettingsFile.KEY_RESOURCE_PACK_PATH, Settings.SECTION_INI_GENERAL,
+ SettingsFragmentPresenter.getDefaultResourcePackPath());
+ StringSetting sdPath =
+ new StringSetting(SettingsFile.KEY_WII_SD_CARD_PATH, Settings.SECTION_INI_GENERAL,
+ SettingsFragmentPresenter.getDefaultSDPath());
+
+ sView.putSetting(defaultISO);
+ sView.putSetting(NANDRootPath);
+ sView.putSetting(dumpPath);
+ sView.putSetting(loadPath);
+ sView.putSetting(resourcePackPath);
+ sView.putSetting(sdPath);
+
+ sView.onSettingChanged();
}
@Override
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragment.java
index 25cebc8a2b..0fdafbb890 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragment.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragment.java
@@ -20,7 +20,6 @@ import org.dolphinemu.dolphinemu.ui.DividerItemDecoration;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
-import java.util.Objects;
public final class SettingsFragment extends Fragment implements SettingsFragmentView
{
@@ -180,18 +179,7 @@ public final class SettingsFragment extends Fragment implements SettingsFragment
@Override
public void loadSubMenu(MenuTag menuKey)
{
- mActivity
- .showSettingsFragment(menuKey, null, true, true,
- getArguments().getString(ARGUMENT_GAME_ID));
- }
-
- @Override
- public void reloadSubMenu()
- {
- mActivity
- .showSettingsFragment(MenuTag.BLANK, null, true, false,
- getArguments().getString(ARGUMENT_GAME_ID));
- Objects.requireNonNull(getActivity()).onBackPressed();
+ mActivity.showSettingsFragment(menuKey, null, true, getArguments().getString(ARGUMENT_GAME_ID));
}
@Override
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java
index 93d30989c3..d0db5c8a1c 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java
@@ -197,9 +197,6 @@ public final class SettingsFragmentPresenter
addStereoSettings(sl);
break;
- case BLANK:
- break;
-
default:
mView.showToastMessage("Unimplemented menu");
return;
@@ -353,8 +350,8 @@ public final class SettingsFragmentPresenter
sl.add(new FilePicker(SettingsFile.FILE_NAME_DOLPHIN, SettingsFile.KEY_WII_SD_CARD_PATH,
Settings.SECTION_INI_GENERAL, R.string.SD_card_path, 0, getDefaultSDPath(),
MainPresenter.REQUEST_SD_FILE, wiiSDCardPath));
- sl.add(new ConfirmRunnable(R.string.reset_paths, 0, R.string.reset_paths_confirmation,
- R.string.reset_paths_complete, () -> SettingsAdapter.resetPaths()));
+ sl.add(new ConfirmRunnable(R.string.reset_paths, 0, R.string.reset_paths_confirmation, 0,
+ SettingsAdapter::resetPaths));
}
private void addGameCubeSettings(ArrayList<SettingsItem> sl)
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentView.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentView.java
index 3fd8fca07f..eeff02d7db 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentView.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentView.java
@@ -58,12 +58,6 @@ public interface SettingsFragmentView
void loadSubMenu(MenuTag menuKey);
/**
- * Show a new blank submenu and then immediately back out of it.
- * Useful for updating dynamic setting descriptions.
- */
- void reloadSubMenu();
-
- /**
* Tell the Fragment to tell the containing activity to display a toast message.
*
* @param message Text to be shown in the Toast
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/ConfirmRunnableViewHolder.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/ConfirmRunnableViewHolder.java
index f29173e8c9..32be613bc2 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/ConfirmRunnableViewHolder.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/ConfirmRunnableViewHolder.java
@@ -57,7 +57,6 @@ public final class ConfirmRunnableViewHolder extends SettingViewHolder
{
String alertTitle = mContext.getString(mItem.getNameId());
String alertText = mContext.getString(mItem.getAlertText());
- String confirmationText = mContext.getString(mItem.getConfirmationText());
AlertDialog.Builder builder = new AlertDialog.Builder(mContext)
.setTitle(alertTitle)
@@ -70,10 +69,13 @@ public final class ConfirmRunnableViewHolder extends SettingViewHolder
if (mItem.getConfirmationText() > 0)
{
+ String confirmationText = mContext.getString(mItem.getConfirmationText());
Toast.makeText(mContext, confirmationText, Toast.LENGTH_SHORT).show();
}
dialog.dismiss();
- mView.reloadSubMenu();
+
+ // TODO: Remove finish and properly update dynamic settings descriptions.
+ mView.getActivity().finish();
})
.setNegativeButton("No", (dialog, whichButton) ->
{