summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorRyan Meredith <rwm@udel.edu>2020-09-25 11:50:59 -0400
committerRyan Meredith <rwm@udel.edu>2020-09-25 11:50:59 -0400
commitc3f34ac3fa1c05416e1d7e2d88876e523dafe265 (patch)
tree48441e99e70e3c5ab7e89d99233a2c634b10a5b3 /Source/Android/app/src/main/java
parent991eb6ae832a729facb01aa26f8e2c20b815c0e9 (diff)
Android: Add "Ignore for this session" to Warning AlertMessages
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java11
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java15
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/AlertMessage.java17
3 files changed, 39 insertions, 4 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 0e15304f19..44c1ab4f15 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
@@ -446,7 +446,7 @@ public final class NativeLibrary
public static native void SetObscuredPixelsTop(int height);
public static boolean displayAlertMsg(final String caption, final String text,
- final boolean yesNo)
+ final boolean yesNo, final boolean isWarning)
{
Log.error("[NativeLibrary] Alert: " + text);
final EmulationActivity emulationActivity = sEmulationActivity.get();
@@ -455,6 +455,10 @@ public final class NativeLibrary
{
Log.warning("[NativeLibrary] EmulationActivity is null, can't do panic alert.");
}
+ else if (emulationActivity.isIgnoringWarnings() && isWarning)
+ {
+ return true;
+ }
else
{
// AlertMessages while the core is booting will deadlock when WaitUntilDoneBooting is called.
@@ -470,8 +474,9 @@ public final class NativeLibrary
{
sIsShowingAlertMessage = true;
- emulationActivity.runOnUiThread(() -> AlertMessage.newInstance(caption, text, yesNo)
- .show(emulationActivity.getSupportFragmentManager(), "AlertMessage"));
+ emulationActivity.runOnUiThread(
+ () -> AlertMessage.newInstance(caption, text, yesNo, isWarning)
+ .show(emulationActivity.getSupportFragmentManager(), "AlertMessage"));
// Wait for the lock to notify that it is complete.
synchronized (sAlertMessageLock)
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java
index 8497e9fe5a..17b420c2c4 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java
@@ -85,12 +85,14 @@ public final class EmulationActivity extends AppCompatActivity
private String mSelectedGameId;
private int mPlatform;
private String[] mPaths;
+ private boolean mIgnoreWarnings;
private static boolean sUserPausedEmulation;
public static final String EXTRA_SELECTED_GAMES = "SelectedGames";
public static final String EXTRA_SELECTED_TITLE = "SelectedTitle";
public static final String EXTRA_SELECTED_GAMEID = "SelectedGameId";
public static final String EXTRA_PLATFORM = "Platform";
+ public static final String EXTRA_IGNORE_WARNINGS = "IgnoreWarnings";
public static final String EXTRA_USER_PAUSED_EMULATION = "sUserPausedEmulation";
@Retention(SOURCE)
@@ -272,6 +274,7 @@ public final class EmulationActivity extends AppCompatActivity
mSelectedTitle = gameToEmulate.getStringExtra(EXTRA_SELECTED_TITLE);
mSelectedGameId = gameToEmulate.getStringExtra(EXTRA_SELECTED_GAMEID);
mPlatform = gameToEmulate.getIntExtra(EXTRA_PLATFORM, 0);
+ mIgnoreWarnings = gameToEmulate.getBooleanExtra(EXTRA_IGNORE_WARNINGS, false);
sUserPausedEmulation = gameToEmulate.getBooleanExtra(EXTRA_USER_PAUSED_EMULATION, false);
activityRecreated = false;
Toast.makeText(this, R.string.emulation_menu_help, Toast.LENGTH_LONG).show();
@@ -327,6 +330,7 @@ public final class EmulationActivity extends AppCompatActivity
outState.putString(EXTRA_SELECTED_TITLE, mSelectedTitle);
outState.putString(EXTRA_SELECTED_GAMEID, mSelectedGameId);
outState.putInt(EXTRA_PLATFORM, mPlatform);
+ outState.putBoolean(EXTRA_USER_PAUSED_EMULATION, mIgnoreWarnings);
outState.putBoolean(EXTRA_USER_PAUSED_EMULATION, sUserPausedEmulation);
super.onSaveInstanceState(outState);
}
@@ -337,6 +341,7 @@ public final class EmulationActivity extends AppCompatActivity
mSelectedTitle = savedInstanceState.getString(EXTRA_SELECTED_TITLE);
mSelectedGameId = savedInstanceState.getString(EXTRA_SELECTED_GAMEID);
mPlatform = savedInstanceState.getInt(EXTRA_PLATFORM);
+ mIgnoreWarnings = savedInstanceState.getBoolean(EXTRA_IGNORE_WARNINGS);
sUserPausedEmulation = savedInstanceState.getBoolean(EXTRA_USER_PAUSED_EMULATION);
}
@@ -671,6 +676,16 @@ public final class EmulationActivity extends AppCompatActivity
}
}
+ public boolean isIgnoringWarnings()
+ {
+ return mIgnoreWarnings;
+ }
+
+ public void setIgnoreWarnings(boolean value)
+ {
+ mIgnoreWarnings = value;
+ }
+
public static boolean getHasUserPausedEmulation()
{
return sUserPausedEmulation;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/AlertMessage.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/AlertMessage.java
index 9aa9b8030b..9832b770c6 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/AlertMessage.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/AlertMessage.java
@@ -17,8 +17,10 @@ public final class AlertMessage extends DialogFragment
private static final String ARG_TITLE = "title";
private static final String ARG_MESSAGE = "message";
private static final String ARG_YES_NO = "yesNo";
+ private static final String ARG_IS_WARNING = "isWarning";
- public static AlertMessage newInstance(String title, String message, boolean yesNo)
+ public static AlertMessage newInstance(String title, String message, boolean yesNo,
+ boolean isWarning)
{
AlertMessage fragment = new AlertMessage();
@@ -26,6 +28,7 @@ public final class AlertMessage extends DialogFragment
args.putString(ARG_TITLE, title);
args.putString(ARG_MESSAGE, message);
args.putBoolean(ARG_YES_NO, yesNo);
+ args.putBoolean(ARG_IS_WARNING, isWarning);
fragment.setArguments(args);
return fragment;
@@ -39,6 +42,7 @@ public final class AlertMessage extends DialogFragment
String title = requireArguments().getString(ARG_TITLE);
String message = requireArguments().getString(ARG_MESSAGE);
boolean yesNo = requireArguments().getBoolean(ARG_YES_NO);
+ boolean isWarning = requireArguments().getBoolean(ARG_IS_WARNING);
setCancelable(false);
AlertDialog.Builder builder = new AlertDialog.Builder(emulationActivity,
@@ -71,6 +75,17 @@ public final class AlertMessage extends DialogFragment
NativeLibrary.NotifyAlertMessageLock();
});
}
+
+ if (isWarning)
+ {
+ builder.setNeutralButton(R.string.ignore_warning_alert_messages, (dialog, which) ->
+ {
+ emulationActivity.setIgnoreWarnings(true);
+ dialog.dismiss();
+ NativeLibrary.NotifyAlertMessageLock();
+ });
+ }
+
return builder.create();
}