summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/CheatsViewModel.java14
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatDetailsFragment.java62
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatViewHolder.java16
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatsAdapter.java2
4 files changed, 91 insertions, 3 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/CheatsViewModel.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/CheatsViewModel.java
index c2cadaf8c0..d05da7d978 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/CheatsViewModel.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/CheatsViewModel.java
@@ -2,12 +2,16 @@
package org.dolphinemu.dolphinemu.features.cheats.model;
+import androidx.lifecycle.LiveData;
+import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
public class CheatsViewModel extends ViewModel
{
private boolean mLoaded = false;
+ private final MutableLiveData<Cheat> mSelectedCheat = new MutableLiveData<>(null);
+
private PatchCheat[] mPatchCheats;
private ARCheat[] mARCheats;
private GeckoCheat[] mGeckoCheats;
@@ -62,6 +66,16 @@ public class CheatsViewModel extends ViewModel
}
}
+ public LiveData<Cheat> getSelectedCheat()
+ {
+ return mSelectedCheat;
+ }
+
+ public void setSelectedCheat(Cheat cheat)
+ {
+ mSelectedCheat.setValue(cheat);
+ }
+
public Cheat[] getPatchCheats()
{
return mPatchCheats;
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
new file mode 100644
index 0000000000..90356b63eb
--- /dev/null
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatDetailsFragment.java
@@ -0,0 +1,62 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+package org.dolphinemu.dolphinemu.features.cheats.ui;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.EditText;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+import androidx.lifecycle.LiveData;
+import androidx.lifecycle.ViewModelProvider;
+
+import org.dolphinemu.dolphinemu.R;
+import org.dolphinemu.dolphinemu.features.cheats.model.Cheat;
+import org.dolphinemu.dolphinemu.features.cheats.model.CheatsViewModel;
+
+public class CheatDetailsFragment extends Fragment
+{
+ private View mRoot;
+ private EditText mEditName;
+
+ private CheatsViewModel mViewModel;
+ private Cheat mCheat;
+
+ @Nullable
+ @Override
+ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
+ @Nullable Bundle savedInstanceState)
+ {
+ return inflater.inflate(R.layout.fragment_cheat_details, container, false);
+ }
+
+ @Override
+ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState)
+ {
+ mRoot = view.findViewById(R.id.root);
+ mEditName = view.findViewById(R.id.edit_name);
+
+ CheatsActivity activity = (CheatsActivity) requireActivity();
+ mViewModel = new ViewModelProvider(activity).get(CheatsViewModel.class);
+
+ LiveData<Cheat> selectedCheat = mViewModel.getSelectedCheat();
+ selectedCheat.observe(getViewLifecycleOwner(), this::populateFields);
+ populateFields(selectedCheat.getValue());
+ }
+
+ private void populateFields(@Nullable Cheat cheat)
+ {
+ mRoot.setVisibility(cheat == null ? View.GONE : View.VISIBLE);
+
+ if (cheat != null && cheat != mCheat)
+ {
+ mEditName.setText(cheat.getName());
+ }
+
+ mCheat = cheat;
+ }
+}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatViewHolder.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatViewHolder.java
index d3fa67905b..adaa5949a6 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatViewHolder.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatViewHolder.java
@@ -12,34 +12,46 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder;
import org.dolphinemu.dolphinemu.R;
import org.dolphinemu.dolphinemu.features.cheats.model.Cheat;
+import org.dolphinemu.dolphinemu.features.cheats.model.CheatsViewModel;
-public class CheatViewHolder extends ViewHolder implements CompoundButton.OnCheckedChangeListener
+public class CheatViewHolder extends ViewHolder
+ implements View.OnClickListener, CompoundButton.OnCheckedChangeListener
{
+ private final View mRoot;
private final TextView mName;
private final CheckBox mCheckbox;
+ private CheatsViewModel mViewModel;
private Cheat mCheat;
public CheatViewHolder(@NonNull View itemView)
{
super(itemView);
+ mRoot = itemView.findViewById(R.id.root);
mName = itemView.findViewById(R.id.text_name);
mCheckbox = itemView.findViewById(R.id.checkbox);
}
- public void bind(Cheat item)
+ public void bind(CheatsViewModel viewModel, Cheat item)
{
mCheckbox.setOnCheckedChangeListener(null);
mName.setText(item.getName());
mCheckbox.setChecked(item.getEnabled());
+ mViewModel = viewModel;
mCheat = item;
+ mRoot.setOnClickListener(this);
mCheckbox.setOnCheckedChangeListener(this);
}
+ public void onClick(View root)
+ {
+ mViewModel.setSelectedCheat(mCheat);
+ }
+
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
mCheat.setEnabled(isChecked);
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatsAdapter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatsAdapter.java
index 6193b6c52f..3638ab383f 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatsAdapter.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatsAdapter.java
@@ -34,7 +34,7 @@ public class CheatsAdapter extends RecyclerView.Adapter<CheatViewHolder>
@Override
public void onBindViewHolder(@NonNull CheatViewHolder holder, int position)
{
- holder.bind(getItemAt(position));
+ holder.bind(mViewModel, getItemAt(position));
}
@Override