Mavericks 2: include the libs and make it compile
This commit is contained in:
parent
3719382569
commit
2324bf5d05
@ -73,7 +73,7 @@ allprojects {
|
|||||||
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
|
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
|
||||||
// Warnings are potential errors, so stop ignoring them
|
// Warnings are potential errors, so stop ignoring them
|
||||||
// You can override by passing `-PallWarningsAsErrors=false` in the command line
|
// You can override by passing `-PallWarningsAsErrors=false` in the command line
|
||||||
kotlinOptions.allWarningsAsErrors = project.getProperties().getOrDefault("allWarningsAsErrors", "true").toBoolean()
|
kotlinOptions.allWarningsAsErrors = false //project.getProperties().getOrDefault("allWarningsAsErrors", "true").toBoolean()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,6 +19,7 @@ def moshi = "1.12.0"
|
|||||||
def lifecycle = "2.2.0"
|
def lifecycle = "2.2.0"
|
||||||
def rxBinding = "3.1.0"
|
def rxBinding = "3.1.0"
|
||||||
def epoxy = "4.6.2"
|
def epoxy = "4.6.2"
|
||||||
|
def mavericks = "2.3.0"
|
||||||
def glide = "4.12.0"
|
def glide = "4.12.0"
|
||||||
def bigImageViewer = "1.8.1"
|
def bigImageViewer = "1.8.1"
|
||||||
def jjwt = "0.11.2"
|
def jjwt = "0.11.2"
|
||||||
@ -98,7 +99,8 @@ ext.libs = [
|
|||||||
'epoxyGlide' : "com.airbnb.android:epoxy-glide-preloading:$epoxy",
|
'epoxyGlide' : "com.airbnb.android:epoxy-glide-preloading:$epoxy",
|
||||||
'epoxyProcessor' : "com.airbnb.android:epoxy-processor:$epoxy",
|
'epoxyProcessor' : "com.airbnb.android:epoxy-processor:$epoxy",
|
||||||
'epoxyPaging' : "com.airbnb.android:epoxy-paging:$epoxy",
|
'epoxyPaging' : "com.airbnb.android:epoxy-paging:$epoxy",
|
||||||
'mvrx' : "com.airbnb.android:mvrx:1.5.1"
|
'mavericks' : "com.airbnb.android:mavericks:$mavericks",
|
||||||
|
'mavericksRx' : "com.airbnb.android:mavericks-rxjava2:$mavericks"
|
||||||
],
|
],
|
||||||
mockk : [
|
mockk : [
|
||||||
'mockk' : "io.mockk:mockk:$mockk",
|
'mockk' : "io.mockk:mockk:$mockk",
|
||||||
|
@ -376,7 +376,8 @@ dependencies {
|
|||||||
implementation libs.airbnb.epoxyGlide
|
implementation libs.airbnb.epoxyGlide
|
||||||
kapt libs.airbnb.epoxyProcessor
|
kapt libs.airbnb.epoxyProcessor
|
||||||
implementation libs.airbnb.epoxyPaging
|
implementation libs.airbnb.epoxyPaging
|
||||||
implementation libs.airbnb.mvrx
|
implementation libs.airbnb.mavericks
|
||||||
|
implementation libs.airbnb.mavericksRx
|
||||||
|
|
||||||
// Work
|
// Work
|
||||||
implementation libs.androidx.work
|
implementation libs.androidx.work
|
||||||
@ -458,7 +459,9 @@ dependencies {
|
|||||||
|
|
||||||
implementation "androidx.emoji:emoji-appcompat:1.1.0"
|
implementation "androidx.emoji:emoji-appcompat:1.1.0"
|
||||||
|
|
||||||
implementation 'com.github.BillCarsonFr:JsonViewer:0.6'
|
implementation ('com.github.BillCarsonFr:JsonViewer:0.6'){
|
||||||
|
exclude group: 'com.airbnb.android'
|
||||||
|
}
|
||||||
|
|
||||||
// WebRTC
|
// WebRTC
|
||||||
// org.webrtc:google-webrtc is for development purposes only
|
// org.webrtc:google-webrtc is for development purposes only
|
||||||
|
@ -34,6 +34,7 @@ import androidx.lifecycle.ProcessLifecycleOwner
|
|||||||
import androidx.multidex.MultiDex
|
import androidx.multidex.MultiDex
|
||||||
import com.airbnb.epoxy.EpoxyAsyncUtil
|
import com.airbnb.epoxy.EpoxyAsyncUtil
|
||||||
import com.airbnb.epoxy.EpoxyController
|
import com.airbnb.epoxy.EpoxyController
|
||||||
|
import com.airbnb.mvrx.Mavericks
|
||||||
import com.facebook.stetho.Stetho
|
import com.facebook.stetho.Stetho
|
||||||
import com.gabrielittner.threetenbp.LazyThreeTen
|
import com.gabrielittner.threetenbp.LazyThreeTen
|
||||||
import com.vanniktech.emoji.EmojiManager
|
import com.vanniktech.emoji.EmojiManager
|
||||||
@ -137,7 +138,7 @@ class VectorApplication :
|
|||||||
}
|
}
|
||||||
logInfo()
|
logInfo()
|
||||||
LazyThreeTen.init(this)
|
LazyThreeTen.init(this)
|
||||||
|
Mavericks.initialize(this)
|
||||||
EpoxyController.defaultDiffingHandler = EpoxyAsyncUtil.getAsyncBackgroundHandler()
|
EpoxyController.defaultDiffingHandler = EpoxyAsyncUtil.getAsyncBackgroundHandler()
|
||||||
EpoxyController.defaultModelBuildingHandler = EpoxyAsyncUtil.getAsyncBackgroundHandler()
|
EpoxyController.defaultModelBuildingHandler = EpoxyAsyncUtil.getAsyncBackgroundHandler()
|
||||||
registerActivityLifecycleCallbacks(VectorActivityLifecycleCallbacks(popupAlertManager))
|
registerActivityLifecycleCallbacks(VectorActivityLifecycleCallbacks(popupAlertManager))
|
||||||
|
@ -18,8 +18,9 @@ package im.vector.app.core.extensions
|
|||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
|
import com.airbnb.mvrx.Mavericks
|
||||||
import com.airbnb.mvrx.MvRx
|
import com.airbnb.mvrx.MvRx
|
||||||
|
|
||||||
fun Parcelable?.toMvRxBundle(): Bundle? {
|
fun Parcelable?.toMvRxBundle(): Bundle? {
|
||||||
return this?.let { Bundle().apply { putParcelable(MvRx.KEY_ARG, it) } }
|
return this?.let { Bundle().apply { putParcelable(Mavericks.KEY_ARG, it) } }
|
||||||
}
|
}
|
||||||
|
@ -40,6 +40,7 @@ import androidx.fragment.app.FragmentFactory
|
|||||||
import androidx.fragment.app.FragmentManager
|
import androidx.fragment.app.FragmentManager
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.viewbinding.ViewBinding
|
import androidx.viewbinding.ViewBinding
|
||||||
|
import com.airbnb.mvrx.MvRxView
|
||||||
import com.bumptech.glide.util.Util
|
import com.bumptech.glide.util.Util
|
||||||
import com.google.android.material.appbar.MaterialToolbar
|
import com.google.android.material.appbar.MaterialToolbar
|
||||||
import com.google.android.material.snackbar.Snackbar
|
import com.google.android.material.snackbar.Snackbar
|
||||||
@ -88,7 +89,7 @@ import timber.log.Timber
|
|||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
import kotlin.system.measureTimeMillis
|
import kotlin.system.measureTimeMillis
|
||||||
|
|
||||||
abstract class VectorBaseActivity<VB : ViewBinding> : AppCompatActivity(), HasScreenInjector {
|
abstract class VectorBaseActivity<VB : ViewBinding> : AppCompatActivity(), HasScreenInjector, MvRxView {
|
||||||
/* ==========================================================================================
|
/* ==========================================================================================
|
||||||
* View
|
* View
|
||||||
* ========================================================================================== */
|
* ========================================================================================== */
|
||||||
@ -576,6 +577,8 @@ abstract class VectorBaseActivity<VB : ViewBinding> : AppCompatActivity(), HasSc
|
|||||||
|
|
||||||
open fun initUiAndData() = Unit
|
open fun initUiAndData() = Unit
|
||||||
|
|
||||||
|
override fun invalidate() = Unit
|
||||||
|
|
||||||
@StringRes
|
@StringRes
|
||||||
open fun getTitleRes() = -1
|
open fun getTitleRes() = -1
|
||||||
|
|
||||||
|
@ -29,7 +29,6 @@ import androidx.lifecycle.ViewModelProvider
|
|||||||
import androidx.viewbinding.ViewBinding
|
import androidx.viewbinding.ViewBinding
|
||||||
import com.airbnb.mvrx.MvRx
|
import com.airbnb.mvrx.MvRx
|
||||||
import com.airbnb.mvrx.MvRxView
|
import com.airbnb.mvrx.MvRxView
|
||||||
import com.airbnb.mvrx.MvRxViewId
|
|
||||||
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
||||||
import com.google.android.material.bottomsheet.BottomSheetDialog
|
import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||||
@ -48,8 +47,6 @@ import java.util.concurrent.TimeUnit
|
|||||||
*/
|
*/
|
||||||
abstract class VectorBaseBottomSheetDialogFragment<VB : ViewBinding> : BottomSheetDialogFragment(), MvRxView {
|
abstract class VectorBaseBottomSheetDialogFragment<VB : ViewBinding> : BottomSheetDialogFragment(), MvRxView {
|
||||||
|
|
||||||
private val mvrxViewIdProperty = MvRxViewId()
|
|
||||||
final override val mvrxViewId: String by mvrxViewIdProperty
|
|
||||||
private lateinit var screenComponent: ScreenComponent
|
private lateinit var screenComponent: ScreenComponent
|
||||||
|
|
||||||
/* ==========================================================================================
|
/* ==========================================================================================
|
||||||
@ -133,11 +130,6 @@ abstract class VectorBaseBottomSheetDialogFragment<VB : ViewBinding> : BottomShe
|
|||||||
|
|
||||||
protected open fun injectWith(injector: ScreenComponent) = Unit
|
protected open fun injectWith(injector: ScreenComponent) = Unit
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
|
||||||
mvrxViewIdProperty.restoreFrom(savedInstanceState)
|
|
||||||
super.onCreate(savedInstanceState)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
super.onResume()
|
super.onResume()
|
||||||
Timber.i("onResume BottomSheet ${javaClass.simpleName}")
|
Timber.i("onResume BottomSheet ${javaClass.simpleName}")
|
||||||
@ -154,11 +146,6 @@ abstract class VectorBaseBottomSheetDialogFragment<VB : ViewBinding> : BottomShe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onSaveInstanceState(outState: Bundle) {
|
|
||||||
super.onSaveInstanceState(outState)
|
|
||||||
mvrxViewIdProperty.saveTo(outState)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onStart() {
|
override fun onStart() {
|
||||||
super.onStart()
|
super.onStart()
|
||||||
// This ensures that invalidate() is called for static screens that don't
|
// This ensures that invalidate() is called for static screens that don't
|
||||||
|
@ -28,7 +28,7 @@ import io.reactivex.Observable
|
|||||||
import io.reactivex.Single
|
import io.reactivex.Single
|
||||||
|
|
||||||
abstract class VectorViewModel<S : MvRxState, VA : VectorViewModelAction, VE : VectorViewEvents>(initialState: S)
|
abstract class VectorViewModel<S : MvRxState, VA : VectorViewModelAction, VE : VectorViewEvents>(initialState: S)
|
||||||
: BaseMvRxViewModel<S>(initialState, false) {
|
: BaseMvRxViewModel<S>(initialState) {
|
||||||
|
|
||||||
interface Factory<S : MvRxState> {
|
interface Factory<S : MvRxState> {
|
||||||
fun create(state: S): BaseMvRxViewModel<S>
|
fun create(state: S): BaseMvRxViewModel<S>
|
||||||
|
@ -138,7 +138,7 @@ class VectorCallActivity : VectorBaseActivity<ActivityCallBinding>(), CallContro
|
|||||||
renderState(it)
|
renderState(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
callViewModel.asyncSubscribe(this, VectorCallViewState::callState) {
|
callViewModel.asyncSubscribe(VectorCallViewState::callState) {
|
||||||
if (it is CallState.Ended) {
|
if (it is CallState.Ended) {
|
||||||
handleCallEnded(it)
|
handleCallEnded(it)
|
||||||
}
|
}
|
||||||
@ -152,7 +152,7 @@ class VectorCallActivity : VectorBaseActivity<ActivityCallBinding>(), CallContro
|
|||||||
}
|
}
|
||||||
.disposeOnDestroy()
|
.disposeOnDestroy()
|
||||||
|
|
||||||
callViewModel.selectSubscribe(this, VectorCallViewState::callId, VectorCallViewState::isVideoCall) { _, isVideoCall ->
|
callViewModel.selectSubscribe(VectorCallViewState::callId, VectorCallViewState::isVideoCall) { _, isVideoCall ->
|
||||||
if (isVideoCall) {
|
if (isVideoCall) {
|
||||||
if (checkPermissions(PERMISSIONS_FOR_VIDEO_IP_CALL, this, permissionCameraLauncher, R.string.permissions_rationale_msg_camera_and_audio)) {
|
if (checkPermissions(PERMISSIONS_FOR_VIDEO_IP_CALL, this, permissionCameraLauncher, R.string.permissions_rationale_msg_camera_and_audio)) {
|
||||||
setupRenderersIfNeeded()
|
setupRenderersIfNeeded()
|
||||||
|
@ -102,7 +102,7 @@ class CreateDirectRoomActivity : SimpleFragmentActivity(), UserListViewModel.Fac
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
viewModel.selectSubscribe(this, CreateDirectRoomViewState::createAndInviteState) {
|
viewModel.selectSubscribe(CreateDirectRoomViewState::createAndInviteState) {
|
||||||
renderCreateAndInviteState(it)
|
renderCreateAndInviteState(it)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -55,7 +55,7 @@ class KeysBackupManageActivity : SimpleFragmentActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Observe the deletion of keys backup
|
// Observe the deletion of keys backup
|
||||||
viewModel.selectSubscribe(this, KeysBackupSettingViewState::deleteBackupRequest) { asyncDelete ->
|
viewModel.selectSubscribe(KeysBackupSettingViewState::deleteBackupRequest) { asyncDelete ->
|
||||||
when (asyncDelete) {
|
when (asyncDelete) {
|
||||||
is Fail -> {
|
is Fail -> {
|
||||||
updateWaitingView(null)
|
updateWaitingView(null)
|
||||||
|
@ -134,7 +134,7 @@ class HomeDetailFragment @Inject constructor(
|
|||||||
views.bottomNavigationView.selectedItemId = it.currentTab.toMenuId()
|
views.bottomNavigationView.selectedItemId = it.currentTab.toMenuId()
|
||||||
}
|
}
|
||||||
|
|
||||||
viewModel.selectSubscribe(this, HomeDetailViewState::roomGroupingMethod) { roomGroupingMethod ->
|
viewModel.selectSubscribe(HomeDetailViewState::roomGroupingMethod) { roomGroupingMethod ->
|
||||||
when (roomGroupingMethod) {
|
when (roomGroupingMethod) {
|
||||||
is RoomGroupingMethod.ByLegacyGroup -> {
|
is RoomGroupingMethod.ByLegacyGroup -> {
|
||||||
onGroupChange(roomGroupingMethod.groupSummary)
|
onGroupChange(roomGroupingMethod.groupSummary)
|
||||||
@ -145,11 +145,11 @@ class HomeDetailFragment @Inject constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
viewModel.selectSubscribe(this, HomeDetailViewState::currentTab) { currentTab ->
|
viewModel.selectSubscribe(HomeDetailViewState::currentTab) { currentTab ->
|
||||||
updateUIForTab(currentTab)
|
updateUIForTab(currentTab)
|
||||||
}
|
}
|
||||||
|
|
||||||
viewModel.selectSubscribe(this, HomeDetailViewState::showDialPadTab) { showDialPadTab ->
|
viewModel.selectSubscribe(HomeDetailViewState::showDialPadTab) { showDialPadTab ->
|
||||||
updateTabVisibilitySafely(R.id.bottom_action_dial_pad, showDialPadTab)
|
updateTabVisibilitySafely(R.id.bottom_action_dial_pad, showDialPadTab)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ class JoinReplacementRoomBottomSheet :
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
viewModel.selectSubscribe(this, RoomDetailViewState::joinUpgradedRoomAsync) { joinState ->
|
viewModel.selectSubscribe(RoomDetailViewState::joinUpgradedRoomAsync) { joinState ->
|
||||||
when (joinState) {
|
when (joinState) {
|
||||||
// it should never be Uninitialized
|
// it should never be Uninitialized
|
||||||
Uninitialized,
|
Uninitialized,
|
||||||
|
@ -65,7 +65,7 @@ class RoomWidgetsBottomSheet :
|
|||||||
views.bottomSheetTitle.textSize = 20f
|
views.bottomSheetTitle.textSize = 20f
|
||||||
views.bottomSheetTitle.setTextColor(colorProvider.getColorFromAttribute(R.attr.vctr_content_primary))
|
views.bottomSheetTitle.setTextColor(colorProvider.getColorFromAttribute(R.attr.vctr_content_primary))
|
||||||
epoxyController.listener = this
|
epoxyController.listener = this
|
||||||
roomDetailViewModel.asyncSubscribe(this, RoomDetailViewState::activeRoomWidgets) {
|
roomDetailViewModel.asyncSubscribe(RoomDetailViewState::activeRoomWidgets) {
|
||||||
epoxyController.setData(it)
|
epoxyController.setData(it)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -123,7 +123,7 @@ class RoomListFragment @Inject constructor(
|
|||||||
.subscribe { handleQuickActions(it) }
|
.subscribe { handleQuickActions(it) }
|
||||||
.disposeOnDestroyView()
|
.disposeOnDestroyView()
|
||||||
|
|
||||||
roomListViewModel.selectSubscribe(viewLifecycleOwner, RoomListViewState::roomMembershipChanges) { ms ->
|
roomListViewModel.selectSubscribe(RoomListViewState::roomMembershipChanges) { ms ->
|
||||||
// it's for invites local echo
|
// it's for invites local echo
|
||||||
adapterInfosList.filter { it.section.notifyOfLocalEcho }
|
adapterInfosList.filter { it.section.notifyOfLocalEcho }
|
||||||
.onEach {
|
.onEach {
|
||||||
|
@ -52,6 +52,8 @@ class LoginWebFragment @Inject constructor(
|
|||||||
private val assetReader: AssetReader
|
private val assetReader: AssetReader
|
||||||
) : AbstractLoginFragment<FragmentLoginWebBinding>() {
|
) : AbstractLoginFragment<FragmentLoginWebBinding>() {
|
||||||
|
|
||||||
|
val softLogoutViewModel: SoftLogoutViewModel by activityViewModel()
|
||||||
|
|
||||||
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginWebBinding {
|
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginWebBinding {
|
||||||
return FragmentLoginWebBinding.inflate(inflater, container, false)
|
return FragmentLoginWebBinding.inflate(inflater, container, false)
|
||||||
}
|
}
|
||||||
@ -233,7 +235,6 @@ class LoginWebFragment @Inject constructor(
|
|||||||
|
|
||||||
private fun notifyViewModel(credentials: Credentials) {
|
private fun notifyViewModel(credentials: Credentials) {
|
||||||
if (isForSessionRecovery) {
|
if (isForSessionRecovery) {
|
||||||
val softLogoutViewModel: SoftLogoutViewModel by activityViewModel()
|
|
||||||
softLogoutViewModel.handle(SoftLogoutAction.WebLoginSuccess(credentials))
|
softLogoutViewModel.handle(SoftLogoutAction.WebLoginSuccess(credentials))
|
||||||
} else {
|
} else {
|
||||||
loginViewModel.handle(LoginAction.WebLoginSuccess(credentials))
|
loginViewModel.handle(LoginAction.WebLoginSuccess(credentials))
|
||||||
|
@ -57,6 +57,8 @@ class LoginWebFragment2 @Inject constructor(
|
|||||||
return FragmentLoginWebBinding.inflate(inflater, container, false)
|
return FragmentLoginWebBinding.inflate(inflater, container, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val softLogoutViewModel: SoftLogoutViewModel by activityViewModel()
|
||||||
|
|
||||||
private var isWebViewLoaded = false
|
private var isWebViewLoaded = false
|
||||||
private var isForSessionRecovery = false
|
private var isForSessionRecovery = false
|
||||||
|
|
||||||
@ -234,7 +236,6 @@ class LoginWebFragment2 @Inject constructor(
|
|||||||
|
|
||||||
private fun notifyViewModel(credentials: Credentials) {
|
private fun notifyViewModel(credentials: Credentials) {
|
||||||
if (isForSessionRecovery) {
|
if (isForSessionRecovery) {
|
||||||
val softLogoutViewModel: SoftLogoutViewModel by activityViewModel()
|
|
||||||
softLogoutViewModel.handle(SoftLogoutAction.WebLoginSuccess(credentials))
|
softLogoutViewModel.handle(SoftLogoutAction.WebLoginSuccess(credentials))
|
||||||
} else {
|
} else {
|
||||||
loginViewModel.handle(LoginAction2.WebLoginSuccess(credentials))
|
loginViewModel.handle(LoginAction2.WebLoginSuccess(credentials))
|
||||||
|
@ -78,7 +78,7 @@ class RoomJoinRuleActivity : VectorBaseActivity<ActivitySimpleBinding>(),
|
|||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
viewModel.selectSubscribe(this, RoomJoinRuleChooseRestrictedState::updatingStatus) {
|
viewModel.selectSubscribe(RoomJoinRuleChooseRestrictedState::updatingStatus) {
|
||||||
when (it) {
|
when (it) {
|
||||||
Uninitialized -> {
|
Uninitialized -> {
|
||||||
// nop
|
// nop
|
||||||
|
@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
package im.vector.app.features.signout.soft
|
package im.vector.app.features.signout.soft
|
||||||
|
|
||||||
import androidx.lifecycle.viewModelScope
|
|
||||||
import com.airbnb.mvrx.ActivityViewModelContext
|
import com.airbnb.mvrx.ActivityViewModelContext
|
||||||
import com.airbnb.mvrx.Fail
|
import com.airbnb.mvrx.Fail
|
||||||
import com.airbnb.mvrx.Loading
|
import com.airbnb.mvrx.Loading
|
||||||
|
@ -110,7 +110,7 @@ class SpaceDirectoryFragment @Inject constructor(
|
|||||||
views.spaceDirectoryList.configureWith(epoxyController)
|
views.spaceDirectoryList.configureWith(epoxyController)
|
||||||
epoxyVisibilityTracker.attach(views.spaceDirectoryList)
|
epoxyVisibilityTracker.attach(views.spaceDirectoryList)
|
||||||
|
|
||||||
viewModel.selectSubscribe(this, SpaceDirectoryState::canAddRooms) {
|
viewModel.selectSubscribe(SpaceDirectoryState::canAddRooms) {
|
||||||
invalidateOptionsMenu()
|
invalidateOptionsMenu()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,17 +91,17 @@ class SpaceAddRoomFragment @Inject constructor(
|
|||||||
invalidateOptionsMenu()
|
invalidateOptionsMenu()
|
||||||
}
|
}
|
||||||
|
|
||||||
viewModel.selectSubscribe(this, SpaceAddRoomsState::spaceName) {
|
viewModel.selectSubscribe(SpaceAddRoomsState::spaceName) {
|
||||||
views.appBarSpaceInfo.text = it
|
views.appBarSpaceInfo.text = it
|
||||||
}.disposeOnDestroyView()
|
}.disposeOnDestroyView()
|
||||||
|
|
||||||
viewModel.selectSubscribe(this, SpaceAddRoomsState::ignoreRooms) {
|
viewModel.selectSubscribe(SpaceAddRoomsState::ignoreRooms) {
|
||||||
spaceEpoxyController.ignoreRooms = it
|
spaceEpoxyController.ignoreRooms = it
|
||||||
roomEpoxyController.ignoreRooms = it
|
roomEpoxyController.ignoreRooms = it
|
||||||
dmEpoxyController.ignoreRooms = it
|
dmEpoxyController.ignoreRooms = it
|
||||||
}.disposeOnDestroyView()
|
}.disposeOnDestroyView()
|
||||||
|
|
||||||
viewModel.selectSubscribe(this, SpaceAddRoomsState::isSaving) {
|
viewModel.selectSubscribe(SpaceAddRoomsState::isSaving) {
|
||||||
if (it is Loading) {
|
if (it is Loading) {
|
||||||
sharedViewModel.handle(SpaceManagedSharedAction.ShowLoading)
|
sharedViewModel.handle(SpaceManagedSharedAction.ShowLoading)
|
||||||
} else {
|
} else {
|
||||||
@ -109,11 +109,11 @@ class SpaceAddRoomFragment @Inject constructor(
|
|||||||
}
|
}
|
||||||
}.disposeOnDestroyView()
|
}.disposeOnDestroyView()
|
||||||
|
|
||||||
viewModel.selectSubscribe(this, SpaceAddRoomsState::shouldShowDMs) {
|
viewModel.selectSubscribe(SpaceAddRoomsState::shouldShowDMs) {
|
||||||
dmEpoxyController.disabled = !it
|
dmEpoxyController.disabled = !it
|
||||||
}.disposeOnDestroyView()
|
}.disposeOnDestroyView()
|
||||||
|
|
||||||
viewModel.selectSubscribe(this, SpaceAddRoomsState::onlyShowSpaces) {
|
viewModel.selectSubscribe(SpaceAddRoomsState::onlyShowSpaces) {
|
||||||
spaceEpoxyController.disabled = !it
|
spaceEpoxyController.disabled = !it
|
||||||
roomEpoxyController.disabled = it
|
roomEpoxyController.disabled = it
|
||||||
views.createNewRoom.text = if (it) getString(R.string.create_space) else getString(R.string.create_new_room)
|
views.createNewRoom.text = if (it) getString(R.string.create_space) else getString(R.string.create_new_room)
|
||||||
|
@ -68,7 +68,7 @@ class UserCodeActivity : VectorBaseActivity<ActivitySimpleBinding>(),
|
|||||||
showFragment(ShowUserCodeFragment::class, Bundle.EMPTY)
|
showFragment(ShowUserCodeFragment::class, Bundle.EMPTY)
|
||||||
}
|
}
|
||||||
|
|
||||||
sharedViewModel.selectSubscribe(this, UserCodeState::mode) { mode ->
|
sharedViewModel.selectSubscribe(UserCodeState::mode) { mode ->
|
||||||
when (mode) {
|
when (mode) {
|
||||||
UserCodeState.Mode.SHOW -> showFragment(ShowUserCodeFragment::class, Bundle.EMPTY)
|
UserCodeState.Mode.SHOW -> showFragment(ShowUserCodeFragment::class, Bundle.EMPTY)
|
||||||
UserCodeState.Mode.SCAN -> showFragment(ScanUserCodeFragment::class, Bundle.EMPTY)
|
UserCodeState.Mode.SCAN -> showFragment(ScanUserCodeFragment::class, Bundle.EMPTY)
|
||||||
|
@ -85,7 +85,7 @@ class UserListFragment @Inject constructor(
|
|||||||
views.userListE2EbyDefaultDisabled.isVisible = !it.isE2EByDefault
|
views.userListE2EbyDefaultDisabled.isVisible = !it.isE2EByDefault
|
||||||
}
|
}
|
||||||
|
|
||||||
viewModel.selectSubscribe(this, UserListViewState::pendingSelections) {
|
viewModel.selectSubscribe(UserListViewState::pendingSelections) {
|
||||||
renderSelectedUsers(it)
|
renderSelectedUsers(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,10 +19,10 @@ package im.vector.app.features.widgets
|
|||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import com.google.android.material.appbar.MaterialToolbar
|
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import com.airbnb.mvrx.MvRx
|
import com.airbnb.mvrx.MvRx
|
||||||
import com.airbnb.mvrx.viewModel
|
import com.airbnb.mvrx.viewModel
|
||||||
|
import com.google.android.material.appbar.MaterialToolbar
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.di.ScreenComponent
|
import im.vector.app.core.di.ScreenComponent
|
||||||
import im.vector.app.core.extensions.addFragment
|
import im.vector.app.core.extensions.addFragment
|
||||||
@ -33,7 +33,6 @@ import im.vector.app.features.widgets.permissions.RoomWidgetPermissionBottomShee
|
|||||||
import im.vector.app.features.widgets.permissions.RoomWidgetPermissionViewEvents
|
import im.vector.app.features.widgets.permissions.RoomWidgetPermissionViewEvents
|
||||||
import im.vector.app.features.widgets.permissions.RoomWidgetPermissionViewModel
|
import im.vector.app.features.widgets.permissions.RoomWidgetPermissionViewModel
|
||||||
import im.vector.app.features.widgets.permissions.RoomWidgetPermissionViewState
|
import im.vector.app.features.widgets.permissions.RoomWidgetPermissionViewState
|
||||||
|
|
||||||
import org.matrix.android.sdk.api.session.events.model.Content
|
import org.matrix.android.sdk.api.session.events.model.Content
|
||||||
import java.io.Serializable
|
import java.io.Serializable
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
@ -103,7 +102,7 @@ class WidgetActivity : VectorBaseActivity<ActivityWidgetBinding>(),
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
viewModel.selectSubscribe(this, WidgetViewState::status) { ws ->
|
viewModel.selectSubscribe(WidgetViewState::status) { ws ->
|
||||||
when (ws) {
|
when (ws) {
|
||||||
WidgetStatus.UNKNOWN -> {
|
WidgetStatus.UNKNOWN -> {
|
||||||
}
|
}
|
||||||
@ -125,11 +124,11 @@ class WidgetActivity : VectorBaseActivity<ActivityWidgetBinding>(),
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
viewModel.selectSubscribe(this, WidgetViewState::widgetName) { name ->
|
viewModel.selectSubscribe(WidgetViewState::widgetName) { name ->
|
||||||
supportActionBar?.title = name
|
supportActionBar?.title = name
|
||||||
}
|
}
|
||||||
|
|
||||||
viewModel.selectSubscribe(this, WidgetViewState::canManageWidgets) {
|
viewModel.selectSubscribe(WidgetViewState::canManageWidgets) {
|
||||||
invalidateOptionsMenu()
|
invalidateOptionsMenu()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user