IM类app业务模块功能接口定义(二)
这一章主要分析联系人列表和联系人管理及会话界面
联系人列表
联系人列表界面展现的数据如下所示
呈现好友列表需要用android的ExpandableListView,对业务层而言需要提供一下功能接口:
/**
* 获取所有分组列表
* @return
*/
public List<GroupInfoEntity> getGroupsList();
/**
* 根据组名获取该分组下好友列表
* @param groupName
* @return
*/
public List<ContactInfoEntity> getContactsListByGroupName(String groupName);
GroupInfoEntity类属性如下
private int allNum;//总人数
private int onlineNum;//当前在线人数
private String name;//组名
ContactInfoEntity类属性如下
private String imageUrl;//头像图片
private String name;//联系人名称
private int state;//状态 在线 离线 还是离开
private int dynamic;//动态来源 QQ控件或者是个性签名
private int onlineState;//在线方式 wifi/2g/4g/pc
联系人添加这里只说下根据名称添加联系人,根据条件(年龄,性别)这些作为拓展功能可以另外写一个接口;
添加好友抽象方法如下:
/**
* 添加指定名称的好友
* @param name
*/
public void addContactByName(String name);
联系人管理
当联系人被我们成功添加进入好友列表后,我们需要聊天模块提供联系人管理功能(这块功能可以另外写一个接口去定义,有些IM是为企业定制的,好友管理权限可能掌握在管理员手里)
联系人管理模块功能如下
1,修改联系人名称
2,更改联系人所在分组
3,拉入黑名单
4,拉出黑名单
抽象方法如下
/**
* 修改联系人名称
* @param name
*/
public void reNameContact(String name);
/**
* 更改联系人所在分组
* @param name
*/
public void resetContactGroup(String name);
/**
* 拉黑好友
* @param name
*/
public void addContactToBlackList(String name);
/**
* 拉白好友
* @param name
*/
public void removeContactToBlackList(String name);
会话界面
进入会话界面会加载和该会话对象之前的会话记录
会话界面顶部显示当前总未读消息数 和 聊天对象名称
历史会话通过LISTVIEW呈现,每个item应包含如下数据信息
1,消息时间;
2,消息头像;
3,消息内容;
模块提供的方法如下
/**
* 获取和指定会话对象的消息记录
* @param name
* @return
*/
public List<HistoryMessage> getAllMessage(String name);
实体类HistoryMessage属性如下
private int id;//消息ID
private long sendTime;//发送时间
private String photoUrl;//头像地址
private String content;//内容
private boolean isFromUser;//表示这条消息是用户发出去的还是用户收到的
当用户进入会话界面后,应当把和该会话对象的未读消息清零
抽象方法如下
/**
* 指定对象的未读消息清零
* @param name
*/
public void clearUnreadMsg(String name);