package com.pluscubed.plustimer.utils;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.support.annotation.Nullable;
import com.pluscubed.plustimer.BuildConfig;
public class PrefUtils {
public static final String PREF_SCRAMBLE_TEXT_SIZE_EDITTEXT =
"pref_scramble_display_size_edittext";
public static final String PREF_TIME_TEXT_SIZE_EDITTEXT =
"pref_time_display_size_edittext";
public static final String PREF_LOCK_SWIPING_CHECKBOX =
"pref_lock_swiping_checkbox";
public static final String PREF_UPDATE_TIME_LIST =
"pref_update_time_list";
public static final String PREF_PUZZLETYPES_MULTISELECTLIST =
"pref_puzzletypes_multiselectlist";
public static final String PREF_THEME_LIST =
"pref_theme_list";
private static final String PREF_INSPECTION_CHECKBOX =
"pref_inspection_checkbox";
private static final String PREF_HOLDTOSTART_CHECKBOX =
"pref_holdtostart_checkbox";
private static final String PREF_KEEPSCREENON_CHECKBOX =
"pref_keepscreenon_checkbox";
private static final String PREF_TWO_ROW_TIME_CHECKBOX =
"pref_two_row_time_checkbox";
private static final String PREF_MILLISECONDS_CHECKBOX =
"pref_milliseconds_checkbox";
private static final String PREF_SIGN_CHECKBOX =
"pref_sign_checkbox";
private static final String PREF_MONOSPACE_SCRAMBLES_CHECKBOX =
"pref_monospace_scrambles_checkbox";
private static final String PREF_LOG_IN =
"pref_login_data";
private static final String PREF_VERSION_CODE =
"pref_version_code";
private static final String PREF_WELCOME_DONE =
"pref_welcome_done";
private static final String PREF_CURRENT_PUZZLETYPE =
"pref_current_puzzle_type";
private static SharedPreferences.Editor edit(Context context) {
return getSp(context).edit();
}
private static SharedPreferences getSp(Context context) {
return PreferenceManager.getDefaultSharedPreferences(context);
}
public static void setLoginData(final Context context, String loginData) {
edit(context).putString(PREF_LOG_IN, loginData).apply();
}
@Nullable
public static String getLoginData(final Context context) {
return getSp(context).getString(PREF_LOG_IN, null);
}
public static void setCurrentPuzzleType(final Context context, String puzzletype) {
edit(context).putString(PREF_CURRENT_PUZZLETYPE, puzzletype).apply();
}
@Nullable
public static String getCurrentPuzzleType(final Context context) {
return getSp(context).getString(PREF_CURRENT_PUZZLETYPE, null);
}
public static boolean isInspectionEnabled(final Context context) {
return getSp(context).getBoolean(PREF_INSPECTION_CHECKBOX, true);
}
public static boolean isHoldToStartEnabled(final Context context) {
return getSp(context).getBoolean(PREF_HOLDTOSTART_CHECKBOX, true);
}
public static boolean isTwoRowTimeEnabled(final Context context) {
return getSp(context).getBoolean(PREF_TWO_ROW_TIME_CHECKBOX, true);
}
public static boolean isDisplayMillisecondsEnabled(final Context context) {
return getSp(context).getBoolean(PREF_MILLISECONDS_CHECKBOX, true);
}
public static boolean isKeepScreenOnEnabled(final Context context) {
return getSp(context).getBoolean(PREF_KEEPSCREENON_CHECKBOX, true);
}
public static boolean isSignEnabled(final Context context) {
return getSp(context).getBoolean(PREF_SIGN_CHECKBOX, true);
}
public static boolean isMonospaceScrambleFontEnabled(final Context context) {
return getSp(context).getBoolean(PREF_MONOSPACE_SCRAMBLES_CHECKBOX, true);
}
public static boolean isWelcomeDone(final Context context) {
return getSp(context).getBoolean(PREF_WELCOME_DONE, false);
}
public static boolean isLockSwipingEnabled(final Context context) {
return getSp(context).getBoolean(PREF_LOCK_SWIPING_CHECKBOX, false);
}
public static void markWelcomeDone(final Context context) {
edit(context).putBoolean(PREF_WELCOME_DONE, true).apply();
}
public static int getTimerTextSize(final Context context) {
return Integer.parseInt(getSp(context).getString(PREF_TIME_TEXT_SIZE_EDITTEXT, "100"));
}
public static int getScrambleTextSize(final Context context) {
return Integer.parseInt(getSp(context).getString(PREF_SCRAMBLE_TEXT_SIZE_EDITTEXT, "18"));
}
public static void saveVersionCode(final Context context) {
edit(context).putInt(PrefUtils.PREF_VERSION_CODE, BuildConfig.VERSION_CODE).apply();
}
public static int getVersionCode(final Context context) {
return getSp(context).getInt(PREF_VERSION_CODE, 10);
}
public static TimerUpdate getTimerUpdateMode(final Context context) {
switch (Integer.parseInt(getSp(context).getString(PREF_UPDATE_TIME_LIST, "0"))) {
case 0:
return TimerUpdate.ON;
case 1:
return TimerUpdate.SECONDS;
case 2:
return TimerUpdate.OFF;
default:
return TimerUpdate.ON;
}
}
public static Theme getTheme(final Context context) {
switch (Integer.parseInt(getSp(context).getString(PREF_THEME_LIST, "0"))) {
case 0:
return Theme.LIGHT;
case 1:
return Theme.DARK;
case 2:
return Theme.BLACK;
default:
return Theme.LIGHT;
}
}
public enum Theme {
LIGHT, DARK, BLACK
}
public enum TimerUpdate {
ON, SECONDS, OFF
}
}