From fd1e4ba22e12048d1e23573d531ef0c309337470 Mon Sep 17 00:00:00 2001 From: Paul Schaub Date: Mon, 2 Dec 2019 02:30:15 +0100 Subject: [PATCH] Add getOrCreate method to directChatRepo --- .../data/repository/XmppDirectChatRepository.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/data/src/main/java/org/mercury_im/messenger/data/repository/XmppDirectChatRepository.java b/data/src/main/java/org/mercury_im/messenger/data/repository/XmppDirectChatRepository.java index 825a066..71e0ff0 100644 --- a/data/src/main/java/org/mercury_im/messenger/data/repository/XmppDirectChatRepository.java +++ b/data/src/main/java/org/mercury_im/messenger/data/repository/XmppDirectChatRepository.java @@ -78,6 +78,19 @@ public class XmppDirectChatRepository .observeOn(observerScheduler()); } + @Override + public Single getOrCreateChatWithPeer(Peer _peer) { + return getDirectChatByPeer(_peer) + .switchIfEmpty(insertDirectChat(new IDirectChat(){ + { + setAccount(_peer.getAccount()); + setPeer(_peer); + } + })) + .subscribeOn(subscriberScheduler()) + .observeOn(observerScheduler()); + } + @Override public Observable> observeDirectChatByPeer(Peer peer) { return data().select(DirectChatModel.class)