Skip to content

Commit 573e2ca

Browse files
anhanh11001iamareebjamal
authored andcommitted
feat: Add chaining RxJava (#2117)
Fixes: #2116
1 parent 6a20b94 commit 573e2ca

File tree

4 files changed

+19
-44
lines changed

4 files changed

+19
-44
lines changed

app/src/main/java/org/fossasia/openevent/general/about/AboutEventViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class AboutEventViewModel(private val eventService: EventService, private val re
2525
val error: LiveData<String> = mutableError
2626

2727
fun loadEvent(id: Long) {
28-
if (id.equals(-1)) {
28+
if (id == -1L) {
2929
mutableError.value = Resource().getString(R.string.error_fetching_event_message)
3030
return
3131
}

app/src/main/java/org/fossasia/openevent/general/auth/EditProfileViewModel.kt

Lines changed: 9 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package org.fossasia.openevent.general.auth
33
import androidx.lifecycle.LiveData
44
import androidx.lifecycle.MutableLiveData
55
import androidx.lifecycle.ViewModel
6+
import io.reactivex.Single
67
import io.reactivex.disposables.CompositeDisposable
78
import io.reactivex.rxkotlin.plusAssign
89
import org.fossasia.openevent.general.utils.extensions.withDefaultSchedulers
@@ -35,30 +36,15 @@ class EditProfileViewModel(
3536
fun isLoggedIn() = authService.isLoggedIn()
3637

3738
fun updateProfile(user: User) {
38-
if (encodedImage.isNullOrEmpty()) {
39-
updateUser(user)
40-
return
41-
}
42-
compositeDisposable += authService.uploadImage(UploadImage(encodedImage))
43-
.withDefaultSchedulers()
44-
.doOnSubscribe {
45-
mutableProgress.value = true
46-
}
47-
.doFinally {
48-
mutableProgress.value = false
49-
}
50-
.subscribe({
51-
updateUser(user.copy(avatarUrl = it.url))
52-
mutableMessage.value = resource.getString(R.string.image_upload_success_message)
53-
Timber.d("Image uploaded ${it.url}")
54-
}) {
55-
mutableMessage.value = resource.getString(R.string.image_upload_error_message)
56-
Timber.e(it, "Error uploading user!")
57-
}
58-
}
39+
val updateProfileObservable: Single<User> =
40+
if (encodedImage.isNullOrEmpty())
41+
authService.updateUser(user)
42+
else
43+
authService.uploadImage(UploadImage(encodedImage)).flatMap {
44+
authService.updateUser(user.copy(avatarUrl = it.url))
45+
}
5946

60-
private fun updateUser(user: User) {
61-
compositeDisposable += authService.updateUser(user)
47+
compositeDisposable += updateProfileObservable
6248
.withDefaultSchedulers()
6349
.doOnSubscribe {
6450
mutableProgress.value = true

app/src/main/java/org/fossasia/openevent/general/event/EventDetailsViewModel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -303,15 +303,15 @@ class EventDetailsViewModel(
303303
val range = StringBuilder()
304304
if (maxPrice == minPrice) {
305305
if (maxPrice == 0f)
306-
range.append("Free")
306+
range.append(resource.getString(R.string.free))
307307
else {
308308
range.append(paymentCurrency)
309309
range.append(" ")
310310
range.append("%.2f".format(minPrice))
311311
}
312312
} else {
313313
if (minPrice == 0f)
314-
range.append("Free")
314+
range.append(resource.getString(R.string.free))
315315
else {
316316
range.append(paymentCurrency)
317317
range.append(" ")

app/src/main/java/org/fossasia/openevent/general/order/OrderDetailsViewModel.kt

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -54,31 +54,20 @@ class OrderDetailsViewModel(
5454
fun loadAttendeeDetails(orderId: Long) {
5555
if (orderId == -1L) return
5656

57-
compositeDisposable += orderService.getOrderById(orderId)
57+
compositeDisposable += orderService
58+
.getOrderById(orderId)
59+
.flatMap { order ->
60+
orderService.getAttendeesUnderOrder(order.identifier ?: "", order.attendees.map { it.id })
61+
}
5862
.withDefaultSchedulers()
5963
.doOnSubscribe {
6064
mutableProgress.value = true
61-
}.subscribe({
62-
loadAttendeeUnderOrder(it)
63-
}, {
64-
Timber.e(it, "Error fetching attendee details")
65+
}.doFinally {
6566
mutableProgress.value = false
66-
message.value = resource.getString(R.string.error_fetching_attendee_details_message)
67-
})
68-
}
69-
70-
private fun loadAttendeeUnderOrder(order: Order) {
71-
val orderIdentifier = order.identifier ?: return
72-
73-
compositeDisposable += orderService
74-
.getAttendeesUnderOrder(orderIdentifier, order.attendees.map { it.id })
75-
.withDefaultSchedulers()
76-
.subscribe({
67+
}.subscribe({
7768
mutableAttendees.value = it
78-
mutableProgress.value = false
7969
}, {
8070
Timber.e(it, "Error fetching attendee details")
81-
mutableProgress.value = false
8271
message.value = resource.getString(R.string.error_fetching_attendee_details_message)
8372
})
8473
}

0 commit comments

Comments
 (0)