From a95433c6bcb03e9fb1bf7ed5ff4589fa016257b2 Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Mon, 18 Nov 2024 15:46:11 +0100 Subject: [PATCH] convert rxjava to coroutines - unban actor Signed-off-by: sowjanyakch --- .../com/nextcloud/talk/api/NcApiCoroutines.kt | 8 ++--- .../data/network/ChatNetworkDataSource.kt | 1 - .../chat/data/network/RetrofitChatNetwork.kt | 4 --- .../viewmodel/ConversationInfoViewModel.kt | 35 ++++++------------- .../conversations/ConversationsRepository.kt | 1 + .../ConversationsRepositoryImpl.kt | 8 +++-- 6 files changed, 22 insertions(+), 35 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/api/NcApiCoroutines.kt b/app/src/main/java/com/nextcloud/talk/api/NcApiCoroutines.kt index 1ed82671a..3bbdf0f90 100644 --- a/app/src/main/java/com/nextcloud/talk/api/NcApiCoroutines.kt +++ b/app/src/main/java/com/nextcloud/talk/api/NcApiCoroutines.kt @@ -132,10 +132,10 @@ interface NcApiCoroutines { ): TalkBan @GET - suspend fun listBans( - @Header("Authorization") authorization: String, - @Url url: String - ): TalkBanOverall + suspend fun listBans(@Header("Authorization") authorization: String, @Url url: String): TalkBanOverall + + @DELETE + suspend fun unbanActor(@Header("Authorization") authorization: String, @Url url: String): GenericOverall @POST suspend fun addConversationToFavorites( diff --git a/app/src/main/java/com/nextcloud/talk/chat/data/network/ChatNetworkDataSource.kt b/app/src/main/java/com/nextcloud/talk/chat/data/network/ChatNetworkDataSource.kt index 2439d5d94..3b52c0a41 100644 --- a/app/src/main/java/com/nextcloud/talk/chat/data/network/ChatNetworkDataSource.kt +++ b/app/src/main/java/com/nextcloud/talk/chat/data/network/ChatNetworkDataSource.kt @@ -63,5 +63,4 @@ interface ChatNetworkDataSource { fun createRoom(credentials: String, url: String, map: Map): Observable fun setChatReadMarker(credentials: String, url: String, previousMessageId: Int): Observable fun editChatMessage(credentials: String, url: String, text: String): Observable - fun unbanActor(credentials: String, url: String): Observable } diff --git a/app/src/main/java/com/nextcloud/talk/chat/data/network/RetrofitChatNetwork.kt b/app/src/main/java/com/nextcloud/talk/chat/data/network/RetrofitChatNetwork.kt index 84d00d4bd..080b0706f 100644 --- a/app/src/main/java/com/nextcloud/talk/chat/data/network/RetrofitChatNetwork.kt +++ b/app/src/main/java/com/nextcloud/talk/chat/data/network/RetrofitChatNetwork.kt @@ -178,8 +178,4 @@ class RetrofitChatNetwork(private val ncApi: NcApi) : ChatNetworkDataSource { override fun editChatMessage(credentials: String, url: String, text: String): Observable { return ncApi.editChatMessage(credentials, url, text).map { it } } - - override fun unbanActor(credentials: String, url: String): Observable { - return ncApi.unbanActor(credentials, url) - } } diff --git a/app/src/main/java/com/nextcloud/talk/conversationinfo/viewmodel/ConversationInfoViewModel.kt b/app/src/main/java/com/nextcloud/talk/conversationinfo/viewmodel/ConversationInfoViewModel.kt index 9ab42244c..7cf70aa71 100644 --- a/app/src/main/java/com/nextcloud/talk/conversationinfo/viewmodel/ConversationInfoViewModel.kt +++ b/app/src/main/java/com/nextcloud/talk/conversationinfo/viewmodel/ConversationInfoViewModel.kt @@ -153,14 +153,13 @@ class ConversationInfoViewModel @Inject constructor( fun listBans(user: User, token: String) { val url = ApiUtils.getUrlForBans(user.baseUrl!!, token) - viewModelScope.launch{ - try{ + viewModelScope.launch { + try { val listBans = conversationsRepository.listBans(user.getCredentials(), url) _getTalkBanState.value = ListBansSuccessState(listBans) - }catch(exception:Exception){ + } catch (exception: Exception) { _getTalkBanState.value = ListBansErrorState } - } } @@ -195,26 +194,14 @@ class ConversationInfoViewModel @Inject constructor( fun unbanActor(user: User, token: String, banId: Int) { val url = ApiUtils.getUrlForUnban(user.baseUrl!!, token, banId) - chatNetworkDataSource.unbanActor(user.getCredentials(), url) - .subscribeOn(Schedulers.io()) - ?.observeOn(AndroidSchedulers.mainThread()) - ?.subscribe(object : Observer { - override fun onSubscribe(p0: Disposable) { - // unused atm - } - - override fun onError(p0: Throwable) { - _getUnBanActorState.value = UnBanActorErrorState - } - - override fun onComplete() { - // unused atm - } - - override fun onNext(p0: GenericOverall) { - _getUnBanActorState.value = UnBanActorSuccessState - } - }) + viewModelScope.launch { + try { + conversationsRepository.unbanActor(user.getCredentials(), url) + _getUnBanActorState.value = UnBanActorSuccessState + } catch (exception: Exception) { + _getUnBanActorState.value = UnBanActorErrorState + } + } } fun allowGuests(token: String, allow: Boolean) { diff --git a/app/src/main/java/com/nextcloud/talk/repositories/conversations/ConversationsRepository.kt b/app/src/main/java/com/nextcloud/talk/repositories/conversations/ConversationsRepository.kt index 8fc2d9c4c..df4350504 100644 --- a/app/src/main/java/com/nextcloud/talk/repositories/conversations/ConversationsRepository.kt +++ b/app/src/main/java/com/nextcloud/talk/repositories/conversations/ConversationsRepository.kt @@ -35,6 +35,7 @@ interface ConversationsRepository { ): TalkBan suspend fun listBans(credentials: String, url: String): List + suspend fun unbanActor(credentials: String, url: String): GenericOverall suspend fun setPassword(password: String, token: String): GenericOverall diff --git a/app/src/main/java/com/nextcloud/talk/repositories/conversations/ConversationsRepositoryImpl.kt b/app/src/main/java/com/nextcloud/talk/repositories/conversations/ConversationsRepositoryImpl.kt index 58c3bca42..2a477ab39 100644 --- a/app/src/main/java/com/nextcloud/talk/repositories/conversations/ConversationsRepositoryImpl.kt +++ b/app/src/main/java/com/nextcloud/talk/repositories/conversations/ConversationsRepositoryImpl.kt @@ -112,8 +112,12 @@ class ConversationsRepositoryImpl( } override suspend fun listBans(credentials: String, url: String): List { - val talkBanOverall = coroutineApi.listBans(credentials, url) - return talkBanOverall.ocs?.data!! + val talkBanOverall = coroutineApi.listBans(credentials, url) + return talkBanOverall.ocs?.data!! + } + + override suspend fun unbanActor(credentials: String, url: String): GenericOverall { + return coroutineApi.unbanActor(credentials, url) } private fun apiVersion(): Int {