package Abstract;
import android.content.SharedPreferences;
import android.os.Environment;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.Map;
import misc.tracerengine;
/**
* Created by tiki on 01/01/2017.
*/
public class load_parameters {
static String mytag="load_parameters";
public static Boolean loadSharedPreferencesFromFile(File src, SharedPreferences.Editor SP_prefEditor, tracerengine Tracer) {
Boolean result= false;
ObjectInputStream input = null;
try {
input = new ObjectInputStream(new FileInputStream(src));
SP_prefEditor.clear();
Map<String, ?> entries = (Map<String, ?>) input.readObject();
for (Map.Entry<String, ?> entry : entries.entrySet()) {
Object v = entry.getValue();
String key = entry.getKey();
Tracer.i(mytag, "Loading pref : " + key + " -> " + v.toString());
if (v instanceof Boolean)
SP_prefEditor.putBoolean(key, (Boolean) v);
else if (v instanceof Float)
SP_prefEditor.putFloat(key, (Float) v);
else if (v instanceof Integer)
SP_prefEditor.putInt(key, (Integer) v);
else if (v instanceof Long)
SP_prefEditor.putLong(key, (Long) v);
else if (v instanceof String)
SP_prefEditor.putString(key, (String) v);
}
SP_prefEditor.commit();
result=true;
} catch (IOException e) {
Tracer.e(mytag, "Can't load preferences file");
Tracer.e(mytag, e.toString());
} catch (ClassNotFoundException e) {
Tracer.e(mytag, "Can't load preferences file");
Tracer.e(mytag, e.toString());
} finally {
try {
if (input != null) {
input.close();
}
} catch (IOException ex) {
Tracer.e(mytag, "Can't load preferences file");
Tracer.e(mytag, ex.toString());
}
}
return result;
}
public static void load_preferences(SharedPreferences SP_params, SharedPreferences.Editor SP_prefEditor) {
//Load default value to avoid crash.
String currlogpath = SP_params.getString("LOGNAME", "");
if (currlogpath.equals("")) {
//Not yet existing prefs : Configure debugging by default, to configure Tracer
currlogpath = Environment.getExternalStorageDirectory() + "/domodroid/.log/";
SP_prefEditor.putString("LOGPATH", currlogpath);
SP_prefEditor.putString("LOGNAME", "Domodroid.txt");
SP_prefEditor.putBoolean("SYSTEMLOG", false);
SP_prefEditor.putBoolean("TEXTLOG", false);
SP_prefEditor.putBoolean("SCREENLOG", false);
SP_prefEditor.putBoolean("LOGCHANGED", true);
SP_prefEditor.putBoolean("LOGAPPEND", false);
//set other default value
SP_prefEditor.putBoolean("twocol_lanscape", true);
SP_prefEditor.putBoolean("twocol_portrait", true);
} else {
SP_prefEditor.putBoolean("LOGCHANGED", true); //To force Tracer to consider current settings
}
//prefEditor.putBoolean("SYSTEMLOG", false); // For tests : no system logs....
SP_prefEditor.putBoolean("SYSTEMLOG", true); // For tests : with system logs....
SP_prefEditor.commit();
}
}