package com.blazingfrog.misc; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.InvalidPropertiesFormatException; import java.util.Properties; public class DefaultOptions { private static Properties properties = new Properties(); private static String overrideGPS = new String("no"); private static String updateLastModified = new String("yes"); private static String minPicTime = new String("30"); private static String maxPicTime = new String("30"); private static String defaultProfileName = new String(); private final static String ROOT_PATH = Resources.getResourceDir(); private static FileOutputStream propFile_o; private static FileInputStream propFile_i; private static String file_path = ROOT_PATH + "defaultProfile.xml"; private static File defProfFile = new File(file_path); public static boolean doOverrideGPS() { readXML(); return (overrideGPS.equals("yes")) ? true : false; } public static void setOverrideGPS(boolean overrideGPS) { DefaultOptions.overrideGPS = overrideGPS ? "yes" : "no"; updateXML(); } public static boolean doUpdateLastModified() { readXML(); return (updateLastModified.equals("yes")) ? true : false; } public static void setUpdateLastModified(boolean updateLastModified) { DefaultOptions.updateLastModified = updateLastModified ? "yes" : "no"; updateXML(); } public static String getMinPicTime() { readXML(); return minPicTime; } public static void setMinPicTime(String minPicTime) { DefaultOptions.minPicTime = minPicTime; updateXML(); } public static String getMaxPicTime() { readXML(); return maxPicTime; } public static void setMaxPicTime(String maxPicTime) { DefaultOptions.maxPicTime = maxPicTime; updateXML(); } public static String getDefaultProfileName() { readXML(); return defaultProfileName; } public static void setDefaultProfileName(String defaultProfileName) { DefaultOptions.defaultProfileName = defaultProfileName; updateXML(); } private static void updateXML() { try { if (!defProfFile.exists()) properties = new Properties(); propFile_o = new FileOutputStream(defProfFile); properties.setProperty("PicTimeMin", minPicTime); properties.setProperty("PicTimeMax", maxPicTime); properties.setProperty("Profile", defaultProfileName); properties.setProperty("OverrideGPS", overrideGPS); properties.setProperty("UpdateLastModified", updateLastModified); properties.storeToXML(propFile_o, "LatiPics Default Profile", "UTF-8"); } catch (IOException e) { e.printStackTrace(); } } private static void readXML() { if (!defProfFile.exists()) { updateXML(); } try { propFile_i = new FileInputStream(file_path); properties.loadFromXML(propFile_i); overrideGPS = properties.getProperty("OverrideGPS"); // Default value for users that were using the <1.2 versions if (overrideGPS == null) { overrideGPS = "no"; } updateLastModified = properties.getProperty("UpdateLastModified"); if (updateLastModified == null) { updateLastModified = "yes"; } minPicTime = properties.getProperty("PicTimeMin"); if (minPicTime == null) { minPicTime = "30"; } maxPicTime = properties.getProperty("PicTimeMax"); if (maxPicTime == null) { maxPicTime = "0"; } defaultProfileName = properties.getProperty("Profile"); } catch (InvalidPropertiesFormatException e) { e.printStackTrace(); ConsoleFile.write("WARNING", "Created new DefaultProfile.xml"); setDefaultProfileName(UserProfile.listProfiles().get(0)); } catch (IOException e1) { e1.printStackTrace(); } } }