NIMSDK-AOS  9.19.0
ChatRoomMember.java
浏览该文件的文档.
1 package com.netease.nimlib.sdk.chatroom.model;
2 
3 import android.os.Parcel;
4 import android.os.Parcelable;
5 
7 import com.netease.nimlib.session.MsgHelper;
8 
9 import java.io.Serializable;
10 import java.util.Map;
11 
12 /**
13  * 聊天室成员信息
14  */
15 public class ChatRoomMember implements Serializable,Parcelable {
16  private String roomId; // 聊天室id
17  private String account; // 成员账号
18  private MemberType type; // 成员类型:主要分为游客和非游客,非游客又分成受限用户、普通用户、创建者、管理员;
19  private int memberLevel; // 成员级别:大于等于0表示用户开发者可以自定义的级别
20 
21  /// 进入聊天室时提交
22  private String nick; // 聊天室内的昵称字段,预留字段,可从NimUserInfo中取,也可以由用户进聊天室时提交。
23  private String avatar; // 聊天室内的头像,预留字段,可从NimUserInfo中取avatar,可以由用户进聊天室时提交。
24  private Map<String, Object> extension; // 开发者扩展字段,长度限制4k,可以由用户进聊天室时提交。
25 
26  // 仅成员在线时有效
27  private boolean isOnline; // 成员是否处于在线状态,仅特殊成员才可能离线,对游客/匿名用户而言只能是在线。
28  private boolean inBlackList;// 是否在黑名单中
29  private boolean isMuted; // 是禁言用户
30  private boolean isValid; // 记录有效标记为
31  private long enterTime; // 进入聊天室的时间点,对于离线成员该字段为空
32  private long updateTime; // 固定成员的记录更新时间,用于固定成员列表的排列查询
33  private boolean isTempMuted; // 是否临时禁言
34  private long tempMuteDuration; // 临时禁言的解除时长,单位秒
35  private String tags; // 用户标签
36  private String notifyTargetTags;// 通知目标标签
37 
38  public ChatRoomMember() {
39  }
40 
41  /**
42  * 获取聊天室id
43  * @return 聊天室id
44  */
45  public String getRoomId() {
46  return roomId;
47  }
48 
49  /**
50  * 获取成员帐号
51  * @return 成员account
52  */
53  public String getAccount() {
54  return account;
55  }
56 
57  /**
58  * 获取成员类型
59  * 成员类型:主要分为游客和非游客。
60  * 非游客又分成受限用户、普通用户、创建者、管理员;
61  * @return 成员类型
62  */
64  return type;
65  }
66 
67  /**
68  * 获取成员级别
69  * 大于等于0表示用户开发者可以自定义的级别
70  * @return 成员级别
71  */
72  public int getMemberLevel() {
73  return memberLevel;
74  }
75 
76  /**
77  * 获取昵称
78  * 可从NimUserInfo中取,也可以由用户进聊天室时提交。
79  * @return 昵称
80  */
81  public String getNick() {
82  return nick;
83  }
84 
85  /**
86  * 获取头像
87  * 可从NimUserInfo中取avatar,可以由用户进聊天室时提交。
88  * @return 头像
89  */
90  public String getAvatar() {
91  return avatar;
92  }
93 
94  /**
95  * 获取扩展字段
96  * 长度限制4k,可以由用户进聊天室时提交。
97  * @return 返回扩展字段
98  */
99  public Map<String, Object> getExtension() {
100  return extension;
101  }
102 
103  /**
104  * 获取进入聊天室时间
105  * 对于离线成员该字段为空
106  * @return 进入聊天室时间
107  */
108  public long getEnterTime() {
109  return enterTime;
110  }
111 
112  /**
113  * 判断用户是否处于在线状态
114  * 仅特殊成员才可能离线,对游客/匿名用户而言只能是在线。
115  * @return 是否在线
116  */
117  public boolean isOnline() {
118  return isOnline;
119  }
120 
121  /**
122  * 判断用户是否在黑名单中
123  * @return 是否在黑名单中
124  */
125  public boolean isInBlackList() {
126  return inBlackList;
127  }
128 
129  /**
130  * 判断用户是否被禁言
131  * @return 是否被禁言
132  */
133  public boolean isMuted() {
134  return isMuted;
135  }
136 
137  /**
138  * 判断是否有效
139  * @return 是否有效
140  */
141  public boolean isValid() {
142  return isValid;
143  }
144 
145  /**
146  * 设置聊天室id
147  * @param roomId 聊天室id
148  */
149  public void setRoomId(String roomId) {
150  this.roomId = roomId;
151  }
152 
153  /**
154  * 设置用户帐号
155  * @param account 用户帐号
156  */
157  public void setAccount(String account) {
158  this.account = account;
159  }
160 
161  /**
162  * 设置成员类型
163  * @param type 成员类型
164  */
165  public void setMemberType(MemberType type) {
166  this.type = type;
167  }
168 
169  /**
170  * 设置成员等级
171  * @param memberLevel 成员等级
172  */
173  public void setMemberLevel(int memberLevel) {
174  this.memberLevel = memberLevel;
175  }
176 
177  /**
178  * 设置成员昵称
179  * @param nick 昵称
180  */
181  public void setNick(String nick) {
182  this.nick = nick;
183  }
184 
185  /**
186  * 设置成员头像
187  * @param avatar 头像
188  */
189  public void setAvatar(String avatar) {
190  this.avatar = avatar;
191  }
192 
193  /**
194  * 设置扩展字段
195  * @param extension 扩展字段
196  */
197  public void setExtension(Map<String, Object> extension) {
198  this.extension = extension;
199  }
200 
201  /**
202  * 设置在线状态
203  * @param online 在线状态
204  */
205  public void setOnline(boolean online) {
206  this.isOnline = online;
207  }
208 
209  /**
210  * 设置进入聊天室时间
211  * @param enterTime 进入聊天室时间
212  */
213  public void setEnterTime(long enterTime) {
214  this.enterTime = enterTime;
215  }
216 
217  /**
218  * 设置是否在黑名单中
219  * @param inBlackList 是否设置为黑名单
220  */
221  public void setInBlackList(boolean inBlackList) {
222  this.inBlackList = inBlackList;
223  }
224 
225  /**
226  * 设置是否禁言
227  * @param muted 是否禁言
228  */
229  public void setMuted(boolean muted) {
230  this.isMuted = muted;
231  }
232 
233  /**
234  * 设置是否有效
235  * @param valid 是否有效
236  */
237  public void setValid(boolean valid) {
238  this.isValid = valid;
239  }
240 
241  /**
242  * 获取固定成员的记录更新时间,用于固定成员列表的排列查询
243  * @return 更新时间
244  */
245  public long getUpdateTime() {
246  return updateTime;
247  }
248 
249  /**
250  * 设置固定成员的更新时间
251  * @param updateTime 更新时间
252  */
253  public void setUpdateTime(long updateTime) {
254  this.updateTime = updateTime;
255  }
256 
257 
258  /**
259  * 判断用户是否被临时禁言
260  * @return 是否被临时禁言
261  */
262  public boolean isTempMuted() {
263  return isTempMuted;
264  }
265 
266  /**
267  * 设置是否临时禁言
268  * @param tempMuted 是否临时禁言
269  */
270  public void setTempMuted(boolean tempMuted) {
271  isTempMuted = tempMuted;
272  }
273 
274  /**
275  * 获取临时禁言解除时长,单位秒
276  * @return 临时禁言的解除时长,单位秒
277  */
278  public long getTempMuteDuration() {
279  return tempMuteDuration;
280  }
281 
282  /**
283  * 设置临时禁言解除时长。
284  * 若需要设置临时禁言,请使用{@link com.netease.nimlib.sdk.chatroom.ChatRoomService#markChatRoomTempMute(boolean, long, MemberOption)}
285  * @param tempMuteDuration 解除时长,单位秒
286  */
287  public void setTempMuteDuration(long tempMuteDuration) {
288  this.tempMuteDuration = tempMuteDuration;
289  }
290 
291  /**
292  * 查询用户标签
293  */
294  public String getTags() {
295  return tags;
296  }
297 
298  /**
299  * 设置用户标签
300  */
301  public void setTags(String tags) {
302  this.tags = tags;
303  }
304 
305  /**
306  * 查询通知目标标签
307  */
308  public String getNotifyTargetTags() {
309  return notifyTargetTags;
310  }
311 
312  /**
313  * 设置通知目标标签
314  */
315  public void setNotifyTargetTags(String notifyTargetTags) {
316  this.notifyTargetTags = notifyTargetTags;
317  }
318 
319  /**
320  * ********************************** 序列化 **********************************
321  */
322 
323  protected ChatRoomMember(Parcel in) {
324  roomId = in.readString();
325  account = in.readString();
326  type = MemberType.typeOfValue(in.readInt());
327  memberLevel = in.readInt();
328 
329  nick = in.readString();
330  avatar = in.readString();
331  setExtension(MsgHelper.getMapFromJsonString(in.readString()));
332 
333  isOnline = in.readByte() == 0x01;
334  inBlackList = in.readByte() == 0x01;
335  isMuted = in.readByte() == 0x01;
336  isValid = in.readByte() == 0x01;
337  enterTime = in.readLong();
338  updateTime = in.readLong();
339  isTempMuted = in.readByte() == 0x01;
340  tempMuteDuration = in.readLong();
341  }
342 
343  @Override
344  public int describeContents() {
345  return 0;
346  }
347 
348  @Override
349  public void writeToParcel(Parcel dest, int flags) {
350  dest.writeString(roomId);
351  dest.writeString(account);
352  dest.writeInt(type.getValue());
353  dest.writeInt(memberLevel);
354 
355  dest.writeString(nick);
356  dest.writeString(avatar);
357  dest.writeString(MsgHelper.getJsonStringFromMap(getExtension()));
358 
359  dest.writeByte(isOnline ? (byte) 0x01 : 0x00);
360  dest.writeByte(inBlackList ? (byte) 0x01 : 0x00);
361  dest.writeByte(isMuted ? (byte) 0x01 : 0x00);
362  dest.writeByte(isValid ? (byte) 0x01 : 0x00);
363  dest.writeLong(enterTime);
364  dest.writeLong(updateTime);
365  dest.writeByte(isTempMuted ? (byte) 0x01 : 0x00);
366  dest.writeLong(tempMuteDuration);
367  }
368 
369  public static final Creator<ChatRoomMember> CREATOR = new Creator<ChatRoomMember>() {
370  @Override
371  public ChatRoomMember createFromParcel(Parcel in) {
372  return new ChatRoomMember(in);
373  }
374 
375  @Override
376  public ChatRoomMember[] newArray(int size) {
377  return new ChatRoomMember[size];
378  }
379  };
380 }
void setAccount(String account)
设置用户帐号
static final Creator< ChatRoomMember > CREATOR
MemberType getMemberType()
获取成员类型 成员类型:主要分为游客和非游客。 非游客又分成受限用户、普通用户、创建者、管理员; ...
void setMuted(boolean muted)
设置是否禁言
void setExtension(Map< String, Object > extension)
设置扩展字段
void setInBlackList(boolean inBlackList)
设置是否在黑名单中
void setNotifyTargetTags(String notifyTargetTags)
设置通知目标标签
boolean isMuted()
判断用户是否被禁言
long getTempMuteDuration()
获取临时禁言解除时长,单位秒
void setNick(String nick)
设置成员昵称
void setTempMuteDuration(long tempMuteDuration)
设置临时禁言解除时长。 若需要设置临时禁言,请使用com.netease.nimlib.sdk.chatroom.ChatRoomService#mark...
void setTags(String tags)
设置用户标签
void setOnline(boolean online)
设置在线状态
long getEnterTime()
获取进入聊天室时间 对于离线成员该字段为空
void setRoomId(String roomId)
设置聊天室id
int getMemberLevel()
获取成员级别 大于等于0表示用户开发者可以自定义的级别
String getAvatar()
获取头像 可从NimUserInfo中取avatar,可以由用户进聊天室时提交。
void setValid(boolean valid)
设置是否有效
void setEnterTime(long enterTime)
设置进入聊天室时间
void setMemberLevel(int memberLevel)
设置成员等级
boolean isTempMuted()
判断用户是否被临时禁言
String getNick()
获取昵称 可从NimUserInfo中取,也可以由用户进聊天室时提交。
boolean isOnline()
判断用户是否处于在线状态 仅特殊成员才可能离线,对游客/匿名用户而言只能是在线。
void setAvatar(String avatar)
设置成员头像
ChatRoomMember(Parcel in)
********************************** 序列化 **********************************
String getNotifyTargetTags()
查询通知目标标签
void setTempMuted(boolean tempMuted)
设置是否临时禁言
boolean isInBlackList()
判断用户是否在黑名单中
long getUpdateTime()
获取固定成员的记录更新时间,用于固定成员列表的排列查询
void setMemberType(MemberType type)
设置成员类型
void setUpdateTime(long updateTime)
设置固定成员的更新时间
Map< String, Object > getExtension()
获取扩展字段 长度限制4k,可以由用户进聊天室时提交。