diff --git a/app/src/main/java/com/nextcloud/talk/newarch/di/module/ConversationsModule.kt b/app/src/main/java/com/nextcloud/talk/newarch/di/module/ConversationsModule.kt index e6b9a916e..f9122fce2 100644 --- a/app/src/main/java/com/nextcloud/talk/newarch/di/module/ConversationsModule.kt +++ b/app/src/main/java/com/nextcloud/talk/newarch/di/module/ConversationsModule.kt @@ -7,7 +7,7 @@ import com.nextcloud.talk.newarch.domain.repository.offline.MessagesRepository import com.nextcloud.talk.newarch.domain.repository.online.NextcloudTalkRepository import com.nextcloud.talk.newarch.domain.usecases.* import com.nextcloud.talk.newarch.features.chat.ChatViewModelFactory -import com.nextcloud.talk.newarch.utils.ConversationsManager +import com.nextcloud.talk.newarch.utils.ConversationService import org.koin.dsl.module val ConversationsModule = module { @@ -58,6 +58,6 @@ fun createExitConversationUseCase(nextcloudTalkRepository: NextcloudTalkReposito return ExitConversationUseCase(nextcloudTalkRepository, apiErrorHandler) } -fun createChatViewModelFactory(application: Application, joinConversationUseCase: JoinConversationUseCase, exitConversationUseCase: ExitConversationUseCase, conversationsRepository: ConversationsRepository, messagesRepository: MessagesRepository, conversationsManager: ConversationsManager): ChatViewModelFactory { - return ChatViewModelFactory(application, joinConversationUseCase, exitConversationUseCase, conversationsRepository, messagesRepository, conversationsManager) +fun createChatViewModelFactory(application: Application, joinConversationUseCase: JoinConversationUseCase, exitConversationUseCase: ExitConversationUseCase, conversationsRepository: ConversationsRepository, messagesRepository: MessagesRepository, conversationService: ConversationService): ChatViewModelFactory { + return ChatViewModelFactory(application, joinConversationUseCase, exitConversationUseCase, conversationsRepository, messagesRepository, conversationService) } \ No newline at end of file diff --git a/app/src/main/java/com/nextcloud/talk/newarch/di/module/ManagementModule.kt b/app/src/main/java/com/nextcloud/talk/newarch/di/module/ManagementModule.kt index 1c4ab6e05..a4e5496bb 100644 --- a/app/src/main/java/com/nextcloud/talk/newarch/di/module/ManagementModule.kt +++ b/app/src/main/java/com/nextcloud/talk/newarch/di/module/ManagementModule.kt @@ -24,7 +24,7 @@ import com.nextcloud.talk.newarch.domain.repository.offline.ConversationsReposit import com.nextcloud.talk.newarch.domain.repository.offline.UsersRepository import com.nextcloud.talk.newarch.domain.usecases.GetConversationUseCase import com.nextcloud.talk.newarch.domain.usecases.JoinConversationUseCase -import com.nextcloud.talk.newarch.utils.ConversationsManager +import com.nextcloud.talk.newarch.utils.ConversationService import okhttp3.OkHttpClient import org.koin.dsl.module import java.net.CookieManager @@ -33,6 +33,6 @@ val ManagementModule = module { single { createConversationsManager(get(), get(), get(), get(), get(), get()) } } -fun createConversationsManager(usersRepository: UsersRepository, cookieManager: CookieManager, okHttpClient: OkHttpClient, conversationsRepository: ConversationsRepository, getConversationUseCase: GetConversationUseCase, joinConversationUseCase: JoinConversationUseCase): ConversationsManager { - return ConversationsManager(usersRepository, cookieManager, okHttpClient, conversationsRepository, joinConversationUseCase, getConversationUseCase) +fun createConversationsManager(usersRepository: UsersRepository, cookieManager: CookieManager, okHttpClient: OkHttpClient, conversationsRepository: ConversationsRepository, getConversationUseCase: GetConversationUseCase, joinConversationUseCase: JoinConversationUseCase): ConversationService { + return ConversationService(usersRepository, cookieManager, okHttpClient, conversationsRepository, joinConversationUseCase, getConversationUseCase) } \ No newline at end of file diff --git a/app/src/main/java/com/nextcloud/talk/newarch/features/chat/ChatViewModel.kt b/app/src/main/java/com/nextcloud/talk/newarch/features/chat/ChatViewModel.kt index 502996b20..d60be3496 100644 --- a/app/src/main/java/com/nextcloud/talk/newarch/features/chat/ChatViewModel.kt +++ b/app/src/main/java/com/nextcloud/talk/newarch/features/chat/ChatViewModel.kt @@ -11,8 +11,8 @@ import com.nextcloud.talk.newarch.domain.repository.offline.MessagesRepository import com.nextcloud.talk.newarch.domain.usecases.ExitConversationUseCase import com.nextcloud.talk.newarch.domain.usecases.JoinConversationUseCase import com.nextcloud.talk.newarch.local.models.UserNgEntity -import com.nextcloud.talk.newarch.utils.ConversationsManager -import com.nextcloud.talk.newarch.utils.ConversationsManagerInterface +import com.nextcloud.talk.newarch.utils.ConversationService +import com.nextcloud.talk.newarch.utils.ConversationServiceInterface import kotlinx.coroutines.launch class ChatViewModel constructor(application: Application, @@ -20,7 +20,7 @@ class ChatViewModel constructor(application: Application, private val exitConversationUseCase: ExitConversationUseCase, private val conversationsRepository: ConversationsRepository, private val messagesRepository: MessagesRepository, - private val conversationsManager: ConversationsManager) : BaseViewModel(application), ConversationsManagerInterface { + private val conversationService: ConversationService) : BaseViewModel(application), ConversationServiceInterface { lateinit var user: UserNgEntity val conversation: MutableLiveData = MutableLiveData() var initConversation: Conversation? = null @@ -37,7 +37,7 @@ class ChatViewModel constructor(application: Application, this@ChatViewModel.user = user this@ChatViewModel.initConversation = conversationsRepository.getConversationForUserWithToken(user.id!!, conversationToken) this@ChatViewModel.conversationPassword = conversationPassword - conversationsManager.getConversation(conversationToken, this@ChatViewModel) + conversationService.getConversation(conversationToken, this@ChatViewModel) } } @@ -45,18 +45,18 @@ class ChatViewModel constructor(application: Application, } - override suspend fun gotConversationInfoForUser(userNgEntity: UserNgEntity, conversation: Conversation?, operationStatus: ConversationsManagerInterface.OperationStatus) { - if (operationStatus == ConversationsManagerInterface.OperationStatus.STATUS_OK) { + override suspend fun gotConversationInfoForUser(userNgEntity: UserNgEntity, conversation: Conversation?, operationStatus: ConversationServiceInterface.OperationStatus) { + if (operationStatus == ConversationServiceInterface.OperationStatus.STATUS_OK) { if (userNgEntity.id == user.id && conversation!!.token == initConversation?.token) { this.conversation.value = conversationsRepository.getConversationForUserWithToken(user.id!!, conversation.token!!) conversation.token?.let { conversationToken -> - conversationsManager.joinConversation(conversationToken, conversationPassword, this) + conversationService.joinConversation(conversationToken, conversationPassword, this) } } } } - override suspend fun joinedConversationForUser(userNgEntity: UserNgEntity, conversation: Conversation?, operationStatus: ConversationsManagerInterface.OperationStatus) { + override suspend fun joinedConversationForUser(userNgEntity: UserNgEntity, conversation: Conversation?, operationStatus: ConversationServiceInterface.OperationStatus) { TODO("not implemented") //To change body of created functions use File | Settings | File Templates. } diff --git a/app/src/main/java/com/nextcloud/talk/newarch/features/chat/ChatViewModelFactory.kt b/app/src/main/java/com/nextcloud/talk/newarch/features/chat/ChatViewModelFactory.kt index 687434afc..331df0945 100644 --- a/app/src/main/java/com/nextcloud/talk/newarch/features/chat/ChatViewModelFactory.kt +++ b/app/src/main/java/com/nextcloud/talk/newarch/features/chat/ChatViewModelFactory.kt @@ -7,7 +7,7 @@ import com.nextcloud.talk.newarch.domain.repository.offline.ConversationsReposit import com.nextcloud.talk.newarch.domain.repository.offline.MessagesRepository import com.nextcloud.talk.newarch.domain.usecases.ExitConversationUseCase import com.nextcloud.talk.newarch.domain.usecases.JoinConversationUseCase -import com.nextcloud.talk.newarch.utils.ConversationsManager +import com.nextcloud.talk.newarch.utils.ConversationService class ChatViewModelFactory constructor( private val application: Application, @@ -15,12 +15,12 @@ class ChatViewModelFactory constructor( private val exitConversationUseCase: ExitConversationUseCase, private val conversationsRepository: ConversationsRepository, private val messagesRepository: MessagesRepository, - private val conversationsManager: ConversationsManager + private val conversationService: ConversationService ) : ViewModelProvider.Factory { override fun create(modelClass: Class): T { return ChatViewModel( - application, joinConversationUseCase, exitConversationUseCase, conversationsRepository, messagesRepository, conversationsManager + application, joinConversationUseCase, exitConversationUseCase, conversationsRepository, messagesRepository, conversationService ) as T } } diff --git a/app/src/main/java/com/nextcloud/talk/newarch/utils/ConversationsManager.kt b/app/src/main/java/com/nextcloud/talk/newarch/utils/ConversationService.kt similarity index 75% rename from app/src/main/java/com/nextcloud/talk/newarch/utils/ConversationsManager.kt rename to app/src/main/java/com/nextcloud/talk/newarch/utils/ConversationService.kt index 5b7c1b6e0..c1ce3f165 100644 --- a/app/src/main/java/com/nextcloud/talk/newarch/utils/ConversationsManager.kt +++ b/app/src/main/java/com/nextcloud/talk/newarch/utils/ConversationService.kt @@ -37,12 +37,12 @@ import org.koin.core.KoinComponent import org.koin.core.parameter.parametersOf import java.net.CookieManager -class ConversationsManager constructor(usersRepository: UsersRepository, - cookieManager: CookieManager, - okHttpClient: OkHttpClient, - private val conversationsRepository: ConversationsRepository, - private val joinConversationUseCase: JoinConversationUseCase, - private val getConversationUseCase: GetConversationUseCase) : KoinComponent { +class ConversationService constructor(usersRepository: UsersRepository, + cookieManager: CookieManager, + okHttpClient: OkHttpClient, + private val conversationsRepository: ConversationsRepository, + private val joinConversationUseCase: JoinConversationUseCase, + private val getConversationUseCase: GetConversationUseCase) : KoinComponent { private val applicationScope = CoroutineScope(Dispatchers.Default) private val previousUser: UserNgEntity? = null private val currentUserLiveData: LiveData = usersRepository.getActiveUserLiveData() @@ -58,7 +58,7 @@ class ConversationsManager constructor(usersRepository: UsersRepository, } } - suspend fun getConversation(conversationToken: String, conversationsManagerInterface: ConversationsManagerInterface) { + suspend fun getConversation(conversationToken: String, conversationServiceInterface: ConversationServiceInterface) { val currentUser = currentUserLiveData.value getConversationUseCase.invoke(applicationScope, parametersOf( currentUser, @@ -68,19 +68,19 @@ class ConversationsManager constructor(usersRepository: UsersRepository, override suspend fun onSuccess(result: RoomOverall) { currentUser?.let { conversationsRepository.saveConversationsForUser(it.id!!, listOf(result.ocs.data)) - conversationsManagerInterface.gotConversationInfoForUser(it, result.ocs.data, ConversationsManagerInterface.OperationStatus.STATUS_OK) + conversationServiceInterface.gotConversationInfoForUser(it, result.ocs.data, ConversationServiceInterface.OperationStatus.STATUS_OK) } } override suspend fun onError(errorModel: ErrorModel?) { currentUser?.let { - conversationsManagerInterface.gotConversationInfoForUser(it, null, ConversationsManagerInterface.OperationStatus.STATUS_FAILED) + conversationServiceInterface.gotConversationInfoForUser(it, null, ConversationServiceInterface.OperationStatus.STATUS_FAILED) } } }) } - suspend fun joinConversation(conversationToken: String, conversationPassword: String?, conversationsManagerInterface: ConversationsManagerInterface) { + suspend fun joinConversation(conversationToken: String, conversationPassword: String?, conversationServiceInterface: ConversationServiceInterface) { val currentUser = currentUserLiveData.value joinConversationUseCase.invoke(applicationScope, parametersOf( currentUser, @@ -92,13 +92,13 @@ class ConversationsManager constructor(usersRepository: UsersRepository, currentUser?.let { conversationsRepository.saveConversationsForUser(it.id!!, listOf(result.ocs.data)) currentConversation = conversationsRepository.getConversationForUserWithToken(it.id!!, result.ocs!!.data!!.token!!) - conversationsManagerInterface.joinedConversationForUser(it, currentConversation, ConversationsManagerInterface.OperationStatus.STATUS_OK) + conversationServiceInterface.joinedConversationForUser(it, currentConversation, ConversationServiceInterface.OperationStatus.STATUS_OK) } } override suspend fun onError(errorModel: ErrorModel?) { currentUser?.let { - conversationsManagerInterface.joinedConversationForUser(it, currentConversation, ConversationsManagerInterface.OperationStatus.STATUS_FAILED) + conversationServiceInterface.joinedConversationForUser(it, currentConversation, ConversationServiceInterface.OperationStatus.STATUS_FAILED) } } }) diff --git a/app/src/main/java/com/nextcloud/talk/newarch/utils/ConversationsManagerInterface.kt b/app/src/main/java/com/nextcloud/talk/newarch/utils/ConversationServiceInterface.kt similarity index 96% rename from app/src/main/java/com/nextcloud/talk/newarch/utils/ConversationsManagerInterface.kt rename to app/src/main/java/com/nextcloud/talk/newarch/utils/ConversationServiceInterface.kt index 6374add4f..258fcb4c1 100644 --- a/app/src/main/java/com/nextcloud/talk/newarch/utils/ConversationsManagerInterface.kt +++ b/app/src/main/java/com/nextcloud/talk/newarch/utils/ConversationServiceInterface.kt @@ -23,7 +23,7 @@ package com.nextcloud.talk.newarch.utils import com.nextcloud.talk.models.json.conversations.Conversation import com.nextcloud.talk.newarch.local.models.UserNgEntity -interface ConversationsManagerInterface { +interface ConversationServiceInterface { enum class OperationStatus { STATUS_OK, STATUS_FAILED