Remove usage of SingleLiveEvent from MediaCaptureViewModel.
This commit is contained in:
parent
c56e63d62f
commit
4a5a65ff6c
2 changed files with 9 additions and 7 deletions
|
@ -58,7 +58,7 @@ class MediaCaptureFragment : Fragment(R.layout.fragment_container), CameraFragme
|
||||||
.replace(R.id.fragment_container, captureChildFragment as Fragment)
|
.replace(R.id.fragment_container, captureChildFragment as Fragment)
|
||||||
.commitNowAllowingStateLoss()
|
.commitNowAllowingStateLoss()
|
||||||
|
|
||||||
viewModel.events.observe(viewLifecycleOwner) { event ->
|
lifecycleDisposable += viewModel.events.subscribe { event ->
|
||||||
@Exhaustive
|
@Exhaustive
|
||||||
when (event) {
|
when (event) {
|
||||||
MediaCaptureEvent.MediaCaptureRenderFailed -> {
|
MediaCaptureEvent.MediaCaptureRenderFailed -> {
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
package org.thoughtcrime.securesms.mediasend.v2.capture
|
package org.thoughtcrime.securesms.mediasend.v2.capture
|
||||||
|
|
||||||
import androidx.lifecycle.LiveData
|
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
|
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||||
import io.reactivex.rxjava3.core.Flowable
|
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.mediasend.Media
|
||||||
import org.thoughtcrime.securesms.util.SingleLiveEvent
|
|
||||||
import org.thoughtcrime.securesms.util.rx.RxStore
|
import org.thoughtcrime.securesms.util.rx.RxStore
|
||||||
import java.io.FileDescriptor
|
import java.io.FileDescriptor
|
||||||
import java.util.Optional
|
import java.util.Optional
|
||||||
|
@ -14,9 +16,9 @@ class MediaCaptureViewModel(private val repository: MediaCaptureRepository) : Vi
|
||||||
|
|
||||||
private val store: RxStore<MediaCaptureState> = RxStore(MediaCaptureState())
|
private val store: RxStore<MediaCaptureState> = RxStore(MediaCaptureState())
|
||||||
|
|
||||||
private val internalEvents: SingleLiveEvent<MediaCaptureEvent> = SingleLiveEvent()
|
private val internalEvents: Subject<MediaCaptureEvent> = PublishSubject.create()
|
||||||
|
|
||||||
val events: LiveData<MediaCaptureEvent> = internalEvents
|
val events: Observable<MediaCaptureEvent> = internalEvents.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
|
||||||
init {
|
init {
|
||||||
repository.getMostRecentItem { media ->
|
repository.getMostRecentItem { media ->
|
||||||
|
@ -43,11 +45,11 @@ class MediaCaptureViewModel(private val repository: MediaCaptureRepository) : Vi
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun onMediaRendered(media: Media) {
|
private fun onMediaRendered(media: Media) {
|
||||||
internalEvents.postValue(MediaCaptureEvent.MediaCaptureRendered(media))
|
internalEvents.onNext(MediaCaptureEvent.MediaCaptureRendered(media))
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun onMediaRenderFailed() {
|
private fun onMediaRenderFailed() {
|
||||||
internalEvents.postValue(MediaCaptureEvent.MediaCaptureRenderFailed)
|
internalEvents.onNext(MediaCaptureEvent.MediaCaptureRenderFailed)
|
||||||
}
|
}
|
||||||
|
|
||||||
class Factory(private val repository: MediaCaptureRepository) : ViewModelProvider.Factory {
|
class Factory(private val repository: MediaCaptureRepository) : ViewModelProvider.Factory {
|
||||||
|
|
Loading…
Add table
Reference in a new issue