Set channel do not disturb
Chat UI SDK supports setting do not disturb for individual channels. The status is synchronized to the server and across all connected clients.
Set channel do not disturb
- Kotlin
- Java
kotlin
val identifier = ChannelIdentifier(ChannelType.DIRECT, "user_001")
val channel = NCChatUI.createChannel(identifier)
channel.setNoDisturbLevel(ChannelNoDisturbLevel.MUTED) { error ->
// error == null indicates success
}
Java
ChannelIdentifier identifier = new ChannelIdentifier(ChannelType.DIRECT, "user_001");
BaseChannel channel = NCChatUI.createChannel(identifier);
channel.setNoDisturbLevel(ChannelNoDisturbLevel.MUTED, error -> {
// error == null indicates success
});
Listen for do not disturb synchronization
- Kotlin
- Java
kotlin
private const val CHANNEL_NOTIFY_HANDLER_ID = "channel_notify_sync"
NCEngine.addChannelHandler(
CHANNEL_NOTIFY_HANDLER_ID,
object : ChannelHandler {
override fun onChannelNoDisturbLevelSync(event: ChannelNoDisturbLevelSyncEvent) {
// event.channelIdentifier / event.level
}
}
)
NCEngine.removeChannelHandler(CHANNEL_NOTIFY_HANDLER_ID)
Java
private static final String CHANNEL_NOTIFY_HANDLER_ID = "channel_notify_sync";
NCEngine.addChannelHandler(
CHANNEL_NOTIFY_HANDLER_ID,
new ChannelHandler() {
@Override
public void onChannelNoDisturbLevelSync(ChannelNoDisturbLevelSyncEvent event) {
// event.getChannelIdentifier() / event.getLevel()
}
});
NCEngine.removeChannelHandler(CHANNEL_NOTIFY_HANDLER_ID);
Get channel do not disturb status
- Kotlin
- Java
kotlin
val id = ChannelIdentifier(ChannelType.DIRECT, "user_001")
BaseChannel.getChannels(listOf(id)) { channels, error ->
val level = channels?.firstOrNull()?.noDisturbLevel
}
Java
ChannelIdentifier id = new ChannelIdentifier(ChannelType.DIRECT, "user_001");
BaseChannel.getChannels(Collections.singletonList(id), (channels, error) -> {
ChannelNoDisturbLevel level = channels != null && !channels.isEmpty()
? channels.get(0).getNoDisturbLevel()
: null;
});