package com.mogujie.tt.imlib; import com.mogujie.tt.imlib.db.IMDbManager; import com.mogujie.tt.log.Logger; public class IMConfigurationManager extends IMManager { private static IMConfigurationManager inst; private Logger logger = Logger.getLogger(IMConfigurationManager.class); public static IMConfigurationManager instance() { synchronized (IMConfigurationManager.class) { if (inst == null) { inst = new IMConfigurationManager(); } return inst; } } //todo eric use cache, don't read it from db everytime // private Map<String, Map<String, String>> cache = new HashMap<String, Map<String,String>>(); // // String cacheGet(String category, String key) { // // } public String get(String category, String key, String defaultValue) { logger.d("config#get -> category:%s, key:%s, defaultValue:%s", category, key, defaultValue); // String value = cacheGet(category, key); // if (value != null) { // return value; // } // logger.d("config#no cache"); String value = IMDbManager.instance(ctx).getConfiguration(category, key); logger.d("config#return value:%s", value); return value == null ? defaultValue : value; } public boolean getBoolean(String category, String key, boolean defaultValue) { String value = get(category, key, booleanKey(defaultValue)); if (value.equals("0")) { return false; } else { return true; } } public void set(String category, String key, String value) { logger.d("config#set -> category:%s, key:%s, value:%s", category, key, value); IMDbManager.instance(ctx).updateConfiguration(category, key, value); } public void setBoolean(String category, String key, boolean value) { logger.d("config#set -> category:%s, key:%s, value:%s", category, key, value); IMDbManager.instance(ctx).updateConfiguration(category, key, booleanKey(value)); } public static String booleanKey(boolean value) { if (value) { return "1"; } else { return "0"; } } }