Skip to content
Permalink
Browse files
Merge pull request #11336 from t895/material-switch
Android: Replace Checkbox with MaterialSwitch
  • Loading branch information
lioncash committed Dec 10, 2022
2 parents 48ce531 + 2555e37 commit 128c23d
Show file tree
Hide file tree
Showing 15 changed files with 159 additions and 159 deletions.
@@ -575,7 +575,7 @@ public void showOverlayControlsMenu(@NonNull View anchor)
int id = wii ? R.menu.menu_overlay_controls_wii : R.menu.menu_overlay_controls_gc;
popup.getMenuInflater().inflate(id, menu);

// Populate the checkbox value for joystick center on touch
// Populate the switch value for joystick center on touch
menu.findItem(R.id.menu_emulation_joystick_rel_center)
.setChecked(BooleanSetting.MAIN_JOYSTICK_REL_CENTER.getBoolean(mSettings));
menu.findItem(R.id.menu_emulation_rumble)
@@ -599,7 +599,7 @@ public boolean onOptionsItemSelected(MenuItem item)
{
if (item.isCheckable())
{
// Need to pass a reference to the item to set the checkbox state, since it is not done automatically
// Need to pass a reference to the item to set the switch state, since it is not done automatically
handleCheckableMenuAction(action, item);
}
else
@@ -3,9 +3,7 @@
package org.dolphinemu.dolphinemu.features.cheats.ui;

import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.lifecycle.ViewModelProvider;
@@ -31,17 +29,17 @@ public CheatViewHolder(@NonNull ListItemCheatBinding binding)

public void bind(CheatsActivity activity, CheatItem item, int position)
{
mBinding.checkbox.setOnCheckedChangeListener(null);
mBinding.cheatSwitch.setOnCheckedChangeListener(null);

mViewModel = new ViewModelProvider(activity).get(CheatsViewModel.class);
mCheat = item.getCheat();
mPosition = position;

mBinding.textName.setText(mCheat.getName());
mBinding.checkbox.setChecked(mCheat.getEnabled());
mBinding.cheatSwitch.setChecked(mCheat.getEnabled());

mBinding.root.setOnClickListener(this);
mBinding.checkbox.setOnCheckedChangeListener(this);
mBinding.cheatSwitch.setOnCheckedChangeListener(this);
}

public void onClick(View root)
@@ -53,6 +51,5 @@ public void onClick(View root)
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
mCheat.setEnabled(isChecked);
mViewModel.notifyCheatChanged(mPosition);
}
}
@@ -8,9 +8,9 @@
import org.dolphinemu.dolphinemu.features.settings.model.AbstractSetting;
import org.dolphinemu.dolphinemu.features.settings.model.Settings;

