package com.sudosaints.excusepro; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.preference.PreferenceManager; import com.sudosaints.excusepro.util.Logger; public class Preferences { private static final String SERVER_URL = "SERVER_URL"; private static final String IS_DEMO_DONE = "IS_DEMO_DONE"; private Context context; private Logger logger; public Preferences(Context context) { super(); this.context = context; this.logger = new Logger(context); } protected SharedPreferences getSharedPreferences(String key) { return PreferenceManager.getDefaultSharedPreferences(context); } private String getString(String key, String def) { SharedPreferences prefs = getSharedPreferences(key); String s = prefs.getString(key, def); return s; } private int getInt(String key, int def) { SharedPreferences prefs = getSharedPreferences(key); int i = Integer.parseInt(prefs.getString(key, Integer.toString(def))); return i; } private float getFloat(String key, float def) { SharedPreferences prefs = getSharedPreferences(key); float f = Float.parseFloat(prefs.getString(key, Float.toString(def))); return f; } private long getLong(String key, long def) { SharedPreferences prefs = getSharedPreferences(key); long l = Long.parseLong(prefs.getString(key, Long.toString(def))); return l; } private void setString(String key, String val) { SharedPreferences prefs = getSharedPreferences(key); Editor e = prefs.edit(); e.putString(key, val); e.commit(); } private void setBoolean(String key, boolean val) { SharedPreferences prefs = getSharedPreferences(key); Editor e = prefs.edit(); e.putBoolean(key, val); e.commit(); } private void setInt(String key, int val) { SharedPreferences prefs = getSharedPreferences(key); Editor e = prefs.edit(); e.putString(key, Integer.toString(val)); e.commit(); } private void setLong(String key, long val) { SharedPreferences prefs = getSharedPreferences(key); Editor e = prefs.edit(); e.putString(key, Long.toString(val)); e.commit(); } private boolean getBoolean(String key, boolean def) { SharedPreferences prefs = getSharedPreferences(key); boolean b = prefs.getBoolean(key, def); return b; } private int[] getIntArray(String key, String def) { String s = getString(key, def); int[] ia = new int[s.length()]; for (int i = 0; i < s.length(); i++) { ia[i] = s.charAt(i) - '0'; } return ia; } /* * Public methods to get/set prefs */ public String getServerUrl() { return getString(SERVER_URL, context.getResources().getString(R.string.server_url)); } public void setServerUrl(String serverUrl) { if(serverUrl.endsWith("/")) { serverUrl = serverUrl.substring(0, serverUrl.length() - 1); } logger.debug("Server Url is - " + serverUrl); setString(SERVER_URL, serverUrl); } public boolean getIsDemoDone() { return getBoolean(IS_DEMO_DONE, false); } public void setIsDemoDone(boolean isDemoDone) { setBoolean(IS_DEMO_DONE, isDemoDone); } }