package com.fastaccess.helper;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import com.fastaccess.App;
import java.util.HashMap;
import java.util.Map;
/**
* Created by kosh20111 on 18 Oct 2016, 9:29 PM
*/
public class PrefHelper {
/**
* @param key
* ( the Key to used to retrieve this data later )
* @param value
* ( any kind of primitive values )
* <p/>
* non can be null!!!
*/
public static void set(@NonNull String key, @NonNull Object value) {
if (InputHelper.isEmpty(key)) {
throw new NullPointerException("Key must not be null! (key = " + key + "), (value = " + value + ")");
}
SharedPreferences.Editor edit = PreferenceManager.getDefaultSharedPreferences(App.getInstance()).edit();
if (value instanceof String) {
edit.putString(key, (String) value);
} else if (value instanceof Integer || value instanceof Long || value instanceof Float) {
// for the sake of this app, we only need these values to be int
edit.putInt(key, Integer.parseInt(value.toString()));
} else if (value instanceof Boolean) {
edit.putBoolean(key, (boolean) value);
} else {
edit.putString(key, value.toString());
}
edit.apply();
}
@Nullable public static String getString(@NonNull String key) {
return PreferenceManager.getDefaultSharedPreferences(App.getInstance()).getString(key, null);
}
public static boolean getBoolean(@NonNull String key) {
return PreferenceManager.getDefaultSharedPreferences(App.getInstance()).getBoolean(key, false);
}
public static int getInt(@NonNull String key) {
return PreferenceManager.getDefaultSharedPreferences(App.getInstance()).getInt(key, 0);
}
public static void clearKey(@NonNull String key) {
PreferenceManager.getDefaultSharedPreferences(App.getInstance()).edit().remove(key).apply();
}
public static boolean isExist(@NonNull String key) {
return PreferenceManager.getDefaultSharedPreferences(App.getInstance()).contains(key);
}
public static void clearPrefs() {
PreferenceManager.getDefaultSharedPreferences(App.getInstance()).edit().clear().apply();
}
public static Map<String, Object> getAll() {
Map<String, Object> toBackupMap = new HashMap<>();
Map<String, ?> prefs = PreferenceManager.getDefaultSharedPreferences(App.getInstance()).getAll();
for (String key : prefs.keySet()) {
if (!InputHelper.isEmpty(key) && !key.equalsIgnoreCase("null")) {// sometimes key is null, for no fucking reason.
toBackupMap.put(key, prefs.get(key));
}
}
return toBackupMap;
}
}