From 841bd2c8dd87a71803710522c3b8d371fded39b6 Mon Sep 17 00:00:00 2001 From: Akshat Jain Date: Sat, 15 Dec 2018 01:03:12 +0530 Subject: [PATCH 1/3] fixes #1912 --- .../presentation/UserDetailsPresenter.kt | 32 +------------------ 1 file changed, 1 insertion(+), 31 deletions(-) diff --git a/app/src/main/java/chat/rocket/android/userdetails/presentation/UserDetailsPresenter.kt b/app/src/main/java/chat/rocket/android/userdetails/presentation/UserDetailsPresenter.kt index 3ff2d8c79f..a0b3ead508 100644 --- a/app/src/main/java/chat/rocket/android/userdetails/presentation/UserDetailsPresenter.kt +++ b/app/src/main/java/chat/rocket/android/userdetails/presentation/UserDetailsPresenter.kt @@ -39,37 +39,7 @@ class UserDetailsPresenter @Inject constructor( val openedChatRooms = chatRoomByName(name = u.name) val avatarUrl = u.username?.let { currentServer.avatarUrl(avatar = it) } - val chatRoom: ChatRoom? = if (openedChatRooms.isEmpty()) { - ChatRoom( - id = "", - type = roomTypeOf(RoomType.DIRECT_MESSAGE), - name = u.username ?: u.name.orEmpty(), - fullName = u.name, - favorite = false, - open = false, - alert = false, - status = userStatusOf(u.status), - client = client, - broadcast = false, - archived = false, - default = false, - description = null, - groupMentions = null, - userMentions = null, - lastMessage = null, - lastSeen = null, - topic = null, - announcement = null, - roles = null, - unread = 0, - readonly = false, - muted = null, - subscriptionId = "", - timestamp = null, - updatedAt = null, - user = null - ) - } else openedChatRooms.firstOrNull() + val chatRoom: ChatRoom? = openedChatRooms.firstOrNull() view.showUserDetails( avatarUrl = avatarUrl, From 910fa181423114f26ad4b54b4524f020077049c5 Mon Sep 17 00:00:00 2001 From: Akshat Jain Date: Sun, 16 Dec 2018 00:16:44 +0530 Subject: [PATCH 2/3] refetch chat rooms --- .../android/userdetails/presentation/UserDetailsPresenter.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/main/java/chat/rocket/android/userdetails/presentation/UserDetailsPresenter.kt b/app/src/main/java/chat/rocket/android/userdetails/presentation/UserDetailsPresenter.kt index a0b3ead508..09d3dd573b 100644 --- a/app/src/main/java/chat/rocket/android/userdetails/presentation/UserDetailsPresenter.kt +++ b/app/src/main/java/chat/rocket/android/userdetails/presentation/UserDetailsPresenter.kt @@ -1,5 +1,6 @@ package chat.rocket.android.userdetails.presentation +import chat.rocket.android.chatrooms.domain.FetchChatRoomsInteractor import chat.rocket.android.core.lifecycle.CancelStrategy import chat.rocket.android.db.DatabaseManager import chat.rocket.android.server.domain.GetConnectingServerInteractor @@ -27,6 +28,7 @@ class UserDetailsPresenter @Inject constructor( private var currentServer = serverInteractor.get()!! private val manager = factory.create(currentServer) private val client = manager.client + private val interactor = FetchChatRoomsInteractor(client,dbManager) fun loadUserDetails(userId: String) { launchUI(strategy) { @@ -62,6 +64,8 @@ class UserDetailsPresenter @Inject constructor( client.createDirectMessage(username = id) } + interactor.refreshChatRooms() + val userEntity = withContext(CommonPool) { dbManager.userDao().getUser(id = id) } From 32588833f75a930f77ab6fa2514cdaf154fb2bee Mon Sep 17 00:00:00 2001 From: Akshat Jain Date: Mon, 17 Dec 2018 22:33:38 +0530 Subject: [PATCH 3/3] requested changes --- .../chatroom/presentation/ChatRoomPresenter.kt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/chat/rocket/android/chatroom/presentation/ChatRoomPresenter.kt b/app/src/main/java/chat/rocket/android/chatroom/presentation/ChatRoomPresenter.kt index 64aefc4c66..9e736a361a 100644 --- a/app/src/main/java/chat/rocket/android/chatroom/presentation/ChatRoomPresenter.kt +++ b/app/src/main/java/chat/rocket/android/chatroom/presentation/ChatRoomPresenter.kt @@ -172,11 +172,13 @@ class ChatRoomPresenter @Inject constructor( } private suspend fun subscribeRoomChanges() { - chatRoomId?.let { - manager.addRoomChannel(it, roomChangesChannel) - for (room in roomChangesChannel) { - dbManager.getRoom(room.id)?.let { - view.onRoomUpdated(roomMapper.map(chatRoom = it, showLastMessage = true)) + withContext(CommonPool + strategy.jobs) { + chatRoomId?.let { + manager.addRoomChannel(it, roomChangesChannel) + for (room in roomChangesChannel) { + dbManager.getRoom(room.id)?.let { + view.onRoomUpdated(roomMapper.map(chatRoom = it, showLastMessage = true)) + } } } }