From 61859f361a16bae3e59f8cd920e051935b50bd5e Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Tue, 23 May 2023 11:16:47 +0200 Subject: [PATCH] convert ConversationMessageNotifier to kt Signed-off-by: Marcel Hibbe --- .../ConversationMessageNotifier.java | 54 ------------------- .../signaling/ConversationMessageNotifier.kt | 50 +++++++++++++++++ 2 files changed, 50 insertions(+), 54 deletions(-) delete mode 100644 app/src/main/java/com/nextcloud/talk/signaling/ConversationMessageNotifier.java create mode 100644 app/src/main/java/com/nextcloud/talk/signaling/ConversationMessageNotifier.kt diff --git a/app/src/main/java/com/nextcloud/talk/signaling/ConversationMessageNotifier.java b/app/src/main/java/com/nextcloud/talk/signaling/ConversationMessageNotifier.java deleted file mode 100644 index 5f19e29c2..000000000 --- a/app/src/main/java/com/nextcloud/talk/signaling/ConversationMessageNotifier.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Nextcloud Talk application - * - * @author Marcel Hibbe - * Copyright (C) 2023 Marcel Hibbe - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.nextcloud.talk.signaling; - -import java.util.ArrayList; -import java.util.LinkedHashSet; -import java.util.Set; - - -class ConversationMessageNotifier { - - private final Set conversationMessageListeners = new LinkedHashSet<>(); - - public synchronized void addListener(SignalingMessageReceiver.ConversationMessageListener listener) { - if (listener == null) { - throw new IllegalArgumentException("conversationMessageListener can not be null"); - } - - conversationMessageListeners.add(listener); - } - - public synchronized void removeListener(SignalingMessageReceiver.ConversationMessageListener listener) { - conversationMessageListeners.remove(listener); - } - - public synchronized void notifyStartTyping(String sessionId) { - for (SignalingMessageReceiver.ConversationMessageListener listener : new ArrayList<>(conversationMessageListeners)) { - listener.onStartTyping(sessionId); - } - } - - public void notifyStopTyping(String sessionId) { - for (SignalingMessageReceiver.ConversationMessageListener listener : new ArrayList<>(conversationMessageListeners)) { - listener.onStopTyping(sessionId); - } - } -} diff --git a/app/src/main/java/com/nextcloud/talk/signaling/ConversationMessageNotifier.kt b/app/src/main/java/com/nextcloud/talk/signaling/ConversationMessageNotifier.kt new file mode 100644 index 000000000..6b8fac543 --- /dev/null +++ b/app/src/main/java/com/nextcloud/talk/signaling/ConversationMessageNotifier.kt @@ -0,0 +1,50 @@ +/* + * Nextcloud Talk application + * + * @author Marcel Hibbe + * Copyright (C) 2023 Marcel Hibbe + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.nextcloud.talk.signaling + +import com.nextcloud.talk.signaling.SignalingMessageReceiver.ConversationMessageListener + +internal class ConversationMessageNotifier { + private val conversationMessageListeners: MutableSet = LinkedHashSet() + + @Synchronized + fun addListener(listener: ConversationMessageListener?) { + requireNotNull(listener) { "conversationMessageListener can not be null" } + conversationMessageListeners.add(listener) + } + + @Synchronized + fun removeListener(listener: ConversationMessageListener) { + conversationMessageListeners.remove(listener) + } + + @Synchronized + fun notifyStartTyping(sessionId: String?) { + for (listener in ArrayList(conversationMessageListeners)) { + listener.onStartTyping(sessionId) + } + } + + fun notifyStopTyping(sessionId: String?) { + for (listener in ArrayList(conversationMessageListeners)) { + listener.onStopTyping(sessionId) + } + } +}