1package com.netease.nimlib.sdk.qchat.param;
3import android.util.Log;
4import androidx.annotation.NonNull;
5import com.netease.nimlib.BuildConfig;
6import com.netease.nimlib.qchat.model.QChatSystemNotificationImpl;
7import com.netease.nimlib.sdk.qchat.enums.QChatSystemMessageToType;
8import com.netease.nimlib.sdk.qchat.enums.QChatSystemNotificationType;
9import com.netease.nimlib.sdk.qchat.model.QChatSystemNotification;
10import com.netease.nimlib.util.StringUtil;
11import java.util.ArrayList;
20 private static final String TAG =
"SendSystemNotification";
26 private final Long serverId;
30 private final Long channelId;
34 private final List<String> toAccids;
42 private String attach;
46 private Map<String, Object> extension;
50 private Integer status;
54 private Map<String, Object> pushPayload;
58 private String pushContent;
63 private boolean persistEnable =
false;
67 private boolean pushEnable =
false;
71 private boolean needBadge =
true;
75 private boolean needPushNick =
true;
80 private boolean isRouteEnable =
true;
95 private final Integer toType;
103 private final String uuid;
146 this.serverId = serverId;
148 this.channelId = channelId;
150 this.channelId =
null;
152 this.toAccids = toAccids;
154 this.toType = toType;
156 this.uuid = StringUtil.get32UUID();
180 this.attach = attach;
188 this.extension = extension;
196 this.status = status;
204 this.pushPayload = pushPayload;
212 this.pushContent = pushContent;
285 return persistEnable;
293 if (persistEnable && (toAccids ==
null || toAccids.isEmpty())) {
294 if (BuildConfig.DEBUG) {
295 throw new IllegalArgumentException(
"set persistEnable = true only if toAccids is not null");
297 Log.e(TAG,
"set persistEnable = true only if toAccids is not null");
300 this.persistEnable = persistEnable;
325 this.pushEnable = pushEnable;
341 this.needBadge = needBadge;
357 this.needPushNick = needPushNick;
365 return isRouteEnable;
373 isRouteEnable = routeEnable;
418 return QChatSystemNotificationImpl.from(
this);
List< String > getToAccids()
获取通知的账号列表
void setBody(String body)
设置通知内容
boolean isNeedBadge()
是否需要消息计数,默认true
boolean isPersistEnable()
是否存离线
boolean isPushEnable()
是否需要推送,默认true
void setPushPayload(Map< String, Object > pushPayload)
设置推送payload
boolean isNeedPushNick()
是否需要推送昵称,默认true
QChatSendSystemNotificationParam(long serverId, List< String > toAccids)
通知给服务器成员
QChatSendSystemNotificationParam(long serverId)
通知给服务器
void setNeedPushNick(boolean needPushNick)
设置是否需要推送昵称
QChatSystemNotification toSystemNotification()
转换成QChatSystemNotification
Map< String, Object > getExtension()
获取扩展字段
String getUuid()
获取系统通知uuid
void setPersistEnable(boolean persistEnable)
设置是否存离线
void setStatus(Integer status)
如果设置状态,状态只能设置成自定义的状态(status>= 10000),否则提示414参数错误
void setPushEnable(boolean pushEnable)
设置是否需要推送
String getPushContent()
获取推送内容
Long getServerId()
获取服务器id
Long getChannelId()
获取频道id
void setNeedBadge(boolean needBadge)
设置是否需要消息计数
void setExtension(Map< String, Object > extension)
设置扩展字段
void setEnv(String env)
设置环境变量 用户可以根据不同的env配置不同的抄送和回调地址
void setRouteEnable(boolean routeEnable)
设置是否需要抄送
QChatSendSystemNotificationParam(long serverId, long channelId, List< String > toAccids)
通知给频道成员
void setAttach(String attach)
设置通知附件
void setPushContent(String pushContent)
设置推送内容
QChatSystemNotificationType getType()
获取系统通知类型,用户发送的系统通知一定是 QChatSystemMsgType.CUSTOM
Integer getToType()
获取通知发送对象类型
String getEnv()
获取环境变量 用户可以根据不同的env配置不同的抄送和回调地址
Map< String, Object > getPushPayload()
获取推送payload
boolean isRouteEnable()
是否需要抄送,默认true
QChatSendSystemNotificationParam(long serverId, long channelId)
通知给频道
String getAttach()
获取附件字符串
SERVER_ACCIDS
服务器成员,serverId/toAccids必填
CHANNEL
频道,serverId/channelId必填
CHANNEL_ACCIDS
频道成员,serverId/channelId/toAccids必填