package com.silencedut.knowweather.repository; import android.annotation.TargetApi; import android.content.Context; import android.content.SharedPreferences; import android.os.Build; import com.silencedut.knowweather.WeatherApplication; import java.util.Set; /** * Created by SilenceDut on 16/10/28. */ public class PreferencesUtil { private static String defaultName = PreferencesUtil.class.getSimpleName(); private static SharedPreferences getPreferences(String name) { return WeatherApplication.getContext().getSharedPreferences(name, Context.MODE_PRIVATE); } public static String getDefaultName() { return defaultName; } public static void setDefaultName(String name) { defaultName = name; } public static boolean get(String key, boolean defValue) { return get(defaultName, key, defValue); } public static int get(String key, int defValue) { return get(defaultName, key, defValue); } public static float get(String key, float defValue) { return get(defaultName, key, defValue); } public static long get(String key, long defValue) { return get(defaultName, key, defValue); } public static String get(String key, String defValue) { return get(defaultName, key, defValue); } @TargetApi(Build.VERSION_CODES.HONEYCOMB) public static Set<String> get(String key, Set<String> defValue) { return get(defaultName, key, defValue); } public static boolean get(String name, String key, boolean defValue) { return getPreferences(name).getBoolean(key, defValue); } public static int get(String name, String key, int defValue) { return getPreferences(name).getInt(key, defValue); } public static float get(String name, String key, float defValue) { return getPreferences(name).getFloat(key, defValue); } public static long get(String name, String key, long defValue) { return getPreferences(name).getLong(key, defValue); } public static String get(String name, String key, String defValue) { return getPreferences(name).getString(key, defValue); } @TargetApi(Build.VERSION_CODES.HONEYCOMB) public static Set<String> get(String name, String key, Set<String> defValue) { return getPreferences(name).getStringSet(key, defValue); } public static void put(String key, boolean value) { put(defaultName, key, value); } public static void put(String key, int value) { put(defaultName, key, value); } public static void put(String key, float value) { put(defaultName, key, value); } public static void put(String key, long value) { put(defaultName, key, value); } public static void put(String key, String value) { put(defaultName, key, value); } @TargetApi(Build.VERSION_CODES.HONEYCOMB) public static void put(String key, Set<String> value) { put(defaultName, key, value); } public static void put(String name, String key, boolean value) { getPreferences(name).edit().putBoolean(key, value).apply(); } public static void put(String name, String key, int value) { getPreferences(name).edit().putInt(key, value).apply(); } public static void put(String name, String key, float value) { getPreferences(name).edit().putFloat(key, value).apply(); } public static void put(String name, String key, long value) { getPreferences(name).edit().putLong(key, value).apply(); } private static void put(final String name, final String key, final String value) { getPreferences(name).edit().putString(key, value).apply(); } @TargetApi(Build.VERSION_CODES.HONEYCOMB) public static void put(final String name, final String key, final Set<String> value) { getPreferences(name).edit().putStringSet(key, value).apply(); } public static void remove(String key) { remove(defaultName, key); } public static void remove(String name, String key) { getPreferences(name).edit().remove(key).apply(); } public static void clear() { clear(defaultName); } public static void clear(String name) { getPreferences(name).edit().clear().apply(); } }