diff options
| author | JosJuice <josjuice@gmail.com> | 2021-08-09 19:54:52 +0200 |
|---|---|---|
| committer | JosJuice <josjuice@gmail.com> | 2021-09-16 18:48:38 +0200 |
| commit | e299be1d857001e8eaea7674e4c763b5d37e0336 (patch) | |
| tree | ea3cadd65ccfdd53ea2052eb74560c353e267340 /Source/Android/app/src/main/java | |
| parent | 883a9f8a9900db8456350123e48618497ffb961c (diff) | |
Android: Add creator and notes fields for Gecko codes
Diffstat (limited to 'Source/Android/app/src/main/java')
6 files changed, 87 insertions, 8 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 432da43ce1..24b74b489a 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 @@ -19,6 +19,16 @@ public class ARCheat extends AbstractCheat @Override public native void finalize(); + public boolean supportsCreator() + { + return false; + } + + public boolean supportsNotes() + { + return false; + } + @NonNull public native String getName(); @@ -30,7 +40,8 @@ public class ARCheat extends AbstractCheat public native boolean getEnabled(); @Override - protected native int trySetImpl(@NonNull String name, @NonNull String code); + protected native int trySetImpl(@NonNull String name, @NonNull String creator, + @NonNull String notes, @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 cca4b041d9..5dc5e80b6f 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,13 @@ public abstract class AbstractCheat implements Cheat { private Runnable mChangedCallback = null; - public int trySet(@NonNull String name, @NonNull String code) + public int trySet(@NonNull String name, @NonNull String creator, @NonNull String notes, + @NonNull String code) { if (name.isEmpty()) return TRY_SET_FAIL_NO_NAME; - int result = trySetImpl(name, code); + int result = trySetImpl(name, creator, notes, code); if (result == TRY_SET_SUCCESS) onChanged(); @@ -39,7 +40,8 @@ public abstract class AbstractCheat implements Cheat mChangedCallback.run(); } - protected abstract int trySetImpl(@NonNull String name, @NonNull String code); + protected abstract int trySetImpl(@NonNull String name, @NonNull String creator, + @NonNull String notes, @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 505bd5c026..75a3befc6f 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 @@ -13,13 +13,30 @@ public interface Cheat int TRY_SET_SUCCESS = 0; // Result codes greater than 0 represent an error on the corresponding code line (one-indexed) + boolean supportsCreator(); + + boolean supportsNotes(); + @NonNull String getName(); @NonNull + default String getCreator() + { + return ""; + } + + @NonNull + default String getNotes() + { + return ""; + } + + @NonNull String getCode(); - int trySet(@NonNull String name, @NonNull String code); + int trySet(@NonNull String name, @NonNull String creator, @NonNull String notes, + @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 6ef6a9431e..1847daa40d 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 @@ -19,10 +19,26 @@ public class GeckoCheat extends AbstractCheat @Override public native void finalize(); + public boolean supportsCreator() + { + return true; + } + + public boolean supportsNotes() + { + return true; + } + @NonNull public native String getName(); @NonNull + public native String getCreator(); + + @NonNull + public native String getNotes(); + + @NonNull public native String getCode(); public native boolean getUserDefined(); @@ -30,7 +46,8 @@ public class GeckoCheat extends AbstractCheat public native boolean getEnabled(); @Override - protected native int trySetImpl(@NonNull String name, @NonNull String code); + protected native int trySetImpl(@NonNull String name, @NonNull String creator, + @NonNull String notes, @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 8514ae00cc..52d88413dd 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 @@ -19,6 +19,16 @@ public class PatchCheat extends AbstractCheat @Override public native void finalize(); + public boolean supportsCreator() + { + return false; + } + + public boolean supportsNotes() + { + return false; + } + @NonNull public native String getName(); @@ -30,7 +40,8 @@ public class PatchCheat extends AbstractCheat public native boolean getEnabled(); @Override - protected native int trySetImpl(@NonNull String name, @NonNull String code); + protected native int trySetImpl(@NonNull String name, @NonNull String creator, + @NonNull String notes, @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 ffe86fc702..db625928f9 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 @@ -8,6 +8,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; +import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -23,6 +24,10 @@ public class CheatDetailsFragment extends Fragment { private View mRoot; private EditText mEditName; + private TextView mLabelCreator; + private EditText mEditCreator; + private TextView mLabelNotes; + private EditText mEditNotes; private EditText mEditCode; private Button mButtonEdit; private Button mButtonCancel; @@ -44,6 +49,10 @@ public class CheatDetailsFragment extends Fragment { mRoot = view.findViewById(R.id.root); mEditName = view.findViewById(R.id.edit_name); + mLabelCreator = view.findViewById(R.id.label_creator); + mEditCreator = view.findViewById(R.id.edit_creator); + mLabelNotes = view.findViewById(R.id.label_notes); + mEditNotes = view.findViewById(R.id.edit_notes); mEditCode = view.findViewById(R.id.edit_code); mButtonEdit = view.findViewById(R.id.button_edit); mButtonCancel = view.findViewById(R.id.button_cancel); @@ -74,7 +83,8 @@ public class CheatDetailsFragment extends Fragment { clearEditErrors(); - int result = mCheat.trySet(mEditName.getText().toString(), mEditCode.getText().toString()); + int result = mCheat.trySet(mEditName.getText().toString(), mEditCreator.getText().toString(), + mEditNotes.getText().toString(), mEditCode.getText().toString()); switch (result) { @@ -103,6 +113,13 @@ public class CheatDetailsFragment extends Fragment mRoot.setVisibility(cheat == null ? View.GONE : View.VISIBLE); + int creatorVisibility = cheat != null && cheat.supportsCreator() ? View.VISIBLE : View.GONE; + int notesVisibility = cheat != null && cheat.supportsNotes() ? View.VISIBLE : View.GONE; + mLabelCreator.setVisibility(creatorVisibility); + mEditCreator.setVisibility(creatorVisibility); + mLabelNotes.setVisibility(notesVisibility); + mEditNotes.setVisibility(notesVisibility); + boolean userDefined = cheat != null && cheat.getUserDefined(); mButtonEdit.setEnabled(userDefined); @@ -113,6 +130,8 @@ public class CheatDetailsFragment extends Fragment if (!isEditing && cheat != null) { mEditName.setText(cheat.getName()); + mEditCreator.setText(cheat.getCreator()); + mEditNotes.setText(cheat.getNotes()); mEditCode.setText(cheat.getCode()); } @@ -122,6 +141,8 @@ public class CheatDetailsFragment extends Fragment private void onIsEditingUpdated(boolean isEditing) { mEditName.setEnabled(isEditing); + mEditCreator.setEnabled(isEditing); + mEditNotes.setEnabled(isEditing); mEditCode.setEnabled(isEditing); mButtonEdit.setVisibility(isEditing ? View.GONE : View.VISIBLE); |