public final class InvertedCheckBoxSetting extends CheckBoxSetting
public final class InvertedSwitchSetting extends SwitchSetting
{
public InvertedCheckBoxSetting(Context context, AbstractBooleanSetting setting, int titleId,
public InvertedSwitchSetting(Context context, AbstractBooleanSetting setting, int titleId,
int descriptionId)
{
super(context, setting, titleId, descriptionId);
@@ -5,11 +5,11 @@
import org.dolphinemu.dolphinemu.features.settings.model.AdHocBooleanSetting;
import org.dolphinemu.dolphinemu.features.settings.model.Settings;

public class LogCheckBoxSetting extends CheckBoxSetting
public class LogSwitchSetting extends SwitchSetting
{
String mKey;

public LogCheckBoxSetting(String key, CharSequence title, CharSequence description)
public LogSwitchSetting(String key, CharSequence title, CharSequence description)
{
super(new AdHocBooleanSetting(Settings.FILE_LOGGER, Settings.SECTION_LOGGER_LOGS, key, false),
title, description);
@@ -17,7 +17,7 @@
public abstract class SettingsItem
{
public static final int TYPE_HEADER = 0;
public static final int TYPE_CHECKBOX = 1;
public static final int TYPE_SWITCH = 1;
public static final int TYPE_SINGLE_CHOICE = 2;
public static final int TYPE_SLIDER = 3;
public static final int TYPE_SUBMENU = 4;
@@ -8,18 +8,18 @@
import org.dolphinemu.dolphinemu.features.settings.model.AbstractSetting;
import org.dolphinemu.dolphinemu.features.settings.model.Settings;

public class CheckBoxSetting extends SettingsItem
public class SwitchSetting extends SettingsItem
{
protected AbstractBooleanSetting mSetting;

public CheckBoxSetting(Context context, AbstractBooleanSetting setting, int titleId,
public SwitchSetting(Context context, AbstractBooleanSetting setting, int titleId,
int descriptionId)
{
super(context, titleId, descriptionId);
mSetting = setting;
}

public CheckBoxSetting(AbstractBooleanSetting setting, CharSequence title,
public SwitchSetting(AbstractBooleanSetting setting, CharSequence title,
CharSequence description)
{
super(title, description);
@@ -39,7 +39,7 @@ public void setChecked(Settings settings, boolean checked)
@Override
public int getType()
{
return TYPE_CHECKBOX;
return TYPE_SWITCH;
}

@Override
@@ -30,11 +30,11 @@
import org.dolphinemu.dolphinemu.databinding.DialogSliderBinding;
import org.dolphinemu.dolphinemu.databinding.ListItemHeaderBinding;
import org.dolphinemu.dolphinemu.databinding.ListItemSettingBinding;
import org.dolphinemu.dolphinemu.databinding.ListItemSettingCheckboxBinding;
import org.dolphinemu.dolphinemu.databinding.ListItemSettingSwitchBinding;
import org.dolphinemu.dolphinemu.databinding.ListItemSubmenuBinding;
import org.dolphinemu.dolphinemu.dialogs.MotionAlertDialog;
import org.dolphinemu.dolphinemu.features.settings.model.Settings;
import org.dolphinemu.dolphinemu.features.settings.model.view.CheckBoxSetting;
import org.dolphinemu.dolphinemu.features.settings.model.view.SwitchSetting;
import org.dolphinemu.dolphinemu.features.settings.model.view.FilePicker;
import org.dolphinemu.dolphinemu.features.settings.model.view.FloatSliderSetting;
import org.dolphinemu.dolphinemu.features.settings.model.view.InputBindingSetting;
@@ -47,7 +47,6 @@
import org.dolphinemu.dolphinemu.features.settings.model.view.InputStringSetting;
import org.dolphinemu.dolphinemu.features.settings.model.view.StringSingleChoiceSetting;
import org.dolphinemu.dolphinemu.features.settings.model.view.SubmenuSetting;
import org.dolphinemu.dolphinemu.features.settings.ui.viewholder.CheckBoxSettingViewHolder;
import org.dolphinemu.dolphinemu.features.settings.ui.viewholder.FilePickerViewHolder;
import org.dolphinemu.dolphinemu.features.settings.ui.viewholder.HeaderHyperLinkViewHolder;
import org.dolphinemu.dolphinemu.features.settings.ui.viewholder.HeaderViewHolder;
@@ -59,6 +58,7 @@
import org.dolphinemu.dolphinemu.features.settings.ui.viewholder.SingleChoiceViewHolder;
import org.dolphinemu.dolphinemu.features.settings.ui.viewholder.SliderViewHolder;
import org.dolphinemu.dolphinemu.features.settings.ui.viewholder.SubmenuViewHolder;
import org.dolphinemu.dolphinemu.features.settings.ui.viewholder.SwitchSettingViewHolder;
import org.dolphinemu.dolphinemu.utils.DirectoryInitialization;
import org.dolphinemu.dolphinemu.utils.FileBrowserHelper;
import org.dolphinemu.dolphinemu.utils.Log;
@@ -100,8 +100,8 @@ public SettingViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewT
case SettingsItem.TYPE_HEADER:
return new HeaderViewHolder(ListItemHeaderBinding.inflate(inflater), this);

case SettingsItem.TYPE_CHECKBOX:
return new CheckBoxSettingViewHolder(ListItemSettingCheckboxBinding.inflate(inflater),
case SettingsItem.TYPE_SWITCH:
return new SwitchSettingViewHolder(ListItemSettingSwitchBinding.inflate(inflater),
this);

case SettingsItem.TYPE_STRING_SINGLE_CHOICE:
@@ -181,10 +181,9 @@ public void setSettings(ArrayList<SettingsItem> settings)
notifyDataSetChanged();
}

public void clearSetting(SettingsItem item, int position)
public void clearSetting(SettingsItem item)
{
item.clear(getSettings());
notifyItemChanged(position);

mView.onSettingChanged();
}
@@ -196,10 +195,9 @@ public void notifyAllSettingsChanged()
mView.onSettingChanged();
}

public void onBooleanClick(CheckBoxSetting item, int position, boolean checked)
public void onBooleanClick(SwitchSetting item, boolean checked)
{
item.setChecked(getSettings(), checked);
notifyItemChanged(position);

mView.onSettingChanged();
}

0 comments on commit 128c23d

Please sign in to comment.