package com.fanxin.huangfangyi; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.content.Context; import com.fanxin.huangfangyi.db.UserDao; import com.fanxin.easeui.domain.EaseUser; import com.fanxin.easeui.model.EaseAtMessageHelper; import com.fanxin.huangfangyi.domain.RobotUser; import com.fanxin.huangfangyi.utils.PreferenceManager; public class DemoModel { UserDao dao = null; protected Context context = null; protected Map<Key,Object> valueCache = new HashMap<Key,Object>(); public DemoModel(Context ctx){ context = ctx; PreferenceManager.init(context); } public boolean saveContactList(List<EaseUser> contactList) { UserDao dao = new UserDao(context); dao.saveContactList(contactList); return true; } public Map<String, EaseUser> getContactList() { UserDao dao = new UserDao(context); return dao.getContactList(); } public void saveContact(EaseUser user){ UserDao dao = new UserDao(context); dao.saveContact(user); } /** * save current username * @param username */ public void setCurrentUserName(String username){ PreferenceManager.getInstance().setCurrentUserName(username); } public String getCurrentUsernName(){ return PreferenceManager.getInstance().getCurrentUsername(); } public Map<String, RobotUser> getRobotList(){ UserDao dao = new UserDao(context); return dao.getRobotUser(); } public boolean saveRobotList(List<RobotUser> robotList){ UserDao dao = new UserDao(context); dao.saveRobotUser(robotList); return true; } public void setSettingMsgNotification(boolean paramBoolean) { PreferenceManager.getInstance().setSettingMsgNotification(paramBoolean); valueCache.put(Key.VibrateAndPlayToneOn, paramBoolean); } public boolean getSettingMsgNotification() { Object val = valueCache.get(Key.VibrateAndPlayToneOn); if(val == null){ val = PreferenceManager.getInstance().getSettingMsgNotification(); valueCache.put(Key.VibrateAndPlayToneOn, val); } return (Boolean) (val != null?val:true); } public void setSettingMsgSound(boolean paramBoolean) { PreferenceManager.getInstance().setSettingMsgSound(paramBoolean); valueCache.put(Key.PlayToneOn, paramBoolean); } public boolean getSettingMsgSound() { Object val = valueCache.get(Key.PlayToneOn); if(val == null){ val = PreferenceManager.getInstance().getSettingMsgSound(); valueCache.put(Key.PlayToneOn, val); } return (Boolean) (val != null?val:true); } public void setSettingMsgVibrate(boolean paramBoolean) { PreferenceManager.getInstance().setSettingMsgVibrate(paramBoolean); valueCache.put(Key.VibrateOn, paramBoolean); } public boolean getSettingMsgVibrate() { Object val = valueCache.get(Key.VibrateOn); if(val == null){ val = PreferenceManager.getInstance().getSettingMsgVibrate(); valueCache.put(Key.VibrateOn, val); } return (Boolean) (val != null?val:true); } public void setSettingMsgSpeaker(boolean paramBoolean) { PreferenceManager.getInstance().setSettingMsgSpeaker(paramBoolean); valueCache.put(Key.SpakerOn, paramBoolean); } public boolean getSettingMsgSpeaker() { Object val = valueCache.get(Key.SpakerOn); if(val == null){ val = PreferenceManager.getInstance().getSettingMsgSpeaker(); valueCache.put(Key.SpakerOn, val); } return (Boolean) (val != null?val:true); } public void setDisabledGroups(List<String> groups){ if(dao == null){ dao = new UserDao(context); } List<String> list = new ArrayList<String>(); list.addAll(groups); //直接删除groups的内容,可能会有并发的错误 synchronized (list) { for(int i = 0; i < list.size(); i++){ if(EaseAtMessageHelper.get().getAtMeGroups().contains(list.get(i))){ list.remove(i); i--; } } } dao.setDisabledGroups(list); valueCache.put(Key.DisabledGroups, list); } public List<String> getDisabledGroups(){ Object val = valueCache.get(Key.DisabledGroups); if(dao == null){ dao = new UserDao(context); } if(val == null){ val = dao.getDisabledGroups(); valueCache.put(Key.DisabledGroups, val); } return (List<String>) val; } public void setDisabledIds(List<String> ids){ if(dao == null){ dao = new UserDao(context); } dao.setDisabledIds(ids); valueCache.put(Key.DisabledIds, ids); } public List<String> getDisabledIds(){ Object val = valueCache.get(Key.DisabledIds); if(dao == null){ dao = new UserDao(context); } if(val == null){ val = dao.getDisabledIds(); valueCache.put(Key.DisabledIds, val); } return (List<String>) val; } public void setGroupsSynced(boolean synced){ PreferenceManager.getInstance().setGroupsSynced(synced); } public boolean isGroupsSynced(){ return PreferenceManager.getInstance().isGroupsSynced(); } public void allowChatroomOwnerLeave(boolean value){ PreferenceManager.getInstance().setSettingAllowChatroomOwnerLeave(value); } public boolean isChatroomOwnerLeaveAllowed(){ return PreferenceManager.getInstance().getSettingAllowChatroomOwnerLeave(); } public void setDeleteMessagesAsExitGroup(boolean value) { PreferenceManager.getInstance().setDeleteMessagesAsExitGroup(value); } public boolean isDeleteMessagesAsExitGroup() { return PreferenceManager.getInstance().isDeleteMessagesAsExitGroup(); } public void setAutoAcceptGroupInvitation(boolean value) { PreferenceManager.getInstance().setAutoAcceptGroupInvitation(value); } public boolean isAutoAcceptGroupInvitation() { return PreferenceManager.getInstance().isAutoAcceptGroupInvitation(); } public void setAdaptiveVideoEncode(boolean value) { PreferenceManager.getInstance().setAdaptiveVideoEncode(value); } public boolean isAdaptiveVideoEncode() { return PreferenceManager.getInstance().isAdaptiveVideoEncode(); } enum Key{ VibrateAndPlayToneOn, VibrateOn, PlayToneOn, SpakerOn, DisabledGroups, DisabledIds } }