summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2021-08-09 15:24:32 +0200
committerJosJuice <josjuice@gmail.com>2021-09-16 18:48:38 +0200
commit883a9f8a9900db8456350123e48618497ffb961c (patch)
tree6823cef95d45a6ad0a93061f84d5566d9dbf9155 /Source/Android/app/src/main/java
parentfc6c31c3db77dcb04473378f27e24283131b6052 (diff)
Android: Allow viewing/editing the actual codes
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/ARCheat.java5
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/AbstractCheat.java6
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/Cheat.java8
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/GeckoCheat.java5
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/PatchCheat.java5
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatDetailsFragment.java18
6 files changed, 38 insertions, 9 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/ARCheat.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/ARCheat.java
index bed39c2dbd..432da43ce1 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/ARCheat.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/ARCheat.java
@@ -22,12 +22,15 @@ public class ARCheat extends AbstractCheat
@NonNull
public native String getName();
+ @NonNull
+ public native String getCode();
+
public native boolean getUserDefined();
public native boolean getEnabled();
@Override
- protected native int trySetImpl(@NonNull String name);
+ protected native int trySetImpl(@NonNull String name, @NonNull String code);
@Override
protected native void setEnabledImpl(boolean enabled);
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/AbstractCheat.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/AbstractCheat.java
index 60391895c7..cca4b041d9 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/AbstractCheat.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/AbstractCheat.java
@@ -9,12 +9,12 @@ public abstract class AbstractCheat implements Cheat
{
private Runnable mChangedCallback = null;
- public int trySet(@NonNull String name)
+ public int trySet(@NonNull String name, @NonNull String code)
{
if (name.isEmpty())
return TRY_SET_FAIL_NO_NAME;
- int result = trySetImpl(name);
+ int result = trySetImpl(name, code);
if (result == TRY_SET_SUCCESS)
onChanged();
@@ -39,7 +39,7 @@ public abstract class AbstractCheat implements Cheat
mChangedCallback.run();
}
- protected abstract int trySetImpl(@NonNull String name);
+ protected abstract int trySetImpl(@NonNull String name, @NonNull String code);
protected abstract void setEnabledImpl(boolean enabled);
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/Cheat.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/Cheat.java
index baf8ebb5be..505bd5c026 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/Cheat.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/Cheat.java
@@ -7,13 +7,19 @@ import androidx.annotation.Nullable;
public interface Cheat
{
+ int TRY_SET_FAIL_CODE_MIXED_ENCRYPTION = -3;
+ int TRY_SET_FAIL_NO_CODE_LINES = -2;
int TRY_SET_FAIL_NO_NAME = -1;
int TRY_SET_SUCCESS = 0;
+ // Result codes greater than 0 represent an error on the corresponding code line (one-indexed)
@NonNull
String getName();
- int trySet(@NonNull String name);
+ @NonNull
+ String getCode();
+
+ int trySet(@NonNull String name, @NonNull String code);
boolean getUserDefined();
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/GeckoCheat.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/GeckoCheat.java
index 06815d1fe9..6ef6a9431e 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/GeckoCheat.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/GeckoCheat.java
@@ -22,12 +22,15 @@ public class GeckoCheat extends AbstractCheat
@NonNull
public native String getName();
+ @NonNull
+ public native String getCode();
+
public native boolean getUserDefined();
public native boolean getEnabled();
@Override
- protected native int trySetImpl(@NonNull String name);
+ protected native int trySetImpl(@NonNull String name, @NonNull String code);
@Override
protected native void setEnabledImpl(boolean enabled);
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/PatchCheat.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/PatchCheat.java
index b4e0ee3e53..8514ae00cc 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/PatchCheat.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/PatchCheat.java
@@ -22,12 +22,15 @@ public class PatchCheat extends AbstractCheat
@NonNull
public native String getName();
+ @NonNull
+ public native String getCode();
+
public native boolean getUserDefined();
public native boolean getEnabled();
@Override
- protected native int trySetImpl(@NonNull String name);
+ protected native int trySetImpl(@NonNull String name, @NonNull String code);
@Override
protected native void setEnabledImpl(boolean enabled);
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatDetailsFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatDetailsFragment.java
index 3a61b2e4b7..ffe86fc702 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatDetailsFragment.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatDetailsFragment.java
@@ -23,6 +23,7 @@ public class CheatDetailsFragment extends Fragment
{
private View mRoot;
private EditText mEditName;
+ private EditText mEditCode;
private Button mButtonEdit;
private Button mButtonCancel;
private Button mButtonOk;
@@ -43,6 +44,7 @@ public class CheatDetailsFragment extends Fragment
{
mRoot = view.findViewById(R.id.root);
mEditName = view.findViewById(R.id.edit_name);
+ mEditCode = view.findViewById(R.id.edit_code);
mButtonEdit = view.findViewById(R.id.button_edit);
mButtonCancel = view.findViewById(R.id.button_cancel);
mButtonOk = view.findViewById(R.id.button_ok);
@@ -65,13 +67,14 @@ public class CheatDetailsFragment extends Fragment
private void clearEditErrors()
{
mEditName.setError(null);
+ mEditCode.setError(null);
}
private void onOkClicked(View view)
{
clearEditErrors();
- int result = mCheat.trySet(mEditName.getText().toString());
+ int result = mCheat.trySet(mEditName.getText().toString(), mEditCode.getText().toString());
switch (result)
{
@@ -80,7 +83,16 @@ public class CheatDetailsFragment extends Fragment
mViewModel.setIsEditing(false);
break;
case Cheat.TRY_SET_FAIL_NO_NAME:
- mEditName.setError(getText(R.string.cheats_error_no_name));
+ mEditName.setError(getString(R.string.cheats_error_no_name));
+ break;
+ case Cheat.TRY_SET_FAIL_NO_CODE_LINES:
+ mEditCode.setError(getString(R.string.cheats_error_no_code_lines));
+ break;
+ case Cheat.TRY_SET_FAIL_CODE_MIXED_ENCRYPTION:
+ mEditCode.setError(getString(R.string.cheats_error_mixed_encryption));
+ break;
+ default:
+ mEditCode.setError(getString(R.string.cheats_error_on_line, result));
break;
}
}
@@ -101,6 +113,7 @@ public class CheatDetailsFragment extends Fragment
if (!isEditing && cheat != null)
{
mEditName.setText(cheat.getName());
+ mEditCode.setText(cheat.getCode());
}
mCheat = cheat;
@@ -109,6 +122,7 @@ public class CheatDetailsFragment extends Fragment
private void onIsEditingUpdated(boolean isEditing)
{
mEditName.setEnabled(isEditing);
+ mEditCode.setEnabled(isEditing);
mButtonEdit.setVisibility(isEditing ? View.GONE : View.VISIBLE);
mButtonCancel.setVisibility(isEditing ? View.VISIBLE : View.GONE);