Skip to content

Commit

Permalink
MBL-808: BackingFragmentViewModel.kt to Jetpack ViewModel and RxJava2…
Browse files Browse the repository at this point in the history
….2 (#1931)

* migrate observables

* update tests

* fix crash

* linter

---------

Co-authored-by: Isabel Martin <arkariang@gmail.com>
  • Loading branch information
leighdouglas and Arkariang committed Jan 18, 2024
1 parent 30e9684 commit 5a328e3
Show file tree
Hide file tree
Showing 6 changed files with 404 additions and 328 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,10 @@ open class MockApolloClientV2 : ApolloClientTypeV2 {
override fun clearUnseenActivity(): io.reactivex.Observable<Int> {
return io.reactivex.Observable.just(0)
}

override fun getProjectBacking(slug: String): io.reactivex.Observable<Backing> {
return io.reactivex.Observable.just(BackingFactory.backing())
}
}

open class MockApolloClient : ApolloClientType {
Expand Down
37 changes: 37 additions & 0 deletions app/src/main/java/com/kickstarter/services/KSApolloClientV2.kt
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,8 @@ interface ApolloClientTypeV2 {
fun erroredBackings(): Observable<List<ErroredBacking>>

fun clearUnseenActivity(): Observable<Int>

fun getProjectBacking(slug: String): Observable<Backing>
}

private const val PAGE_SIZE = 25
Expand Down Expand Up @@ -1348,4 +1350,39 @@ class KSApolloClientV2(val service: ApolloClient) : ApolloClientTypeV2 {
return@defer ps
}
}

override fun getProjectBacking(slug: String): Observable<Backing> {
return Observable.defer {
val ps = PublishSubject.create<Backing>()

this.service.query(
GetProjectBackingQuery.builder()
.slug(slug)
.build()
)
.enqueue(object : ApolloCall.Callback<GetProjectBackingQuery.Data>() {
override fun onFailure(e: ApolloException) {
ps.onError(e)
}

override fun onResponse(response: Response<GetProjectBackingQuery.Data>) {
if (response.hasErrors()) {
ps.onError(Exception(response.errors?.first()?.message))
} else {
response.data?.let { data ->
data.project()?.backing()?.fragments()?.backing()?.let { backingObj ->
val backing = backingTransformer(
backingObj
)

ps.onNext(backing)
ps.onComplete()
}
}
}
}
})
return@defer ps
}.subscribeOn(Schedulers.io())
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -621,6 +621,9 @@ class ProjectPageActivity :
is RewardsFragment -> {
fragment.setState(expand && fragment.isVisible)
}
is BackingFragment -> {
fragment.setState(expand && fragment.isVisible)
}
}
}
}
Expand Down
Loading

0 comments on commit 5a328e3

Please sign in to comment.