From 68366b3d09bfa3cb486cf22644e755c83a62395b Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Fri, 15 Nov 2024 19:27:00 +0100 Subject: [PATCH] convert rxjava to coroutine - favourite conversation Signed-off-by: sowjanyakch --- .../com/nextcloud/talk/api/NcApiCoroutines.kt | 6 ++ .../dialog/ConversationsListBottomDialog.kt | 55 ++++++++----------- 2 files changed, 30 insertions(+), 31 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 f47978d99..d5eb41f60 100644 --- a/app/src/main/java/com/nextcloud/talk/api/NcApiCoroutines.kt +++ b/app/src/main/java/com/nextcloud/talk/api/NcApiCoroutines.kt @@ -119,6 +119,12 @@ interface NcApiCoroutines { @DELETE suspend fun unarchiveConversation(@Header("Authorization") authorization: String, @Url url: String): GenericOverall + @POST + suspend fun addConversationToFavorites( + @Header("Authorization") authorization: String, + @Url url: String + ): GenericOverall + @POST suspend fun setReadStatusPrivacy( @Header("Authorization") authorization: String, diff --git a/app/src/main/java/com/nextcloud/talk/ui/dialog/ConversationsListBottomDialog.kt b/app/src/main/java/com/nextcloud/talk/ui/dialog/ConversationsListBottomDialog.kt index 9dbd71841..232d5bf4a 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/dialog/ConversationsListBottomDialog.kt +++ b/app/src/main/java/com/nextcloud/talk/ui/dialog/ConversationsListBottomDialog.kt @@ -11,6 +11,7 @@ import android.os.Bundle import android.text.TextUtils import android.view.View import android.view.ViewGroup +import androidx.lifecycle.lifecycleScope import androidx.work.Data import androidx.work.OneTimeWorkRequest import androidx.work.WorkInfo @@ -21,6 +22,7 @@ import com.google.android.material.bottomsheet.BottomSheetDialog import com.nextcloud.talk.R import com.nextcloud.talk.activities.MainActivity import com.nextcloud.talk.api.NcApi +import com.nextcloud.talk.api.NcApiCoroutines import com.nextcloud.talk.application.NextcloudTalkApplication import com.nextcloud.talk.conversation.RenameConversationDialogFragment import com.nextcloud.talk.conversationlist.ConversationsListActivity @@ -42,6 +44,9 @@ import io.reactivex.Observer import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import javax.inject.Inject @AutoInjector(NextcloudTalkApplication::class) @@ -56,6 +61,9 @@ class ConversationsListBottomDialog( @Inject lateinit var ncApi: NcApi + @Inject + lateinit var ncApiCoroutines: NcApiCoroutines + @Inject lateinit var viewThemeUtils: ViewThemeUtils @@ -195,42 +203,27 @@ class ConversationsListBottomDialog( private fun addConversationToFavorites() { val apiVersion = ApiUtils.getConversationApiVersion(currentUser, intArrayOf(ApiUtils.API_V4, ApiUtils.API_V1)) - ncApi.addConversationToFavorites( - credentials, - ApiUtils.getUrlForRoomFavorite( - apiVersion, - currentUser.baseUrl!!, - conversation.token - ) - ) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .retry(1) - .subscribe(object : Observer { - override fun onSubscribe(d: Disposable) { - // unused atm + val url = ApiUtils.getUrlForRoomFavorite(apiVersion, currentUser.baseUrl!!, conversation.token) + lifecycleScope.launch { + try { + withContext(Dispatchers.IO) { + ncApiCoroutines.addConversationToFavorites(credentials, url) } - - override fun onNext(genericOverall: GenericOverall) { - activity.fetchRooms() - activity.showSnackbar( - String.format( - context.resources.getString(R.string.added_to_favorites), - conversation.displayName - ) + activity.fetchRooms() + activity.showSnackbar( + String.format( + context.resources.getString(R.string.added_to_favorites), + conversation.displayName ) - dismiss() - } - - override fun onError(e: Throwable) { + ) + dismiss() + } catch (e: Exception) { + withContext(Dispatchers.Main) { activity.showSnackbar(context.resources.getString(R.string.nc_common_error_sorry)) dismiss() } - - override fun onComplete() { - // unused atm - } - }) + } + } } private fun removeConversationFromFavorites() {