Use observeEvent when appropriate
This commit is contained in:
parent
b47ef9220e
commit
9c654ba72c
@ -25,6 +25,7 @@ import androidx.lifecycle.ViewModelProviders
|
||||
import im.vector.fragments.keysbackup.restore.KeysBackupRestoreFromPassphraseFragment
|
||||
import im.vector.fragments.keysbackup.restore.KeysBackupRestoreSharedViewModel
|
||||
import im.vector.riotredesign.R
|
||||
import im.vector.riotredesign.core.extensions.observeEvent
|
||||
import im.vector.riotredesign.core.platform.SimpleFragmentActivity
|
||||
|
||||
class KeysBackupRestoreActivity : SimpleFragmentActivity() {
|
||||
@ -61,11 +62,10 @@ class KeysBackupRestoreActivity : SimpleFragmentActivity() {
|
||||
}
|
||||
})
|
||||
|
||||
viewModel.keyVersionResultError.observe(this, Observer { uxStateEvent ->
|
||||
uxStateEvent?.getContentIfNotHandled()?.let {
|
||||
viewModel.keyVersionResultError.observeEvent(this) { message ->
|
||||
AlertDialog.Builder(this)
|
||||
.setTitle(R.string.unknown_error)
|
||||
.setMessage(it)
|
||||
.setMessage(message)
|
||||
.setCancelable(false)
|
||||
.setPositiveButton(R.string.ok) { _, _ ->
|
||||
//nop
|
||||
@ -73,15 +73,14 @@ class KeysBackupRestoreActivity : SimpleFragmentActivity() {
|
||||
}
|
||||
.show()
|
||||
}
|
||||
})
|
||||
|
||||
if (viewModel.keyVersionResult.value == null) {
|
||||
//We need to fetch from API
|
||||
viewModel.getLatestVersion(this)
|
||||
}
|
||||
|
||||
viewModel.navigateEvent.observe(this, Observer { uxStateEvent ->
|
||||
when (uxStateEvent?.getContentIfNotHandled()) {
|
||||
viewModel.navigateEvent.observeEvent(this) { uxStateEvent ->
|
||||
when (uxStateEvent) {
|
||||
KeysBackupRestoreSharedViewModel.NAVIGATE_TO_RECOVER_WITH_KEY -> {
|
||||
supportFragmentManager.beginTransaction()
|
||||
.replace(R.id.container, KeysBackupRestoreFromKeyFragment.newInstance())
|
||||
@ -95,19 +94,16 @@ class KeysBackupRestoreActivity : SimpleFragmentActivity() {
|
||||
.commit()
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
viewModel.loadingEvent.observe(this, Observer {
|
||||
updateWaitingView(it)
|
||||
})
|
||||
|
||||
viewModel.importRoomKeysFinishWithResult.observe(this, Observer {
|
||||
it?.getContentIfNotHandled()?.let {
|
||||
viewModel.importRoomKeysFinishWithResult.observeEvent(this) {
|
||||
//set data?
|
||||
setResult(Activity.RESULT_OK)
|
||||
finish()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
@ -25,6 +25,7 @@ import androidx.lifecycle.ViewModelProviders
|
||||
import im.vector.fragments.keysbackup.setup.KeysBackupSetupSharedViewModel
|
||||
import im.vector.riotredesign.R
|
||||
import im.vector.riotredesign.core.dialogs.ExportKeysDialog
|
||||
import im.vector.riotredesign.core.extensions.observeEvent
|
||||
import im.vector.riotredesign.core.platform.SimpleFragmentActivity
|
||||
|
||||
class KeysBackupSetupActivity : SimpleFragmentActivity() {
|
||||
@ -61,8 +62,8 @@ class KeysBackupSetupActivity : SimpleFragmentActivity() {
|
||||
}
|
||||
})
|
||||
|
||||
viewModel.navigateEvent.observe(this, Observer { uxStateEvent ->
|
||||
when (uxStateEvent?.getContentIfNotHandled()) {
|
||||
viewModel.navigateEvent.observeEvent(this) { uxStateEvent ->
|
||||
when (uxStateEvent) {
|
||||
KeysBackupSetupSharedViewModel.NAVIGATE_TO_STEP_2 -> {
|
||||
supportFragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE)
|
||||
supportFragmentManager.beginTransaction()
|
||||
@ -87,7 +88,7 @@ class KeysBackupSetupActivity : SimpleFragmentActivity() {
|
||||
exportKeysManually()
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
viewModel.prepareRecoverFailError.observe(this, Observer { error ->
|
||||
|
@ -22,11 +22,12 @@ import android.view.MenuItem
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.lifecycle.ViewModelProviders
|
||||
import im.vector.matrix.android.api.session.crypto.sas.CancelCode
|
||||
import im.vector.matrix.android.api.session.crypto.sas.IncomingSasVerificationTransaction
|
||||
import im.vector.matrix.android.api.session.crypto.sas.OutgoingSasVerificationRequest
|
||||
import im.vector.matrix.android.api.session.crypto.sas.CancelCode
|
||||
import im.vector.matrix.android.api.session.crypto.sas.SasVerificationTxState
|
||||
import im.vector.riotredesign.R
|
||||
import im.vector.riotredesign.core.extensions.observeEvent
|
||||
import im.vector.riotredesign.core.platform.SimpleFragmentActivity
|
||||
import im.vector.riotredesign.core.platform.WaitingViewData
|
||||
|
||||
@ -159,8 +160,8 @@ class SASVerificationActivity : SimpleFragmentActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
viewModel.navigateEvent.observe(this, Observer { uxStateEvent ->
|
||||
when (uxStateEvent?.getContentIfNotHandled()) {
|
||||
viewModel.navigateEvent.observeEvent(this) { uxStateEvent ->
|
||||
when (uxStateEvent) {
|
||||
SasVerificationViewModel.NAVIGATE_FINISH -> {
|
||||
finish()
|
||||
}
|
||||
@ -216,7 +217,7 @@ class SASVerificationActivity : SimpleFragmentActivity() {
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
viewModel.loadingLiveEvent.observe(this, Observer {
|
||||
if (it == null) {
|
||||
|
@ -36,7 +36,6 @@ import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.lifecycle.ViewModelProviders
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
@ -192,15 +191,13 @@ class RoomDetailFragment :
|
||||
textComposerViewModel.subscribe { renderTextComposerState(it) }
|
||||
roomDetailViewModel.sendMessageResultLiveData.observeEvent(this) { renderSendMessageResult(it) }
|
||||
|
||||
roomDetailViewModel.nonBlockingPopAlert.observe(this, Observer { liveEvent ->
|
||||
liveEvent.getContentIfNotHandled()?.let {
|
||||
val message = requireContext().getString(it.first, *it.second.toTypedArray())
|
||||
roomDetailViewModel.nonBlockingPopAlert.observeEvent(this) { pair ->
|
||||
val message = requireContext().getString(pair.first, *pair.second.toTypedArray())
|
||||
showSnackWithMessage(message, Snackbar.LENGTH_LONG)
|
||||
}
|
||||
})
|
||||
actionViewModel.actionCommandEvent.observe(this, Observer {
|
||||
actionViewModel.actionCommandEvent.observeEvent(this) {
|
||||
handleActions(it)
|
||||
})
|
||||
}
|
||||
|
||||
roomDetailViewModel.selectSubscribe(
|
||||
RoomDetailViewState::sendMode,
|
||||
@ -614,9 +611,7 @@ class RoomDetailFragment :
|
||||
textComposerViewModel.process(TextComposerActions.QueryUsers(query))
|
||||
}
|
||||
|
||||
private fun handleActions(it: LiveEvent<ActionsHandler.ActionData>?) {
|
||||
it?.getContentIfNotHandled()?.let { actionData ->
|
||||
|
||||
private fun handleActions(actionData: ActionsHandler.ActionData) {
|
||||
when (actionData.actionId) {
|
||||
MessageMenuViewModel.ACTION_ADD_REACTION -> {
|
||||
val eventId = actionData.data?.toString() ?: return
|
||||
@ -711,7 +706,6 @@ class RoomDetailFragment :
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//utils
|
||||
/**
|
||||
|
@ -30,6 +30,7 @@ import androidx.lifecycle.ViewModelProviders
|
||||
import com.google.android.material.tabs.TabLayout
|
||||
import im.vector.riotredesign.EmojiCompatFontProvider
|
||||
import im.vector.riotredesign.R
|
||||
import im.vector.riotredesign.core.extensions.observeEvent
|
||||
import im.vector.riotredesign.core.platform.VectorBaseActivity
|
||||
import kotlinx.android.synthetic.main.activity_emoji_reaction_picker.*
|
||||
import org.koin.android.ext.android.inject
|
||||
@ -102,8 +103,7 @@ class EmojiReactionPickerActivity : VectorBaseActivity(), EmojiCompatFontProvide
|
||||
}
|
||||
})
|
||||
|
||||
viewModel.navigateEvent.observe(this, Observer {
|
||||
it.getContentIfNotHandled()?.let {
|
||||
viewModel.navigateEvent.observeEvent(this) {
|
||||
if (it == EmojiChooserViewModel.NAVIGATE_FINISH) {
|
||||
//finish with result
|
||||
val dataResult = Intent()
|
||||
@ -113,7 +113,6 @@ class EmojiReactionPickerActivity : VectorBaseActivity(), EmojiCompatFontProvide
|
||||
finish()
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
override fun compatibilityFontUpdate(typeface: Typeface?) {
|
||||
|
@ -19,7 +19,6 @@ package im.vector.riotredesign.features.roomdirectory
|
||||
import android.os.Bundle
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.lifecycle.ViewModelProviders
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.airbnb.epoxy.EpoxyVisibilityTracker
|
||||
@ -30,6 +29,7 @@ import com.jakewharton.rxbinding2.widget.RxTextView
|
||||
import im.vector.matrix.android.api.session.room.model.roomdirectory.PublicRoom
|
||||
import im.vector.riotredesign.R
|
||||
import im.vector.riotredesign.core.error.ErrorFormatter
|
||||
import im.vector.riotredesign.core.extensions.observeEvent
|
||||
import im.vector.riotredesign.core.platform.VectorBaseFragment
|
||||
import im.vector.riotredesign.features.themes.ThemeUtils
|
||||
import io.reactivex.rxkotlin.subscribeBy
|
||||
@ -79,12 +79,10 @@ class PublicRoomsFragment : VectorBaseFragment(), PublicRoomsController.Callback
|
||||
navigationViewModel.goTo(RoomDirectoryActivity.Navigation.CreateRoom)
|
||||
}
|
||||
|
||||
viewModel.joinRoomErrorLiveData.observe(this, Observer {
|
||||
it.getContentIfNotHandled()?.let { throwable ->
|
||||
viewModel.joinRoomErrorLiveData.observeEvent(this) { throwable ->
|
||||
Snackbar.make(publicRoomsCoordinator, errorFormatter.toHumanReadable(throwable), Snackbar.LENGTH_SHORT)
|
||||
.show()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
|
Loading…
x
Reference in New Issue
Block a user