package org.softeg.slartus.forpdacommon; import android.content.Context; import android.content.SharedPreferences; import android.preference.Preference; import android.preference.PreferenceManager; import android.text.TextUtils; import java.lang.reflect.Field; import java.text.SimpleDateFormat; import java.util.Date; /** * User: slinkin * Date: 03.10.11 * Time: 11:05 */ public class ExtPreferences { public static Object getPreferenceDefaultValue(Preference preference) { try { Field defaultField = Preference.class.getDeclaredField("mDefaultValue"); if (defaultField == null) return ""; defaultField.setAccessible(true); Object defaultValue = defaultField.get(preference); if (defaultValue != null) return defaultValue.toString(); } catch (Exception e) { e.printStackTrace(); } return null; } private static SimpleDateFormat s_DateTimeFormat = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss"); public static Date getDateTime(SharedPreferences prefs, String key, Date defValue) { try { String res = prefs.getString(key, defValue == null ? null : s_DateTimeFormat.format(defValue)); if (TextUtils.isEmpty(res)) return defValue; return s_DateTimeFormat.parse(res); } catch (Throwable ex) { return defValue; } } public static SharedPreferences.Editor putDateTime(SharedPreferences.Editor editor, String key, Date value) { editor.putString(key, s_DateTimeFormat.format(value)); return editor; } public static float parseFloat(SharedPreferences prefs, String key, float defValue) { try { String res = prefs.getString(key, Float.toString(defValue)); if (TextUtils.isEmpty(res)) return defValue; return Float.parseFloat(res); } catch (Throwable ex) { try { return prefs.getFloat(key, defValue); } catch (Throwable ex1) { } } return defValue; } public static int parseInt(SharedPreferences prefs, String key, int defValue) { try { String res = prefs.getString(key, Integer.toString(defValue)); if (TextUtils.isEmpty(res)) return defValue; return Integer.parseInt(res); } catch (Throwable ex) { try { return prefs.getInt(key, defValue); } catch (Throwable ex1) { } } return defValue; } public static boolean getBoolean(Context context, String key, boolean defaultValue) { SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); return preferences.getBoolean(key, defaultValue); } }