/** * Copyright (C) 2013-2014 EaseMob Technologies. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.easemob.applib.model; /** * UI Demo HX Model implementation */ import java.util.HashMap; import java.util.List; import java.util.Map; import com.easemob.applib.utils.HXPreferenceUtils; import com.easemob.chatuidemo.db.UserDao; import android.content.Context; import android.content.SharedPreferences; import android.preference.PreferenceManager; /** * HuanXin default SDK Model implementation * @author easemob * */ public class DefaultHXSDKModel extends HXSDKModel{ private static final String PREF_USERNAME = "username"; private static final String PREF_PWD = "pwd"; UserDao dao = null; protected Context context = null; protected Map<Key,Object> valueCache = new HashMap<Key,Object>(); public DefaultHXSDKModel(Context ctx){ context = ctx; HXPreferenceUtils.init(context); } @Override public void setSettingMsgNotification(boolean paramBoolean) { HXPreferenceUtils.getInstance().setSettingMsgNotification(paramBoolean); valueCache.put(Key.VibrateAndPlayToneOn, paramBoolean); } @Override public boolean getSettingMsgNotification() { Object val = valueCache.get(Key.VibrateAndPlayToneOn); if(val == null){ val = HXPreferenceUtils.getInstance().getSettingMsgNotification(); valueCache.put(Key.VibrateAndPlayToneOn, val); } return (Boolean) (val != null?val:true); } @Override public void setSettingMsgSound(boolean paramBoolean) { HXPreferenceUtils.getInstance().setSettingMsgSound(paramBoolean); valueCache.put(Key.PlayToneOn, paramBoolean); } @Override public boolean getSettingMsgSound() { Object val = valueCache.get(Key.PlayToneOn); if(val == null){ val = HXPreferenceUtils.getInstance().getSettingMsgSound(); valueCache.put(Key.PlayToneOn, val); } return (Boolean) (val != null?val:true); } @Override public void setSettingMsgVibrate(boolean paramBoolean) { HXPreferenceUtils.getInstance().setSettingMsgVibrate(paramBoolean); valueCache.put(Key.VibrateOn, paramBoolean); } @Override public boolean getSettingMsgVibrate() { Object val = valueCache.get(Key.VibrateOn); if(val == null){ val = HXPreferenceUtils.getInstance().getSettingMsgVibrate(); valueCache.put(Key.VibrateOn, val); } return (Boolean) (val != null?val:true); } @Override public void setSettingMsgSpeaker(boolean paramBoolean) { HXPreferenceUtils.getInstance().setSettingMsgSpeaker(paramBoolean); valueCache.put(Key.SpakerOn, paramBoolean); } @Override public boolean getSettingMsgSpeaker() { Object val = valueCache.get(Key.SpakerOn); if(val == null){ val = HXPreferenceUtils.getInstance().getSettingMsgSpeaker(); valueCache.put(Key.SpakerOn, val); } return (Boolean) (val != null?val:true); } @Override public boolean getUseHXRoster() { return false; } @Override public boolean saveHXId(String hxId) { SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); return preferences.edit().putString(PREF_USERNAME, hxId).commit(); } @Override public String getHXId() { SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); return preferences.getString(PREF_USERNAME, null); } @Override public boolean savePassword(String pwd) { SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); return preferences.edit().putString(PREF_PWD, pwd).commit(); } @Override public String getPwd() { SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); return preferences.getString(PREF_PWD, null); } @Override public String getAppProcessName() { return null; } public void setDisabledGroups(List<String> groups){ if(dao == null){ dao = new UserDao(context); } dao.setDisabledGroups(groups); valueCache.put(Key.DisabledGroups, groups); } 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 allowChatroomOwnerLeave(boolean value){ HXPreferenceUtils.getInstance().setSettingAllowChatroomOwnerLeave(value); } public boolean isChatroomOwnerLeaveAllowed(){ return HXPreferenceUtils.getInstance().getSettingAllowChatroomOwnerLeave(); } public void setGroupsSynced(boolean synced){ HXPreferenceUtils.getInstance().setGroupsSynced(synced); } public boolean isGroupsSynced(){ return HXPreferenceUtils.getInstance().isGroupsSynced(); } public void setContactSynced(boolean synced){ HXPreferenceUtils.getInstance().setContactSynced(synced); } public boolean isContactSynced(){ return HXPreferenceUtils.getInstance().isContactSynced(); } public void setBlacklistSynced(boolean synced){ HXPreferenceUtils.getInstance().setBlacklistSynced(synced); } public boolean isBacklistSynced(){ return HXPreferenceUtils.getInstance().isBacklistSynced(); } enum Key{ VibrateAndPlayToneOn, VibrateOn, PlayToneOn, SpakerOn, DisabledGroups, DisabledIds } }