package org.liberty.android.fantastischmemo.entity; import android.content.Context; import android.content.SharedPreferences; import android.preference.PreferenceManager; import org.liberty.android.fantastischmemo.common.AMPrefKeys; import org.liberty.android.fantastischmemo.modules.ForApplication; import org.liberty.android.fantastischmemo.modules.PerApplication; import javax.inject.Inject; @PerApplication public class Option { private SharedPreferences settings; private SharedPreferences.Editor editor; @Inject public Option (@ForApplication Context context) { settings = PreferenceManager.getDefaultSharedPreferences(context); editor = settings.edit(); } public boolean getEnableArabicEngine() { return settings.getBoolean(AMPrefKeys.ENABLE_THIRD_PARTY_ARABIC_KEY, true); } public void setEnableArabicEngine(boolean enable) { editor.putBoolean(AMPrefKeys.ENABLE_THIRD_PARTY_ARABIC_KEY, enable); editor.commit(); } public ButtonStyle getButtonStyle() { return ButtonStyle.parse(settings.getString(AMPrefKeys.BUTTON_STYLE_KEY, "ANKI")); } public void setButtonStyle(ButtonStyle style) { editor.putString(AMPrefKeys.BUTTON_STYLE_KEY, style.toString()); editor.commit(); } public boolean getVolumeKeyShortcut() { return settings.getBoolean(AMPrefKeys.ENABLE_VOLUME_KEY_KEY, false); } public void setVolumeKeyShortcut(boolean enable) { editor.putBoolean(AMPrefKeys.ENABLE_VOLUME_KEY_KEY, enable); editor.commit(); } public CopyToClipboard getCopyClipboard() { return CopyToClipboard.valueOf(settings.getString(AMPrefKeys.COPY_CLIPBOARD_KEY, "QUESTION")); } public void setCopyClipboard(CopyToClipboard copyToClipboard) { editor.putString(AMPrefKeys.COPY_CLIPBOARD_KEY, copyToClipboard.toString()); editor.commit(); } public DictApp getDictApp() { return DictApp.parse(settings.getString(AMPrefKeys.DICT_APP_KEY, "COLORDICT")); } public ShuffleType getShuffleType() { if (settings.getBoolean(AMPrefKeys.SHUFFLING_CARDS_KEY, false)) { return ShuffleType.LOCAL; } else { return ShuffleType.NONE; } } public SpeakingType getSpeakingType() { return SpeakingType.parse(settings.getString(AMPrefKeys.SPEECH_CONTROL_KEY, "TAP")); } public int getRecentCount() { return settings.getInt(AMPrefKeys.RECENT_COUNT_KEY, 7); } public int getQueueSize() { String size = settings.getString(AMPrefKeys.LEARN_QUEUE_SIZE_KEY, "10"); int tmpSize = Integer.parseInt(size); if(tmpSize > 0){ return tmpSize; } else { return 10; } } public boolean getEnableAnimation() { return settings.getBoolean(AMPrefKeys.ENABLE_ANIMATION_KEY, true); } public boolean getGestureEnabled() { return settings.getBoolean(AMPrefKeys.CARD_GESTURE_ENABLED, false); } public void setGestureEnabled(boolean enable) { editor.putBoolean(AMPrefKeys.CARD_GESTURE_ENABLED, enable); editor.commit(); } public int getCardPlayerIntervalBetweenQA() { return settings.getInt(AMPrefKeys.CARD_PLAYER_QA_SLEEP_INTERVAL_KEY, 1); } public int getCardPlayerIntervalBetweenCards() { return settings.getInt(AMPrefKeys.CARD_PLAYER_CARD_SLEEP_INTERVAL_KEY, 1); } public void setCardPlayerShuffleEnabled(boolean enabled) { editor.putBoolean(AMPrefKeys.CARD_PLAYER_SHUFFLE_ENABLED_KEY, enabled); editor.commit(); } public boolean getCardPlayerShuffleEnabled() { return settings.getBoolean(AMPrefKeys.CARD_PLAYER_SHUFFLE_ENABLED_KEY, false); } public void setCardPlayerRepeatEnabled(boolean enabled) { editor.putBoolean(AMPrefKeys.CARD_PLAYER_REPEAT_ENABLED_KEY, enabled); editor.commit(); } public boolean getCardPlayerRepeatEnabled() { return settings.getBoolean(AMPrefKeys.CARD_PLAYER_REPEAT_ENABLED_KEY, true); } public static enum ButtonStyle { ANYMEMO, MNEMOSYNE, ANKI; public static ButtonStyle parse(String a){ if(a.equals("MNEMOSYNE")){ return MNEMOSYNE; } else if(a.equals("ANYMEMO")){ return ANYMEMO; } else{ return ANKI; } } } public static enum DictApp { COLORDICT, FORA, BLUEDICT; public static DictApp parse(String a){ if(a.equals("FORA")){ return FORA; } else if (a.equals("BLUEDICT")) { return BLUEDICT; } else { return COLORDICT; } } } public static enum ShuffleType { NONE, LOCAL } public static enum SpeakingType { MANUAL, TAP, AUTO, AUTOTAP; public static SpeakingType parse(String a){ if(a.equals("MANUAL")){ return MANUAL; } else if(a.equals("AUTO")){ return AUTO; } else if(a.equals("AUTOTAP")){ return AUTOTAP; } else{ return TAP; } } } public static enum CopyToClipboard { DISABLED, QUESTION, ANSWER, BOTH; public static CopyToClipboard parse(String a){ if(a.equals("DISABLED")){ return DISABLED; } else if(a.equals("ANSWER")){ return ANSWER; } else if(a.equals("BOTH")){ return BOTH; } else{ return QUESTION; } } } }