Skip to content
Snippets Groups Projects
Commit 6a835737 authored by Sebastian's avatar Sebastian
Browse files

Convert two chat-related classed from Java to Kotlin

parent cd190c0c
No related branches found
No related tags found
1 merge request!5Connect briar to UI
package org.briarproject.briar.desktop.chat;
import org.briarproject.bramble.api.db.DbException;
import org.briarproject.bramble.api.identity.Author;
import org.briarproject.briar.api.blog.BlogInvitationRequest;
import org.briarproject.briar.api.blog.BlogInvitationResponse;
import org.briarproject.briar.api.conversation.ConversationMessageHeader;
import org.briarproject.briar.api.conversation.ConversationMessageVisitor;
import org.briarproject.briar.api.forum.ForumInvitationRequest;
import org.briarproject.briar.api.forum.ForumInvitationResponse;
import org.briarproject.briar.api.introduction.IntroductionRequest;
import org.briarproject.briar.api.introduction.IntroductionResponse;
import org.briarproject.briar.api.messaging.MessagingManager;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationRequest;
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ChatHistoryConversationVisitor
implements ConversationMessageVisitor<Void> {
final static Logger logger = LoggerFactory.getLogger(ChatHistoryConversationVisitor.class);
private Chat chat;
private MessagingManager messagingManager;
public ChatHistoryConversationVisitor(Chat chat, MessagingManager messagingManager) {
this.chat = chat;
this.messagingManager = messagingManager;
}
void appendMessage(ConversationMessageHeader header) {
try {
String messageText = messagingManager.getMessageText(header.getId());
chat.appendMessage(header.isLocal(), header.getTimestamp(), messageText);
} catch (DbException e) {
logger.warn("Error while getting message text", e);
}
}
@Override
public Void visitPrivateMessageHeader(PrivateMessageHeader h) {
appendMessage(h);
return null;
}
@Override
public Void visitBlogInvitationRequest(BlogInvitationRequest r) {
return null;
}
@Override
public Void visitBlogInvitationResponse(BlogInvitationResponse r) {
return null;
}
@Override
public Void visitForumInvitationRequest(ForumInvitationRequest r) {
return null;
}
@Override
public Void visitForumInvitationResponse(ForumInvitationResponse r) {
return null;
}
@Override
public Void visitGroupInvitationRequest(GroupInvitationRequest r) {
return null;
}
@Override
public Void visitGroupInvitationResponse(GroupInvitationResponse r) {
return null;
}
@Override
public Void visitIntroductionRequest(IntroductionRequest r) {
Author nameable = r.getNameable();
chat.appendMessage(r.isLocal(), r.getTimestamp(), String.format(
"You received an introduction request! Username: %s, Message: %s",
r.getName(), r.getText()));
if (!r.wasAnswered()) {
chat.appendMessage(r.isLocal(), r.getTimestamp(),
"Do you accept the invitation?");
// TODO chat.appendYesNoButtons(r);
}
return null;
}
@Override
public Void visitIntroductionResponse(IntroductionResponse r) {
if (r.wasAccepted()) {
chat.appendMessage(r.isLocal(), r.getTimestamp(),
"You accepted the request");
} else {
chat.appendMessage(r.isLocal(), r.getTimestamp(),
"You declined the request");
}
return null;
}
}
package org.briarproject.briar.desktop.chat;
import org.briarproject.briar.api.conversation.ConversationMessageHeader;
import java.util.Comparator;
public class ConversationMessageHeaderComparator
implements Comparator<ConversationMessageHeader> {
@Override
public int compare(ConversationMessageHeader h1,
ConversationMessageHeader h2) {
return Long.compare(h1.getTimestamp(), h2.getTimestamp());
}
}
package org.briarproject.briar.desktop.chat
import org.briarproject.bramble.api.db.DbException
import org.briarproject.briar.api.blog.BlogInvitationRequest
import org.briarproject.briar.api.blog.BlogInvitationResponse
import org.briarproject.briar.api.conversation.ConversationMessageHeader
import org.briarproject.briar.api.conversation.ConversationMessageVisitor
import org.briarproject.briar.api.forum.ForumInvitationRequest
import org.briarproject.briar.api.forum.ForumInvitationResponse
import org.briarproject.briar.api.introduction.IntroductionRequest
import org.briarproject.briar.api.introduction.IntroductionResponse
import org.briarproject.briar.api.messaging.MessagingManager
import org.briarproject.briar.api.messaging.PrivateMessageHeader
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationRequest
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationResponse
import org.slf4j.LoggerFactory
class ChatHistoryConversationVisitor(
private val chat: Chat,
private val messagingManager: MessagingManager
) :
ConversationMessageVisitor<Void?> {
companion object {
val logger = LoggerFactory.getLogger(ChatHistoryConversationVisitor::class.java)
}
fun appendMessage(header: ConversationMessageHeader) {
try {
val messageText = messagingManager.getMessageText(header.id)
chat.appendMessage(header.isLocal, header.timestamp, messageText)
} catch (e: DbException) {
logger.warn("Error while getting message text", e)
}
}
override fun visitPrivateMessageHeader(h: PrivateMessageHeader): Void? {
appendMessage(h)
return null
}
override fun visitBlogInvitationRequest(r: BlogInvitationRequest): Void? {
return null
}
override fun visitBlogInvitationResponse(r: BlogInvitationResponse): Void? {
return null
}
override fun visitForumInvitationRequest(r: ForumInvitationRequest): Void? {
return null
}
override fun visitForumInvitationResponse(r: ForumInvitationResponse): Void? {
return null
}
override fun visitGroupInvitationRequest(r: GroupInvitationRequest): Void? {
return null
}
override fun visitGroupInvitationResponse(r: GroupInvitationResponse): Void? {
return null
}
override fun visitIntroductionRequest(r: IntroductionRequest): Void? {
chat.appendMessage(
r.isLocal, r.timestamp, String.format(
"You received an introduction request! Username: %s, Message: %s",
r.name, r.text
)
)
if (!r.wasAnswered()) {
chat.appendMessage(
r.isLocal, r.timestamp,
"Do you accept the invitation?"
)
// TODO chat.appendYesNoButtons(r);
}
return null
}
override fun visitIntroductionResponse(r: IntroductionResponse): Void? {
if (r.wasAccepted()) {
chat.appendMessage(
r.isLocal, r.timestamp,
"You accepted the request"
)
} else {
chat.appendMessage(
r.isLocal, r.timestamp,
"You declined the request"
)
}
return null
}
}
\ No newline at end of file
package org.briarproject.briar.desktop.chat
import org.briarproject.briar.api.conversation.ConversationMessageHeader
class ConversationMessageHeaderComparator : Comparator<ConversationMessageHeader> {
override fun compare(
h1: ConversationMessageHeader,
h2: ConversationMessageHeader
): Int {
return h1.timestamp.compareTo(h2.timestamp)
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment