- 상품상세 화면에서 좋아요를 하고 홈탭으로 돌아갔을때 이벤트 전파
- 마이페이지 탭에서 좋아요를 취소하고 홈탭으로 돌아갔을때 이벤트 전파
예전에 Rxbus와 같은 개념
1. 모델 생성
sealed interface WishEvent {
data class AddWish(
val id: Long
) : WishEvent
data class RemoveWish(
val id: Long
) : WishEvent
}
2. 도메인 레이어 : 싱글톤으로 생성된 service에 구독할 Flowable함수와 값을 전달할 Processor 변수 추가
private val _event: FlowableProcessor<WishEvent> = PublishProcessor.create()
override fun fetchEvent(): Flowable<WishEvent> = _event.hide()
3. 도메인 레이어 : service에 좋아요통신을 하는 함수가 완료된 후 값 추가
override fun create(productId: Long): Completable = wishRepository.create(productId)
.doOnComplete { _event.onNext(WishEvent.AddWish(productId)) }
override fun delete(productId: Long): Completable = wishRepository.delete(productId)
.doOnComplete { _event.onNext(WishEvent.RemoveWish(productId)) }
4. 뷰모델 : Flowable 을 구독하면서 UI이벤트 처리
val fetchWishEvent = wishService.fetchEvent()
.toObservable()
.share()
//TODO
fetchWishEvent를 받았을때 현재리스트 LiveData를 수정
'Android' 카테고리의 다른 글
Fragment 공부 (0) | 2022.06.24 |
---|---|
WebView 파일 업로드 (0) | 2022.06.14 |
액티비티간, fragment간 값 전달 하기 (ViewModel X) (0) | 2022.02.12 |
쿠키로 Auth인증하는 방법 (Interceptor 첨부) (0) | 2022.02.12 |
음성 파일 서버 업로드하기 (0) | 2022.01.10 |