package com.ztspeech.simutalk2.data; import java.util.ArrayList; import cn.ac.ia.directtrans.json.QuestionInfo; import cn.ac.ia.directtrans.json.UserInfo; import cn.ac.ia.directtrans.json.UserState; /** * �û���Ϣ������ * */ public class UserInfoList{ protected ArrayList<UserInfo> items = new ArrayList<UserInfo>(); private static UserInfoList mInstanse = null; /** * �õ��û�ȫ���û���Ϣ�б� * @return UserInfoList */ public static UserInfoList getInstanse() { if (mInstanse == null) { mInstanse = new UserInfoList(); } return mInstanse; } /** * ͨ��ID�����û���Ϣ * @param id �û�ID * @return �û���Ϣ cn.ac.ia.directtrans.json.UserInfo */ public UserInfo findById(int id){ synchronized (this){ int nSize = items.size(); for( int i=0; i< nSize; i++){ UserInfo info = items.get(i); if(info.id == id){ return info; } } } return null; } /** * �����û����û���½�һ�� * @param id �û�id * @return �û���Ϣ */ public UserInfo findAndNewById( int id){ UserInfo user = findById(id); if(user == null){ user = new UserInfo(); user.id = id; this.add(user); } return user; } private void add(UserInfo info){ synchronized (this){ items.add(info); } } public void updateUserName(int id, String name){ UserInfo user = findAndNewById(id); user.name = name; } public void updateUseInfo(int id, String name, String sPhoto){ UserInfo user = findAndNewById(id); user.name = name; user.photo= sPhoto; } /** * �����û���Ϣ * @param data UserState */ public void update(UserState data){ UserInfo user = findAndNewById((int) data.id); user.photo = data.photo; user.name = data.name; } /** * �����û���Ϣ * @param data FriendData */ public void update(FriendData data){ UserInfo user = findAndNewById((int) data.id); user.photo = data.photoId; user.name = data.name; } /** * �����û���Ϣ * @param data QuestionInfo */ public void update(QuestionInfo data){ UserInfo user = findAndNewById(data.senderId); user.photo = data.photo; user.name = data.senderName; if( data.sId != 0) { updateUseInfo(data.sId, data.sName, data.sPhoto); } } /** * �����û���Ƭ��Ϣ * @param id �û�id * @param photoId ��Ƭid */ public void updatePhoto(int id, String photoId){ UserInfo user = findAndNewById(id); user.photo = photoId; } }