mirror of
https://github.com/nextcloud/talk-android.git
synced 2024-11-22 13:05:31 +03:00
convert rxjava to coroutine - favourite conversation
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
parent
eb9eb99ca3
commit
262f5b1cf4
2 changed files with 30 additions and 31 deletions
|
@ -116,4 +116,10 @@ interface NcApiCoroutines {
|
||||||
|
|
||||||
@DELETE
|
@DELETE
|
||||||
suspend fun unarchiveConversation(@Header("Authorization") authorization: String, @Url url: String): GenericOverall
|
suspend fun unarchiveConversation(@Header("Authorization") authorization: String, @Url url: String): GenericOverall
|
||||||
|
|
||||||
|
@POST
|
||||||
|
suspend fun addConversationToFavorites(
|
||||||
|
@Header("Authorization") authorization: String,
|
||||||
|
@Url url: String
|
||||||
|
): GenericOverall
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,7 @@ import android.os.Bundle
|
||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.work.Data
|
import androidx.work.Data
|
||||||
import androidx.work.OneTimeWorkRequest
|
import androidx.work.OneTimeWorkRequest
|
||||||
import androidx.work.WorkInfo
|
import androidx.work.WorkInfo
|
||||||
|
@ -21,6 +22,7 @@ import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||||
import com.nextcloud.talk.R
|
import com.nextcloud.talk.R
|
||||||
import com.nextcloud.talk.activities.MainActivity
|
import com.nextcloud.talk.activities.MainActivity
|
||||||
import com.nextcloud.talk.api.NcApi
|
import com.nextcloud.talk.api.NcApi
|
||||||
|
import com.nextcloud.talk.api.NcApiCoroutines
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication
|
||||||
import com.nextcloud.talk.conversation.RenameConversationDialogFragment
|
import com.nextcloud.talk.conversation.RenameConversationDialogFragment
|
||||||
import com.nextcloud.talk.conversationlist.ConversationsListActivity
|
import com.nextcloud.talk.conversationlist.ConversationsListActivity
|
||||||
|
@ -42,6 +44,9 @@ import io.reactivex.Observer
|
||||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||||
import io.reactivex.disposables.Disposable
|
import io.reactivex.disposables.Disposable
|
||||||
import io.reactivex.schedulers.Schedulers
|
import io.reactivex.schedulers.Schedulers
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
|
import kotlinx.coroutines.withContext
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@AutoInjector(NextcloudTalkApplication::class)
|
@AutoInjector(NextcloudTalkApplication::class)
|
||||||
|
@ -56,6 +61,9 @@ class ConversationsListBottomDialog(
|
||||||
@Inject
|
@Inject
|
||||||
lateinit var ncApi: NcApi
|
lateinit var ncApi: NcApi
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
lateinit var ncApiCoroutines: NcApiCoroutines
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
lateinit var viewThemeUtils: ViewThemeUtils
|
lateinit var viewThemeUtils: ViewThemeUtils
|
||||||
|
|
||||||
|
@ -195,23 +203,12 @@ class ConversationsListBottomDialog(
|
||||||
|
|
||||||
private fun addConversationToFavorites() {
|
private fun addConversationToFavorites() {
|
||||||
val apiVersion = ApiUtils.getConversationApiVersion(currentUser, intArrayOf(ApiUtils.API_V4, ApiUtils.API_V1))
|
val apiVersion = ApiUtils.getConversationApiVersion(currentUser, intArrayOf(ApiUtils.API_V4, ApiUtils.API_V1))
|
||||||
ncApi.addConversationToFavorites(
|
val url = ApiUtils.getUrlForRoomFavorite(apiVersion, currentUser.baseUrl!!, conversation.token)
|
||||||
credentials,
|
lifecycleScope.launch {
|
||||||
ApiUtils.getUrlForRoomFavorite(
|
try {
|
||||||
apiVersion,
|
withContext(Dispatchers.IO) {
|
||||||
currentUser.baseUrl!!,
|
ncApiCoroutines.addConversationToFavorites(credentials, url)
|
||||||
conversation.token
|
|
||||||
)
|
|
||||||
)
|
|
||||||
.subscribeOn(Schedulers.io())
|
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
|
||||||
.retry(1)
|
|
||||||
.subscribe(object : Observer<GenericOverall> {
|
|
||||||
override fun onSubscribe(d: Disposable) {
|
|
||||||
// unused atm
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onNext(genericOverall: GenericOverall) {
|
|
||||||
activity.fetchRooms()
|
activity.fetchRooms()
|
||||||
activity.showSnackbar(
|
activity.showSnackbar(
|
||||||
String.format(
|
String.format(
|
||||||
|
@ -220,17 +217,13 @@ class ConversationsListBottomDialog(
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
dismiss()
|
dismiss()
|
||||||
}
|
} catch (e: Exception) {
|
||||||
|
withContext(Dispatchers.Main) {
|
||||||
override fun onError(e: Throwable) {
|
|
||||||
activity.showSnackbar(context.resources.getString(R.string.nc_common_error_sorry))
|
activity.showSnackbar(context.resources.getString(R.string.nc_common_error_sorry))
|
||||||
dismiss()
|
dismiss()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onComplete() {
|
|
||||||
// unused atm
|
|
||||||
}
|
}
|
||||||
})
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun removeConversationFromFavorites() {
|
private fun removeConversationFromFavorites() {
|
||||||
|
|
Loading…
Reference in a new issue