package org.aisen.android.common.setting; import android.content.Context; import org.aisen.android.common.context.GlobalContext; import org.aisen.android.common.utils.ActivityHelper; import java.util.HashMap; import java.util.Map; import java.util.Set; public class SettingUtility { private static Map<String, Setting> settingMap; static { settingMap = new HashMap<String, Setting>(); } private SettingUtility() { } /** * 添加设置配置数据 * * @param settingsXmlName */ public static void addSettings(Context context, String settingsXmlName) { Map<String, Setting> newSettingMap = SettingsXmlParser.parseSettings(context, settingsXmlName); Set<String> keySet = newSettingMap.keySet(); for (String key : keySet) settingMap.put(key, newSettingMap.get(key)); } public static boolean getBooleanSetting(String type) { if (settingMap.containsKey(type)) return Boolean.parseBoolean(settingMap.get(type).getValue()); return false; } public static int getIntSetting(String type) { if (settingMap.containsKey(type)) return Integer.parseInt(settingMap.get(type).getValue()); return -1; } public static String getStringSetting(String type) { if (settingMap.containsKey(type)) return settingMap.get(type).getValue(); return null; } public static Setting getSetting(String type) { if (settingMap.containsKey(type)) return settingMap.get(type); return null; } public static void setPermanentSetting(String type, boolean value) { ActivityHelper.putBooleanShareData(GlobalContext.getInstance(), type, value); } public static boolean getPermanentSettingAsBool(String type, boolean def) { return ActivityHelper.getBooleanShareData(GlobalContext.getInstance(), type, settingMap.containsKey(type) ? Boolean.parseBoolean(settingMap.get(type).getValue()) : def); } public static void setPermanentSetting(String type, int value) { ActivityHelper.putIntShareData(GlobalContext.getInstance(), type, value); } public static int getPermanentSettingAsInt(String type) { return ActivityHelper.getIntShareData(GlobalContext.getInstance(), type, settingMap.containsKey(type) ? Integer.parseInt(settingMap.get(type).getValue()) : -1); } public static void setPermanentSetting(String type, String value) { ActivityHelper.putShareData(GlobalContext.getInstance(), type, value); } public static String getPermanentSettingAsStr(String type, String def) { return ActivityHelper.getShareData(GlobalContext.getInstance(), type, settingMap.containsKey(type) ? settingMap.get(type).getValue() : def); } }