From 4a5a65ff6c7a2417f439d2085bc9110bd3d98099 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Fri, 9 Dec 2022 13:30:45 -0400 Subject: [PATCH] Remove usage of SingleLiveEvent from MediaCaptureViewModel. --- .../mediasend/v2/capture/MediaCaptureFragment.kt | 2 +- .../mediasend/v2/capture/MediaCaptureViewModel.kt | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/capture/MediaCaptureFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/capture/MediaCaptureFragment.kt index 276542097a..432ab1cc2a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/capture/MediaCaptureFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/capture/MediaCaptureFragment.kt @@ -58,7 +58,7 @@ class MediaCaptureFragment : Fragment(R.layout.fragment_container), CameraFragme .replace(R.id.fragment_container, captureChildFragment as Fragment) .commitNowAllowingStateLoss() - viewModel.events.observe(viewLifecycleOwner) { event -> + lifecycleDisposable += viewModel.events.subscribe { event -> @Exhaustive when (event) { MediaCaptureEvent.MediaCaptureRenderFailed -> { diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/capture/MediaCaptureViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/capture/MediaCaptureViewModel.kt index 564cf727a6..8c29068356 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/capture/MediaCaptureViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/capture/MediaCaptureViewModel.kt @@ -1,11 +1,13 @@ package org.thoughtcrime.securesms.mediasend.v2.capture -import androidx.lifecycle.LiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.core.Flowable +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.subjects.PublishSubject +import io.reactivex.rxjava3.subjects.Subject import org.thoughtcrime.securesms.mediasend.Media -import org.thoughtcrime.securesms.util.SingleLiveEvent import org.thoughtcrime.securesms.util.rx.RxStore import java.io.FileDescriptor import java.util.Optional @@ -14,9 +16,9 @@ class MediaCaptureViewModel(private val repository: MediaCaptureRepository) : Vi private val store: RxStore = RxStore(MediaCaptureState()) - private val internalEvents: SingleLiveEvent = SingleLiveEvent() + private val internalEvents: Subject = PublishSubject.create() - val events: LiveData = internalEvents + val events: Observable = internalEvents.observeOn(AndroidSchedulers.mainThread()) init { repository.getMostRecentItem { media -> @@ -43,11 +45,11 @@ class MediaCaptureViewModel(private val repository: MediaCaptureRepository) : Vi } private fun onMediaRendered(media: Media) { - internalEvents.postValue(MediaCaptureEvent.MediaCaptureRendered(media)) + internalEvents.onNext(MediaCaptureEvent.MediaCaptureRendered(media)) } private fun onMediaRenderFailed() { - internalEvents.postValue(MediaCaptureEvent.MediaCaptureRenderFailed) + internalEvents.onNext(MediaCaptureEvent.MediaCaptureRenderFailed) } class Factory(private val repository: MediaCaptureRepository) : ViewModelProvider.Factory {