package com.github.czyzby.lml.uedi.music.impl; import com.badlogic.gdx.Preferences; import com.github.czyzby.kiwi.util.gdx.preference.ApplicationPreferences; import com.github.czyzby.lml.uedi.preferences.impl.AbstractPreference; /** Allows to manage a boolean value. * * @author MJ */ public abstract class AbstractTogglePreference extends AbstractPreference { private boolean on; /** Uses default preferences. */ public AbstractTogglePreference() { this(ApplicationPreferences.getPreferences()); } /** @param preferences will be used to store the setting. */ public AbstractTogglePreference(final Preferences preferences) { super(preferences); on = Boolean.parseBoolean(getValue()); } @Override public String getDefault() { return String.valueOf(true); } @Override public String setValue(final String value) { on = Boolean.parseBoolean(value); return super.setValue(value); } /** @param on turns the setting on or off. */ public void setOn(final boolean on) { this.on = on; setValue(String.valueOf(on)); } /** Sets the current value to its opposite. */ public void toggle() { setOn(!on); } /** @return true if the setting is currently on, false if off. */ public boolean isOn() { return on; } }