Skip to content

Instantly share code, notes, and snippets.

View khunzohn's full-sized avatar
🏠
Working from home

khunzohn khunzohn

🏠
Working from home
  • BandLab
  • Myanmar
View GitHub Profile
public void getUser(String userId) {
getView().showLoading(“fetching user…”);
Subscription sub = userRepository.getUser(userId) 
.subscribeOn(Schedulers.io())
.observeOn(AndroidScheduler.mainThread())
.subscribe(user -> {
getView().stopLoading();
getView().render(user);
},e->{
interface MovieService {
@GET("movie/now_playing")
suspend fun getUpcomingMovies(@Query("api_key") apiKey: String): Response<MovieResponse>
}
interface MovieService {
@GET("movie/now_playing")
suspend fun getUpcomingMovies(@Query("api_key") apiKey: String): Response<MovieResponse>
}
viewModelScope.launch {
try {
val movies = movieService.getUpcomingMovies()
} catch (e: Exception) {
//...
}
}
data class MovieResponse(
val errorCode: Int?,
val errorMessage: String?,
val results: List<MovieData>
)
class FetchMacsUseCase constructor(
private val productRepository: ProductRepository
) {
fun run(): Observable<MacsPartialState> {
return productRepository.fetchMacs()
.toObservable()
.map { MacsPartialState.MacsResult(it) }
.cast(MacsPartialState::class.java)
.startWith(MacsPartialState.LoadingMacs)
.onErrorReturn { error -> MacsPartialState.LoadMacsError(error) }