package info.nightscout.utils;

import android.content.SharedPreferences;
import android.preference.PreferenceManager;

import info.nightscout.androidaps.MainApp;

/**
 * Created by mike on 17.02.2017.
 */

public class SP {
    static SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext());

    static public boolean contains(String key) {
        return sharedPreferences.contains(key);
    }

    static public String getString(int resourceID, String defaultValue) {
        return sharedPreferences.getString(MainApp.sResources.getString(resourceID), defaultValue);
    }

    static public String getString(String key, String defaultValue) {
        return sharedPreferences.getString(key, defaultValue);
    }

    static public boolean getBoolean(int resourceID, boolean defaultValue) {
        try {
            return sharedPreferences.getBoolean(MainApp.sResources.getString(resourceID), defaultValue);
        } catch (Exception e) {
            return defaultValue;
        }
    }

    static public boolean getBoolean(String key, boolean defaultValue) {
        try {
            return sharedPreferences.getBoolean(key, defaultValue);
        } catch (Exception e) {
            return defaultValue;
        }
    }

    static public Double getDouble(int resourceID, Double defaultValue) {
        return SafeParse.stringToDouble(sharedPreferences.getString(MainApp.sResources.getString(resourceID), defaultValue.toString()));
    }

    static public Double getDouble(String key, Double defaultValue) {
        return SafeParse.stringToDouble(sharedPreferences.getString(key, defaultValue.toString()));
    }

    static public int getInt(int resourceID, Integer defaultValue) {
        try {
            return sharedPreferences.getInt(MainApp.sResources.getString(resourceID), defaultValue);
        } catch (Exception e) {
            return SafeParse.stringToInt(sharedPreferences.getString(MainApp.sResources.getString(resourceID), defaultValue.toString()));
        }
    }

    static public int getInt(String key, Integer defaultValue) {
        try {
            return sharedPreferences.getInt(key, defaultValue);
        } catch (Exception e) {
            return SafeParse.stringToInt(sharedPreferences.getString(key, defaultValue.toString()));
        }
    }

    static public long getLong(int resourceID, Long defaultValue) {
        return SafeParse.stringToLong(sharedPreferences.getString(MainApp.sResources.getString(resourceID), defaultValue.toString()));
    }

    static public long getLong(String key, Long defaultValue) {
        try {
            return sharedPreferences.getLong(key, defaultValue);
        } catch (Exception e) {
            return SafeParse.stringToLong(sharedPreferences.getString(key, defaultValue.toString()));
        }
    }

    static public void putBoolean(String key, boolean value) {
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putBoolean(key, value);
        editor.apply();
    }

    static public void putBoolean(int resourceID, boolean value) {
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putBoolean(MainApp.sResources.getString(resourceID), value);
        editor.apply();
    }

    static public void putLong(String key, long value) {
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putLong(key, value);
        editor.apply();
    }

    static public void putLong(int resourceID, long value) {
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putLong(MainApp.sResources.getString(resourceID), value);
        editor.apply();
    }

    static public void putInt(String key, int value) {
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putInt(key, value);
        editor.apply();
    }

    static public void putInt(int resourceID, int value) {
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putInt(MainApp.sResources.getString(resourceID), value);
        editor.apply();
    }

    static public void putString(int resourceID, String value) {
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString(MainApp.sResources.getString(resourceID), value);
        editor.apply();
    }

    static public void putString(String key, String value) {
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString(key, value);
        editor.apply();
    }

    static public void remove(int resourceID) {
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.remove(MainApp.sResources.getString(resourceID));
        editor.apply();
    }

    static public void remove(String key) {
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.remove(key);
        editor.apply();
    }
}

@@ -2418,32 +2418,184 @@
 defaultValue) %7B%0A
+        try %7B%0A            return sharedPreferences.getLong(MainApp.sResources.getString(resourceID), defaultValue);%0A        %7D catch (Exception e) %7B%0A    
         return S
@@ -2705,32 +2705,42 @@
 e.toString()));%0A
+        %7D%0A
     %7D%0A%0A    stati

fix SP for long with string-ressource-id