Hilt: continue migration VM
This commit is contained in:
parent
9dd7017131
commit
968c2e70d2
@ -23,11 +23,38 @@ import dagger.multibindings.IntoMap
|
||||
import im.vector.app.features.auth.ReAuthViewModel
|
||||
import im.vector.app.features.call.VectorCallViewModel
|
||||
import im.vector.app.features.call.conference.JitsiCallViewModel
|
||||
import im.vector.app.features.call.transfer.CallTransferViewModel
|
||||
import im.vector.app.features.contactsbook.ContactsBookViewModel
|
||||
import im.vector.app.features.createdirect.CreateDirectRoomViewModel
|
||||
import im.vector.app.features.crypto.keysbackup.settings.KeysBackupSettingsViewModel
|
||||
import im.vector.app.features.crypto.quads.SharedSecureStorageViewModel
|
||||
import im.vector.app.features.devtools.RoomDevToolViewModel
|
||||
import im.vector.app.features.home.PromoteRestrictedViewModel
|
||||
import im.vector.app.features.home.room.detail.timeline.reactions.ViewReactionsViewModel
|
||||
import im.vector.app.features.home.room.detail.upgrade.MigrateRoomViewModel
|
||||
import im.vector.app.features.home.room.list.RoomListViewModel
|
||||
import im.vector.app.features.roomdirectory.RoomDirectoryViewModel
|
||||
import im.vector.app.features.roomdirectory.picker.RoomDirectoryPickerViewModel
|
||||
import im.vector.app.features.roomprofile.notifications.RoomNotificationSettingsViewModel
|
||||
import im.vector.app.features.settings.ignored.IgnoredUsersViewModel
|
||||
import im.vector.app.features.spaces.SpaceListViewModel
|
||||
import im.vector.app.features.spaces.create.CreateSpaceViewModel
|
||||
import im.vector.app.features.spaces.explore.SpaceDirectoryViewModel
|
||||
import im.vector.app.features.spaces.invite.SpaceInviteBottomSheetViewModel
|
||||
import im.vector.app.features.spaces.leave.SpaceLeaveAdvancedViewModel
|
||||
import im.vector.app.features.spaces.manage.SpaceAddRoomsViewModel
|
||||
import im.vector.app.features.spaces.manage.SpaceManageRoomsViewModel
|
||||
import im.vector.app.features.spaces.manage.SpaceManageSharedViewModel
|
||||
import im.vector.app.features.spaces.people.SpacePeopleViewModel
|
||||
import im.vector.app.features.spaces.preview.SpacePreviewViewModel
|
||||
import im.vector.app.features.spaces.share.ShareSpaceViewModel
|
||||
import im.vector.app.features.terms.ReviewTermsViewModel
|
||||
import im.vector.app.features.usercode.UserCodeSharedViewModel
|
||||
import im.vector.app.features.userdirectory.UserListViewModel
|
||||
import im.vector.app.features.widgets.WidgetViewModel
|
||||
import im.vector.app.features.widgets.permissions.RoomWidgetPermissionViewModel
|
||||
import im.vector.app.features.workers.signout.ServerBackupStatusViewModel
|
||||
import im.vector.app.features.workers.signout.SignoutCheckViewModel
|
||||
|
||||
@InstallIn(MavericksViewModelComponent::class)
|
||||
@Module
|
||||
@ -73,6 +100,139 @@ interface MavericksViewModelModule {
|
||||
@MavericksViewModelKey(RoomDirectoryViewModel::class)
|
||||
fun roomDirectoryViewModelFactory(factory: RoomDirectoryViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(ViewReactionsViewModel::class)
|
||||
fun viewReactionsViewModelFactory(factory: ViewReactionsViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(RoomWidgetPermissionViewModel::class)
|
||||
fun roomWidgetPermissionViewModelFactory(factory: RoomWidgetPermissionViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(WidgetViewModel::class)
|
||||
fun widgetViewModelFactory(factory: WidgetViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(ServerBackupStatusViewModel::class)
|
||||
fun serverBackupStatusViewModelFactory(factory: ServerBackupStatusViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(SignoutCheckViewModel::class)
|
||||
fun signoutCheckViewModelFactory(factory: SignoutCheckViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(RoomDirectoryPickerViewModel::class)
|
||||
fun roomDirectoryPickerViewModelFactory(factory: RoomDirectoryPickerViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(RoomDevToolViewModel::class)
|
||||
fun roomDevToolViewModelFactory(factory: RoomDevToolViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(MigrateRoomViewModel::class)
|
||||
fun migrateRoomViewModelFactory(factory: MigrateRoomViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(IgnoredUsersViewModel::class)
|
||||
fun ignoredUsersViewModelFactory(factory: IgnoredUsersViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(CallTransferViewModel::class)
|
||||
fun callTransferViewModelFactory(factory: CallTransferViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(ContactsBookViewModel::class)
|
||||
fun contactsBookViewModelFactory(factory: ContactsBookViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(CreateDirectRoomViewModel::class)
|
||||
fun createDirectRoomViewModelFactory(factory: CreateDirectRoomViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(RoomNotificationSettingsViewModel::class)
|
||||
fun roomNotificationSettingsViewModelFactory(factory: RoomNotificationSettingsViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(KeysBackupSettingsViewModel::class)
|
||||
fun keysBackupSettingsViewModelFactory(factory: KeysBackupSettingsViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(SharedSecureStorageViewModel::class)
|
||||
fun sharedSecureStorageViewModelFactory(factory: SharedSecureStorageViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(PromoteRestrictedViewModel::class)
|
||||
fun promoteRestrictedViewModelFactory(factory: PromoteRestrictedViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(UserListViewModel::class)
|
||||
fun userListViewModelFactory(factory: UserListViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(UserCodeSharedViewModel::class)
|
||||
fun userCodeSharedViewModelFactory(factory: UserCodeSharedViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(ReviewTermsViewModel::class)
|
||||
fun reviewTermsViewModelFactory(factory: ReviewTermsViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(ShareSpaceViewModel::class)
|
||||
fun shareSpaceViewModelFactory(factory: ShareSpaceViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(SpacePreviewViewModel::class)
|
||||
fun spacePreviewViewModelFactory(factory: SpacePreviewViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(SpacePeopleViewModel::class)
|
||||
fun spacePeopleViewModelFactory(factory: SpacePeopleViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(SpaceAddRoomsViewModel::class)
|
||||
fun spaceAddRoomsViewModelFactory(factory: SpaceAddRoomsViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(SpaceLeaveAdvancedViewModel::class)
|
||||
fun spaceLeaveAdvancedViewModelFactory(factory: SpaceLeaveAdvancedViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(SpaceInviteBottomSheetViewModel::class)
|
||||
fun spaceInviteBottomSheetViewModelFactory(factory: SpaceInviteBottomSheetViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(SpaceDirectoryViewModel::class)
|
||||
fun spaceDirectoryViewModelFactory(factory: SpaceDirectoryViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@MavericksViewModelKey(CreateSpaceViewModel::class)
|
||||
fun createSpaceViewModelFactory(factory: CreateSpaceViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||
|
||||
}
|
||||
|
@ -40,14 +40,8 @@ data class CallTransferArgs(val callId: String) : Parcelable
|
||||
|
||||
private const val USER_LIST_FRAGMENT_TAG = "USER_LIST_FRAGMENT_TAG"
|
||||
|
||||
class CallTransferActivity : VectorBaseActivity<ActivityCallTransferBinding>(),
|
||||
CallTransferViewModel.Factory,
|
||||
UserListViewModel.Factory,
|
||||
ContactsBookViewModel.Factory {
|
||||
class CallTransferActivity : VectorBaseActivity<ActivityCallTransferBinding>() {
|
||||
|
||||
@Inject lateinit var userListViewModelFactory: UserListViewModel.Factory
|
||||
@Inject lateinit var callTransferViewModelFactory: CallTransferViewModel.Factory
|
||||
@Inject lateinit var contactsBookViewModelFactory: ContactsBookViewModel.Factory
|
||||
@Inject lateinit var errorFormatter: ErrorFormatter
|
||||
|
||||
private lateinit var sectionsPagerAdapter: CallTransferPagerAdapter
|
||||
@ -62,18 +56,6 @@ class CallTransferActivity : VectorBaseActivity<ActivityCallTransferBinding>(),
|
||||
injector.inject(this)
|
||||
}
|
||||
|
||||
override fun create(initialState: UserListViewState): UserListViewModel {
|
||||
return userListViewModelFactory.create(initialState)
|
||||
}
|
||||
|
||||
override fun create(initialState: CallTransferViewState): CallTransferViewModel {
|
||||
return callTransferViewModelFactory.create(initialState)
|
||||
}
|
||||
|
||||
override fun create(initialState: ContactsBookViewState): ContactsBookViewModel {
|
||||
return contactsBookViewModelFactory.create(initialState)
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
waitingView = views.waitingView.waitingView
|
||||
|
@ -16,13 +16,12 @@
|
||||
|
||||
package im.vector.app.features.call.transfer
|
||||
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.airbnb.mvrx.ActivityViewModelContext
|
||||
import com.airbnb.mvrx.MavericksViewModelFactory
|
||||
import com.airbnb.mvrx.ViewModelContext
|
||||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.extensions.exhaustive
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
import im.vector.app.features.call.dialpad.DialPadLookup
|
||||
@ -41,18 +40,11 @@ class CallTransferViewModel @AssistedInject constructor(@Assisted initialState:
|
||||
VectorViewModel<CallTransferViewState, CallTransferAction, CallTransferViewEvents>(initialState) {
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: CallTransferViewState): CallTransferViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<CallTransferViewModel,CallTransferViewState> {
|
||||
override fun create(state: CallTransferViewState): CallTransferViewModel
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<CallTransferViewModel, CallTransferViewState> {
|
||||
|
||||
@JvmStatic
|
||||
override fun create(viewModelContext: ViewModelContext, state: CallTransferViewState): CallTransferViewModel? {
|
||||
val activity: CallTransferActivity = (viewModelContext as ActivityViewModelContext).activity()
|
||||
return activity.callTransferViewModelFactory.create(state)
|
||||
}
|
||||
}
|
||||
companion object : MavericksViewModelFactory<CallTransferViewModel, CallTransferViewState> by hiltMavericksViewModelFactory()
|
||||
|
||||
private val call = callManager.getCallById(initialState.callId)
|
||||
private val callListener = object : WebRtcCall.Listener {
|
||||
|
@ -43,9 +43,8 @@ import java.util.concurrent.TimeUnit
|
||||
import javax.inject.Inject
|
||||
|
||||
class ContactsBookFragment @Inject constructor(
|
||||
private val contactsBookViewModelFactory: ContactsBookViewModel.Factory,
|
||||
private val contactsBookController: ContactsBookController
|
||||
) : VectorBaseFragment<FragmentContactsBookBinding>(), ContactsBookController.Callback, ContactsBookViewModel.Factory {
|
||||
) : VectorBaseFragment<FragmentContactsBookBinding>(), ContactsBookController.Callback {
|
||||
|
||||
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentContactsBookBinding {
|
||||
return FragmentContactsBookBinding.inflate(inflater, container, false)
|
||||
@ -58,10 +57,6 @@ class ContactsBookFragment @Inject constructor(
|
||||
|
||||
private lateinit var sharedActionViewModel: UserListSharedActionViewModel
|
||||
|
||||
override fun create(initialState: ContactsBookViewState): ContactsBookViewModel {
|
||||
return contactsBookViewModelFactory.create(initialState)
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
sharedActionViewModel = activityViewModelProvider.get(UserListSharedActionViewModel::class.java)
|
||||
|
@ -28,6 +28,8 @@ import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.core.contacts.ContactsDataSource
|
||||
import im.vector.app.core.contacts.MappedContact
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.extensions.exhaustive
|
||||
import im.vector.app.core.platform.EmptyViewEvents
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
@ -45,20 +47,11 @@ class ContactsBookViewModel @AssistedInject constructor(@Assisted
|
||||
VectorViewModel<ContactsBookViewState, ContactsBookAction, EmptyViewEvents>(initialState) {
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: ContactsBookViewState): ContactsBookViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<ContactsBookViewModel,ContactsBookViewState> {
|
||||
override fun create(state: ContactsBookViewState): ContactsBookViewModel
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<ContactsBookViewModel, ContactsBookViewState> {
|
||||
|
||||
override fun create(viewModelContext: ViewModelContext, state: ContactsBookViewState): ContactsBookViewModel? {
|
||||
val factory = when (viewModelContext) {
|
||||
is FragmentViewModelContext -> viewModelContext.fragment as? Factory
|
||||
is ActivityViewModelContext -> viewModelContext.activity as? Factory
|
||||
}
|
||||
return factory?.create(state) ?: error("You should let your activity/fragment implements Factory interface")
|
||||
}
|
||||
}
|
||||
companion object : MavericksViewModelFactory<ContactsBookViewModel, ContactsBookViewState> by hiltMavericksViewModelFactory()
|
||||
|
||||
private var allContacts: List<MappedContact> = emptyList()
|
||||
private var mappedContacts: List<MappedContact> = emptyList()
|
||||
|
@ -55,13 +55,10 @@ import org.matrix.android.sdk.api.session.room.failure.CreateRoomFailure
|
||||
import java.net.HttpURLConnection
|
||||
import javax.inject.Inject
|
||||
|
||||
class CreateDirectRoomActivity : SimpleFragmentActivity(), UserListViewModel.Factory, CreateDirectRoomViewModel.Factory, ContactsBookViewModel.Factory {
|
||||
class CreateDirectRoomActivity : SimpleFragmentActivity(){
|
||||
|
||||
private val viewModel: CreateDirectRoomViewModel by viewModel()
|
||||
private lateinit var sharedActionViewModel: UserListSharedActionViewModel
|
||||
@Inject lateinit var userListViewModelFactory: UserListViewModel.Factory
|
||||
@Inject lateinit var createDirectRoomViewModelFactory: CreateDirectRoomViewModel.Factory
|
||||
@Inject lateinit var contactsBookViewModelFactory: ContactsBookViewModel.Factory
|
||||
@Inject lateinit var errorFormatter: ErrorFormatter
|
||||
|
||||
override fun injectWith(injector: ScreenComponent) {
|
||||
@ -69,12 +66,6 @@ class CreateDirectRoomActivity : SimpleFragmentActivity(), UserListViewModel.Fac
|
||||
injector.inject(this)
|
||||
}
|
||||
|
||||
override fun create(initialState: UserListViewState) = userListViewModelFactory.create(initialState)
|
||||
|
||||
override fun create(initialState: CreateDirectRoomViewState) = createDirectRoomViewModelFactory.create(initialState)
|
||||
|
||||
override fun create(initialState: ContactsBookViewState) = contactsBookViewModelFactory.create(initialState)
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
views.toolbar.visibility = View.GONE
|
||||
|
@ -16,16 +16,14 @@
|
||||
|
||||
package im.vector.app.features.createdirect
|
||||
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.airbnb.mvrx.ActivityViewModelContext
|
||||
import com.airbnb.mvrx.FragmentViewModelContext
|
||||
import com.airbnb.mvrx.Loading
|
||||
import com.airbnb.mvrx.MavericksViewModelFactory
|
||||
import com.airbnb.mvrx.Success
|
||||
import com.airbnb.mvrx.ViewModelContext
|
||||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.extensions.exhaustive
|
||||
import im.vector.app.core.mvrx.runCatchingToAsync
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
@ -45,21 +43,11 @@ class CreateDirectRoomViewModel @AssistedInject constructor(@Assisted
|
||||
VectorViewModel<CreateDirectRoomViewState, CreateDirectRoomAction, CreateDirectRoomViewEvents>(initialState) {
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: CreateDirectRoomViewState): CreateDirectRoomViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<CreateDirectRoomViewModel,CreateDirectRoomViewState> {
|
||||
override fun create(state: CreateDirectRoomViewState): CreateDirectRoomViewModel
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<CreateDirectRoomViewModel, CreateDirectRoomViewState> {
|
||||
|
||||
@JvmStatic
|
||||
override fun create(viewModelContext: ViewModelContext, state: CreateDirectRoomViewState): CreateDirectRoomViewModel? {
|
||||
val factory = when (viewModelContext) {
|
||||
is FragmentViewModelContext -> viewModelContext.fragment as? Factory
|
||||
is ActivityViewModelContext -> viewModelContext.activity as? Factory
|
||||
}
|
||||
return factory?.create(state) ?: error("You should let your activity/fragment implements Factory interface")
|
||||
}
|
||||
}
|
||||
companion object : MavericksViewModelFactory<CreateDirectRoomViewModel, CreateDirectRoomViewState> by hiltMavericksViewModelFactory()
|
||||
|
||||
override fun handle(action: CreateDirectRoomAction) {
|
||||
when (action) {
|
||||
|
@ -40,7 +40,6 @@ class KeysBackupManageActivity : SimpleFragmentActivity() {
|
||||
override fun getTitleRes() = R.string.encryption_message_recovery
|
||||
|
||||
private val viewModel: KeysBackupSettingsViewModel by viewModel()
|
||||
@Inject lateinit var keysBackupSettingsViewModelFactory: KeysBackupSettingsViewModel.Factory
|
||||
|
||||
override fun injectWith(injector: ScreenComponent) {
|
||||
super.injectWith(injector)
|
||||
|
@ -15,16 +15,16 @@
|
||||
*/
|
||||
package im.vector.app.features.crypto.keysbackup.settings
|
||||
|
||||
import com.airbnb.mvrx.ActivityViewModelContext
|
||||
import com.airbnb.mvrx.Fail
|
||||
import com.airbnb.mvrx.Loading
|
||||
import com.airbnb.mvrx.MavericksViewModelFactory
|
||||
import com.airbnb.mvrx.Success
|
||||
import com.airbnb.mvrx.Uninitialized
|
||||
import com.airbnb.mvrx.ViewModelContext
|
||||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.platform.EmptyViewEvents
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
import org.matrix.android.sdk.api.MatrixCallback
|
||||
@ -41,18 +41,11 @@ class KeysBackupSettingsViewModel @AssistedInject constructor(@Assisted initialS
|
||||
KeysBackupStateListener {
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: KeysBackupSettingViewState): KeysBackupSettingsViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<KeysBackupSettingsViewModel,KeysBackupSettingViewState> {
|
||||
override fun create(state: KeysBackupSettingViewState): KeysBackupSettingsViewModel
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<KeysBackupSettingsViewModel, KeysBackupSettingViewState> {
|
||||
|
||||
@JvmStatic
|
||||
override fun create(viewModelContext: ViewModelContext, state: KeysBackupSettingViewState): KeysBackupSettingsViewModel? {
|
||||
val activity: KeysBackupManageActivity = (viewModelContext as ActivityViewModelContext).activity()
|
||||
return activity.keysBackupSettingsViewModelFactory.create(state)
|
||||
}
|
||||
}
|
||||
companion object : MavericksViewModelFactory<KeysBackupSettingsViewModel, KeysBackupSettingViewState> by hiltMavericksViewModelFactory()
|
||||
|
||||
private val keysBackupService: KeysBackupService = session.cryptoService().keysBackupService()
|
||||
|
||||
|
@ -52,7 +52,6 @@ class SharedSecureStorageActivity :
|
||||
) : Parcelable
|
||||
|
||||
private val viewModel: SharedSecureStorageViewModel by viewModel()
|
||||
@Inject lateinit var viewModelFactory: SharedSecureStorageViewModel.Factory
|
||||
@Inject lateinit var errorFormatter: ErrorFormatter
|
||||
|
||||
override fun injectWith(injector: ScreenComponent) {
|
||||
|
@ -29,6 +29,8 @@ import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.R
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.extensions.exhaustive
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
import im.vector.app.core.platform.WaitingViewData
|
||||
@ -54,8 +56,18 @@ data class SharedSecureStorageViewState(
|
||||
val step: Step = Step.EnterPassphrase,
|
||||
val activeDeviceCount: Int = 0,
|
||||
val showResetAllAction: Boolean = false,
|
||||
val userId: String = ""
|
||||
val userId: String = "",
|
||||
val keyId: String?,
|
||||
val requestedSecrets: List<String>,
|
||||
val resultKeyStoreAlias: String
|
||||
) : MavericksState {
|
||||
|
||||
constructor(args: SharedSecureStorageActivity.Args): this(
|
||||
keyId = args.keyId,
|
||||
requestedSecrets = args.requestedSecrets,
|
||||
resultKeyStoreAlias = args.resultKeyStoreAlias
|
||||
)
|
||||
|
||||
enum class Step {
|
||||
EnterPassphrase,
|
||||
EnterKey,
|
||||
@ -64,22 +76,21 @@ data class SharedSecureStorageViewState(
|
||||
}
|
||||
|
||||
class SharedSecureStorageViewModel @AssistedInject constructor(
|
||||
@Assisted initialState: SharedSecureStorageViewState,
|
||||
@Assisted val args: SharedSecureStorageActivity.Args,
|
||||
@Assisted private val initialState: SharedSecureStorageViewState,
|
||||
private val stringProvider: StringProvider,
|
||||
private val session: Session) :
|
||||
VectorViewModel<SharedSecureStorageViewState, SharedSecureStorageAction, SharedSecureStorageViewEvent>(initialState) {
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: SharedSecureStorageViewState, args: SharedSecureStorageActivity.Args): SharedSecureStorageViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<SharedSecureStorageViewModel,SharedSecureStorageViewState> {
|
||||
override fun create(state: SharedSecureStorageViewState): SharedSecureStorageViewModel
|
||||
}
|
||||
|
||||
init {
|
||||
setState {
|
||||
copy(userId = session.myUserId)
|
||||
}
|
||||
val isValid = session.sharedSecretStorageService.checkShouldBeAbleToAccessSecrets(args.requestedSecrets, args.keyId) is IntegrityResult.Success
|
||||
val isValid = session.sharedSecretStorageService.checkShouldBeAbleToAccessSecrets(initialState.requestedSecrets, initialState.keyId) is IntegrityResult.Success
|
||||
if (!isValid) {
|
||||
_viewEvents.post(
|
||||
SharedSecureStorageViewEvent.Error(
|
||||
@ -88,7 +99,7 @@ class SharedSecureStorageViewModel @AssistedInject constructor(
|
||||
)
|
||||
)
|
||||
}
|
||||
val keyResult = args.keyId?.let { session.sharedSecretStorageService.getKey(it) }
|
||||
val keyResult = initialState.keyId?.let { session.sharedSecretStorageService.getKey(it) }
|
||||
?: session.sharedSecretStorageService.getDefaultKey()
|
||||
|
||||
if (!keyResult.isSuccess()) {
|
||||
@ -218,7 +229,7 @@ class SharedSecureStorageViewModel @AssistedInject constructor(
|
||||
}
|
||||
|
||||
withContext(Dispatchers.IO) {
|
||||
args.requestedSecrets.forEach {
|
||||
initialState.requestedSecrets.forEach {
|
||||
if (session.accountDataService().getUserAccountDataEvent(it) != null) {
|
||||
val res = session.sharedSecretStorageService.getSecret(
|
||||
name = it,
|
||||
@ -235,7 +246,7 @@ class SharedSecureStorageViewModel @AssistedInject constructor(
|
||||
_viewEvents.post(SharedSecureStorageViewEvent.HideModalLoading)
|
||||
val safeForIntentCypher = ByteArrayOutputStream().also {
|
||||
it.use {
|
||||
session.securelyStoreObject(decryptedSecretMap as Map<String, String>, args.resultKeyStoreAlias, it)
|
||||
session.securelyStoreObject(decryptedSecretMap as Map<String, String>, initialState.resultKeyStoreAlias, it)
|
||||
}
|
||||
}.toByteArray().toBase64NoPadding()
|
||||
_viewEvents.post(SharedSecureStorageViewEvent.FinishSuccess(safeForIntentCypher))
|
||||
@ -287,7 +298,7 @@ class SharedSecureStorageViewModel @AssistedInject constructor(
|
||||
)
|
||||
|
||||
withContext(Dispatchers.IO) {
|
||||
args.requestedSecrets.forEach {
|
||||
initialState.requestedSecrets.forEach {
|
||||
if (session.accountDataService().getUserAccountDataEvent(it) != null) {
|
||||
val res = session.sharedSecretStorageService.getSecret(
|
||||
name = it,
|
||||
@ -304,7 +315,7 @@ class SharedSecureStorageViewModel @AssistedInject constructor(
|
||||
_viewEvents.post(SharedSecureStorageViewEvent.HideModalLoading)
|
||||
val safeForIntentCypher = ByteArrayOutputStream().also {
|
||||
it.use {
|
||||
session.securelyStoreObject(decryptedSecretMap as Map<String, String>, args.resultKeyStoreAlias, it)
|
||||
session.securelyStoreObject(decryptedSecretMap as Map<String, String>, initialState.resultKeyStoreAlias, it)
|
||||
}
|
||||
}.toByteArray().toBase64NoPadding()
|
||||
_viewEvents.post(SharedSecureStorageViewEvent.FinishSuccess(safeForIntentCypher))
|
||||
@ -320,13 +331,5 @@ class SharedSecureStorageViewModel @AssistedInject constructor(
|
||||
_viewEvents.post(SharedSecureStorageViewEvent.Dismiss)
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<SharedSecureStorageViewModel, SharedSecureStorageViewState> {
|
||||
|
||||
@JvmStatic
|
||||
override fun create(viewModelContext: ViewModelContext, state: SharedSecureStorageViewState): SharedSecureStorageViewModel? {
|
||||
val activity: SharedSecureStorageActivity = viewModelContext.activity()
|
||||
val args: SharedSecureStorageActivity.Args = activity.intent.getParcelableExtra(Mavericks.KEY_ARG) ?: error("Missing args")
|
||||
return activity.viewModelFactory.create(state, args)
|
||||
}
|
||||
}
|
||||
companion object : MavericksViewModelFactory<SharedSecureStorageViewModel, SharedSecureStorageViewState> by hiltMavericksViewModelFactory()
|
||||
}
|
||||
|
@ -45,10 +45,8 @@ import kotlinx.parcelize.Parcelize
|
||||
import org.billcarsonfr.jsonviewer.JSonViewerFragment
|
||||
import javax.inject.Inject
|
||||
|
||||
class RoomDevToolActivity : SimpleFragmentActivity(), RoomDevToolViewModel.Factory,
|
||||
FragmentManager.OnBackStackChangedListener {
|
||||
class RoomDevToolActivity : SimpleFragmentActivity(), FragmentManager.OnBackStackChangedListener {
|
||||
|
||||
@Inject lateinit var viewModelFactory: RoomDevToolViewModel.Factory
|
||||
@Inject lateinit var colorProvider: ColorProvider
|
||||
|
||||
// private lateinit var viewModel: RoomDevToolViewModel
|
||||
@ -70,10 +68,6 @@ class RoomDevToolActivity : SimpleFragmentActivity(), RoomDevToolViewModel.Facto
|
||||
injector.inject(this)
|
||||
}
|
||||
|
||||
override fun create(initialState: RoomDevToolViewState): RoomDevToolViewModel {
|
||||
return viewModelFactory.create(initialState)
|
||||
}
|
||||
|
||||
override fun initUiAndData() {
|
||||
super.initUiAndData()
|
||||
viewModel.subscribe(this) {
|
||||
|
@ -16,19 +16,17 @@
|
||||
|
||||
package im.vector.app.features.devtools
|
||||
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.airbnb.mvrx.ActivityViewModelContext
|
||||
import com.airbnb.mvrx.Fail
|
||||
import com.airbnb.mvrx.FragmentViewModelContext
|
||||
import com.airbnb.mvrx.Loading
|
||||
import com.airbnb.mvrx.MavericksViewModelFactory
|
||||
import com.airbnb.mvrx.Success
|
||||
import com.airbnb.mvrx.ViewModelContext
|
||||
import com.squareup.moshi.Types
|
||||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.R
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.error.ErrorFormatter
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
import im.vector.app.core.resources.StringProvider
|
||||
@ -51,21 +49,11 @@ class RoomDevToolViewModel @AssistedInject constructor(
|
||||
) : VectorViewModel<RoomDevToolViewState, RoomDevToolAction, DevToolsViewEvents>(initialState) {
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: RoomDevToolViewState): RoomDevToolViewModel
|
||||
interface Factory : MavericksAssistedViewModelFactory<RoomDevToolViewModel, RoomDevToolViewState> {
|
||||
override fun create(state: RoomDevToolViewState): RoomDevToolViewModel
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<RoomDevToolViewModel, RoomDevToolViewState> {
|
||||
|
||||
@JvmStatic
|
||||
override fun create(viewModelContext: ViewModelContext, state: RoomDevToolViewState): RoomDevToolViewModel {
|
||||
val factory = when (viewModelContext) {
|
||||
is FragmentViewModelContext -> viewModelContext.fragment as? Factory
|
||||
is ActivityViewModelContext -> viewModelContext.activity as? Factory
|
||||
}
|
||||
return factory?.create(state) ?: error("You should let your activity/fragment implements Factory interface")
|
||||
}
|
||||
}
|
||||
companion object : MavericksViewModelFactory<RoomDevToolViewModel, RoomDevToolViewState> by hiltMavericksViewModelFactory()
|
||||
|
||||
init {
|
||||
session.getRoom(initialState.roomId)
|
||||
|
@ -95,9 +95,7 @@ class HomeActivity :
|
||||
VectorBaseActivity<ActivityHomeBinding>(),
|
||||
ToolbarConfigurable,
|
||||
UnknownDeviceDetectorSharedViewModel.Factory,
|
||||
ServerBackupStatusViewModel.Factory,
|
||||
UnreadMessagesSharedViewModel.Factory,
|
||||
PromoteRestrictedViewModel.Factory,
|
||||
NavigationInterceptor,
|
||||
SpaceInviteBottomSheet.InteractionListener,
|
||||
MatrixToBottomSheet.InteractionListener {
|
||||
@ -108,8 +106,6 @@ class HomeActivity :
|
||||
@Inject lateinit var viewModelFactory: HomeActivityViewModel.Factory
|
||||
|
||||
private val serverBackupStatusViewModel: ServerBackupStatusViewModel by viewModel()
|
||||
@Inject lateinit var serverBackupviewModelFactory: ServerBackupStatusViewModel.Factory
|
||||
@Inject lateinit var promoteRestrictedViewModelFactory: PromoteRestrictedViewModel.Factory
|
||||
private val promoteRestrictedViewModel: PromoteRestrictedViewModel by viewModel()
|
||||
|
||||
@Inject lateinit var activeSessionHolder: ActiveSessionHolder
|
||||
@ -183,10 +179,6 @@ class HomeActivity :
|
||||
return unknownDeviceViewModelFactory.create(initialState)
|
||||
}
|
||||
|
||||
override fun create(initialState: ServerBackupStatusViewState): ServerBackupStatusViewModel {
|
||||
return serverBackupviewModelFactory.create(initialState)
|
||||
}
|
||||
|
||||
override fun create(initialState: UnreadMessagesState): UnreadMessagesSharedViewModel {
|
||||
return unreadMessagesSharedViewModelFactory.create(initialState)
|
||||
}
|
||||
@ -590,8 +582,6 @@ class HomeActivity :
|
||||
}
|
||||
}
|
||||
|
||||
override fun create(initialState: ActiveSpaceViewState) = promoteRestrictedViewModelFactory.create(initialState)
|
||||
|
||||
override fun mxToBottomSheetNavigateToRoom(roomId: String) {
|
||||
navigator.openRoom(this, roomId)
|
||||
}
|
||||
|
@ -65,7 +65,6 @@ import javax.inject.Inject
|
||||
|
||||
class HomeDetailFragment @Inject constructor(
|
||||
val homeDetailViewModelFactory: HomeDetailViewModel.Factory,
|
||||
private val serverBackupStatusViewModelFactory: ServerBackupStatusViewModel.Factory,
|
||||
private val avatarRenderer: AvatarRenderer,
|
||||
private val colorProvider: ColorProvider,
|
||||
private val alertManager: PopupAlertManager,
|
||||
@ -74,8 +73,7 @@ class HomeDetailFragment @Inject constructor(
|
||||
private val appStateHandler: AppStateHandler
|
||||
) : VectorBaseFragment<FragmentHomeDetailBinding>(),
|
||||
KeysBackupBanner.Delegate,
|
||||
CurrentCallsView.Callback,
|
||||
ServerBackupStatusViewModel.Factory {
|
||||
CurrentCallsView.Callback {
|
||||
|
||||
private val viewModel: HomeDetailViewModel by fragmentViewModel()
|
||||
private val unknownDeviceDetectorSharedViewModel: UnknownDeviceDetectorSharedViewModel by activityViewModel()
|
||||
@ -504,7 +502,4 @@ class HomeDetailFragment @Inject constructor(
|
||||
return this
|
||||
}
|
||||
|
||||
override fun create(initialState: ServerBackupStatusViewState): ServerBackupStatusViewModel {
|
||||
return serverBackupStatusViewModelFactory.create(initialState)
|
||||
}
|
||||
}
|
||||
|
@ -27,6 +27,8 @@ import dagger.assisted.AssistedInject
|
||||
import im.vector.app.AppStateHandler
|
||||
import im.vector.app.RoomGroupingMethod
|
||||
import im.vector.app.core.di.ActiveSessionHolder
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.platform.EmptyAction
|
||||
import im.vector.app.core.platform.EmptyViewEvents
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
@ -72,21 +74,11 @@ class PromoteRestrictedViewModel @AssistedInject constructor(
|
||||
}
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: ActiveSpaceViewState): PromoteRestrictedViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<PromoteRestrictedViewModel,ActiveSpaceViewState> {
|
||||
override fun create(state: ActiveSpaceViewState): PromoteRestrictedViewModel
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<PromoteRestrictedViewModel, ActiveSpaceViewState> {
|
||||
|
||||
@JvmStatic
|
||||
override fun create(viewModelContext: ViewModelContext, state: ActiveSpaceViewState): PromoteRestrictedViewModel? {
|
||||
val factory = when (viewModelContext) {
|
||||
is FragmentViewModelContext -> viewModelContext.fragment as? Factory
|
||||
is ActivityViewModelContext -> viewModelContext.activity as? Factory
|
||||
}
|
||||
return factory?.create(state) ?: error("You should let your activity/fragment implements Factory interface")
|
||||
}
|
||||
}
|
||||
companion object : MavericksViewModelFactory<PromoteRestrictedViewModel, ActiveSpaceViewState> by hiltMavericksViewModelFactory()
|
||||
|
||||
override fun handle(action: EmptyAction) {}
|
||||
}
|
||||
|
@ -48,7 +48,6 @@ class RoomDetailActivity :
|
||||
VectorBaseActivity<ActivityRoomDetailBinding>(),
|
||||
ToolbarConfigurable,
|
||||
RequireActiveMembershipViewModel.Factory,
|
||||
RoomWidgetPermissionViewModel.Factory,
|
||||
MatrixToBottomSheet.InteractionListener {
|
||||
|
||||
override fun getBinding(): ActivityRoomDetailBinding {
|
||||
@ -85,12 +84,6 @@ class RoomDetailActivity :
|
||||
return requireActiveMembershipViewModelFactory.create(initialState.copy(roomId = currentRoomId ?: ""))
|
||||
}
|
||||
|
||||
@Inject
|
||||
lateinit var permissionsViewModelFactory: RoomWidgetPermissionViewModel.Factory
|
||||
override fun create(initialState: RoomWidgetPermissionViewState): RoomWidgetPermissionViewModel {
|
||||
return permissionsViewModelFactory.create(initialState)
|
||||
}
|
||||
|
||||
override fun injectWith(injector: ScreenComponent) {
|
||||
injector.inject(this)
|
||||
}
|
||||
|
@ -44,7 +44,6 @@ class ViewReactionsBottomSheet :
|
||||
|
||||
private val viewModel: ViewReactionsViewModel by fragmentViewModel(ViewReactionsViewModel::class)
|
||||
|
||||
@Inject lateinit var viewReactionsViewModelFactory: ViewReactionsViewModel.Factory
|
||||
private lateinit var sharedActionViewModel: MessageSharedActionViewModel
|
||||
|
||||
@Inject lateinit var epoxyController: ViewReactionsEpoxyController
|
||||
|
@ -27,6 +27,8 @@ import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.core.date.DateFormatKind
|
||||
import im.vector.app.core.date.VectorDateFormatter
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.platform.EmptyAction
|
||||
import im.vector.app.core.platform.EmptyViewEvents
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
@ -70,18 +72,11 @@ class ViewReactionsViewModel @AssistedInject constructor(@Assisted
|
||||
?: throw IllegalStateException("Shouldn't use this ViewModel without a room")
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: DisplayReactionsViewState): ViewReactionsViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<ViewReactionsViewModel,DisplayReactionsViewState> {
|
||||
override fun create(state: DisplayReactionsViewState): ViewReactionsViewModel
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<ViewReactionsViewModel, DisplayReactionsViewState> {
|
||||
|
||||
@JvmStatic
|
||||
override fun create(viewModelContext: ViewModelContext, state: DisplayReactionsViewState): ViewReactionsViewModel? {
|
||||
val fragment: ViewReactionsBottomSheet = (viewModelContext as FragmentViewModelContext).fragment()
|
||||
return fragment.viewReactionsViewModelFactory.create(state)
|
||||
}
|
||||
}
|
||||
companion object : MavericksViewModelFactory<ViewReactionsViewModel, DisplayReactionsViewState> by hiltMavericksViewModelFactory()
|
||||
|
||||
init {
|
||||
observeEventAnnotationSummaries()
|
||||
|
@ -37,8 +37,7 @@ import kotlinx.parcelize.Parcelize
|
||||
import javax.inject.Inject
|
||||
|
||||
class MigrateRoomBottomSheet :
|
||||
VectorBaseBottomSheetDialogFragment<BottomSheetRoomUpgradeBinding>(),
|
||||
MigrateRoomViewModel.Factory {
|
||||
VectorBaseBottomSheetDialogFragment<BottomSheetRoomUpgradeBinding>(){
|
||||
|
||||
enum class MigrationReason {
|
||||
MANUAL,
|
||||
@ -53,9 +52,6 @@ class MigrateRoomBottomSheet :
|
||||
val customDescription: CharSequence? = null
|
||||
) : Parcelable
|
||||
|
||||
@Inject
|
||||
lateinit var viewModelFactory: MigrateRoomViewModel.Factory
|
||||
|
||||
override val showExpanded = true
|
||||
|
||||
@Inject
|
||||
@ -152,10 +148,6 @@ class MigrateRoomBottomSheet :
|
||||
}
|
||||
}
|
||||
|
||||
override fun create(initialState: MigrateRoomViewState): MigrateRoomViewModel {
|
||||
return viewModelFactory.create(initialState)
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
const val REQUEST_KEY = "MigrateRoomBottomSheetRequest"
|
||||
|
@ -16,15 +16,14 @@
|
||||
|
||||
package im.vector.app.features.home.room.detail.upgrade
|
||||
|
||||
import com.airbnb.mvrx.ActivityViewModelContext
|
||||
import com.airbnb.mvrx.FragmentViewModelContext
|
||||
import com.airbnb.mvrx.Loading
|
||||
import com.airbnb.mvrx.MavericksViewModelFactory
|
||||
import com.airbnb.mvrx.Success
|
||||
import com.airbnb.mvrx.ViewModelContext
|
||||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.platform.EmptyViewEvents
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
import im.vector.app.features.session.coroutineScope
|
||||
@ -51,20 +50,11 @@ class MigrateRoomViewModel @AssistedInject constructor(
|
||||
}
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: MigrateRoomViewState): MigrateRoomViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<MigrateRoomViewModel,MigrateRoomViewState> {
|
||||
override fun create(state: MigrateRoomViewState): MigrateRoomViewModel
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<MigrateRoomViewModel, MigrateRoomViewState> {
|
||||
|
||||
override fun create(viewModelContext: ViewModelContext, state: MigrateRoomViewState): MigrateRoomViewModel? {
|
||||
val factory = when (viewModelContext) {
|
||||
is FragmentViewModelContext -> viewModelContext.fragment as? Factory
|
||||
is ActivityViewModelContext -> viewModelContext.activity as? Factory
|
||||
}
|
||||
return factory?.create(state) ?: error("You should let your activity/fragment implements Factory interface")
|
||||
}
|
||||
}
|
||||
companion object : MavericksViewModelFactory<MigrateRoomViewModel, MigrateRoomViewState> by hiltMavericksViewModelFactory()
|
||||
|
||||
override fun handle(action: MigrateRoomAction) {
|
||||
when (action) {
|
||||
|
@ -62,7 +62,6 @@ class RoomListQuickActionsBottomSheet :
|
||||
|
||||
private lateinit var sharedActionViewModel: RoomListQuickActionsSharedActionViewModel
|
||||
@Inject lateinit var sharedViewPool: RecyclerView.RecycledViewPool
|
||||
@Inject lateinit var roomNotificationSettingsViewModelFactory: RoomNotificationSettingsViewModel.Factory
|
||||
@Inject lateinit var roomListActionsEpoxyController: RoomListQuickActionsEpoxyController
|
||||
@Inject lateinit var navigator: Navigator
|
||||
@Inject lateinit var errorFormatter: ErrorFormatter
|
||||
|
@ -53,13 +53,11 @@ import javax.inject.Inject
|
||||
@Parcelize
|
||||
data class InviteUsersToRoomArgs(val roomId: String) : Parcelable
|
||||
|
||||
class InviteUsersToRoomActivity : SimpleFragmentActivity(), UserListViewModel.Factory, ContactsBookViewModel.Factory, InviteUsersToRoomViewModel.Factory {
|
||||
class InviteUsersToRoomActivity : SimpleFragmentActivity(), InviteUsersToRoomViewModel.Factory {
|
||||
|
||||
private val viewModel: InviteUsersToRoomViewModel by viewModel()
|
||||
private lateinit var sharedActionViewModel: UserListSharedActionViewModel
|
||||
@Inject lateinit var userListViewModelFactory: UserListViewModel.Factory
|
||||
@Inject lateinit var inviteUsersToRoomViewModelFactory: InviteUsersToRoomViewModel.Factory
|
||||
@Inject lateinit var contactsBookViewModelFactory: ContactsBookViewModel.Factory
|
||||
@Inject lateinit var errorFormatter: ErrorFormatter
|
||||
|
||||
override fun injectWith(injector: ScreenComponent) {
|
||||
@ -67,10 +65,6 @@ class InviteUsersToRoomActivity : SimpleFragmentActivity(), UserListViewModel.Fa
|
||||
injector.inject(this)
|
||||
}
|
||||
|
||||
override fun create(initialState: UserListViewState) = userListViewModelFactory.create(initialState)
|
||||
|
||||
override fun create(initialState: ContactsBookViewState) = contactsBookViewModelFactory.create(initialState)
|
||||
|
||||
override fun create(initialState: InviteUsersToRoomViewState) = inviteUsersToRoomViewModelFactory.create(initialState)
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
|
@ -39,8 +39,7 @@ import im.vector.app.features.roomdirectory.RoomDirectoryViewModel
|
||||
import timber.log.Timber
|
||||
import javax.inject.Inject
|
||||
|
||||
class RoomDirectoryPickerFragment @Inject constructor(val roomDirectoryPickerViewModelFactory: RoomDirectoryPickerViewModel.Factory,
|
||||
private val roomDirectoryPickerController: RoomDirectoryPickerController
|
||||
class RoomDirectoryPickerFragment @Inject constructor(private val roomDirectoryPickerController: RoomDirectoryPickerController
|
||||
) : VectorBaseFragment<FragmentRoomDirectoryPickerBinding>(),
|
||||
OnBackPressed,
|
||||
RoomDirectoryPickerController.Callback {
|
||||
|
@ -16,7 +16,6 @@
|
||||
|
||||
package im.vector.app.features.roomdirectory.picker
|
||||
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.airbnb.mvrx.Fail
|
||||
import com.airbnb.mvrx.FragmentViewModelContext
|
||||
import com.airbnb.mvrx.Loading
|
||||
@ -28,6 +27,8 @@ import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.R
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.extensions.exhaustive
|
||||
import im.vector.app.core.platform.EmptyViewEvents
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
@ -46,18 +47,11 @@ class RoomDirectoryPickerViewModel @AssistedInject constructor(
|
||||
) : VectorViewModel<RoomDirectoryPickerViewState, RoomDirectoryPickerAction, EmptyViewEvents>(initialState) {
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: RoomDirectoryPickerViewState): RoomDirectoryPickerViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<RoomDirectoryPickerViewModel,RoomDirectoryPickerViewState> {
|
||||
override fun create(state: RoomDirectoryPickerViewState): RoomDirectoryPickerViewModel
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<RoomDirectoryPickerViewModel, RoomDirectoryPickerViewState> {
|
||||
|
||||
@JvmStatic
|
||||
override fun create(viewModelContext: ViewModelContext, state: RoomDirectoryPickerViewState): RoomDirectoryPickerViewModel? {
|
||||
val fragment: RoomDirectoryPickerFragment = (viewModelContext as FragmentViewModelContext).fragment()
|
||||
return fragment.roomDirectoryPickerViewModelFactory.create(state)
|
||||
}
|
||||
}
|
||||
companion object : MavericksViewModelFactory<RoomDirectoryPickerViewModel, RoomDirectoryPickerViewState> by hiltMavericksViewModelFactory()
|
||||
|
||||
init {
|
||||
observeAndCompute()
|
||||
|
@ -16,16 +16,14 @@
|
||||
|
||||
package im.vector.app.features.roomprofile.notifications
|
||||
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.airbnb.mvrx.FragmentViewModelContext
|
||||
import com.airbnb.mvrx.MavericksViewModelFactory
|
||||
import com.airbnb.mvrx.Success
|
||||
import com.airbnb.mvrx.ViewModelContext
|
||||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
import im.vector.app.features.home.room.list.actions.RoomListQuickActionsBottomSheet
|
||||
import kotlinx.coroutines.launch
|
||||
import org.matrix.android.sdk.api.session.Session
|
||||
import org.matrix.android.sdk.flow.flow
|
||||
@ -37,24 +35,11 @@ class RoomNotificationSettingsViewModel @AssistedInject constructor(
|
||||
) : VectorViewModel<RoomNotificationSettingsViewState, RoomNotificationSettingsAction, RoomNotificationSettingsViewEvents>(initialState) {
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: RoomNotificationSettingsViewState): RoomNotificationSettingsViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<RoomNotificationSettingsViewModel,RoomNotificationSettingsViewState> {
|
||||
override fun create(state: RoomNotificationSettingsViewState): RoomNotificationSettingsViewModel
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<RoomNotificationSettingsViewModel, RoomNotificationSettingsViewState> {
|
||||
|
||||
@JvmStatic
|
||||
override fun create(viewModelContext: ViewModelContext, state: RoomNotificationSettingsViewState): RoomNotificationSettingsViewModel {
|
||||
val fragmentModelContext = (viewModelContext as FragmentViewModelContext)
|
||||
return if (fragmentModelContext.fragment is RoomNotificationSettingsFragment) {
|
||||
val fragment: RoomNotificationSettingsFragment = fragmentModelContext.fragment()
|
||||
fragment.viewModelFactory.create(state)
|
||||
} else {
|
||||
val fragment: RoomListQuickActionsBottomSheet = fragmentModelContext.fragment()
|
||||
fragment.roomNotificationSettingsViewModelFactory.create(state)
|
||||
}
|
||||
}
|
||||
}
|
||||
companion object : MavericksViewModelFactory<RoomNotificationSettingsViewModel, RoomNotificationSettingsViewState> by hiltMavericksViewModelFactory()
|
||||
|
||||
private val room = session.getRoom(initialState.roomId)!!
|
||||
|
||||
|
@ -28,6 +28,8 @@ import com.airbnb.mvrx.ViewModelContext
|
||||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
import im.vector.app.core.platform.VectorViewModelAction
|
||||
import kotlinx.coroutines.launch
|
||||
@ -49,18 +51,11 @@ class IgnoredUsersViewModel @AssistedInject constructor(@Assisted initialState:
|
||||
VectorViewModel<IgnoredUsersViewState, IgnoredUsersAction, IgnoredUsersViewEvents>(initialState) {
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: IgnoredUsersViewState): IgnoredUsersViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<IgnoredUsersViewModel,IgnoredUsersViewState> {
|
||||
override fun create(state: IgnoredUsersViewState): IgnoredUsersViewModel
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<IgnoredUsersViewModel, IgnoredUsersViewState> {
|
||||
|
||||
@JvmStatic
|
||||
override fun create(viewModelContext: ViewModelContext, state: IgnoredUsersViewState): IgnoredUsersViewModel? {
|
||||
val ignoredUsersFragment: VectorSettingsIgnoredUsersFragment = (viewModelContext as FragmentViewModelContext).fragment()
|
||||
return ignoredUsersFragment.ignoredUsersViewModelFactory.create(state)
|
||||
}
|
||||
}
|
||||
companion object : MavericksViewModelFactory<IgnoredUsersViewModel, IgnoredUsersViewState> by hiltMavericksViewModelFactory()
|
||||
|
||||
init {
|
||||
observeIgnoredUsers()
|
||||
|
@ -36,7 +36,6 @@ import im.vector.app.databinding.FragmentGenericRecyclerBinding
|
||||
import javax.inject.Inject
|
||||
|
||||
class VectorSettingsIgnoredUsersFragment @Inject constructor(
|
||||
val ignoredUsersViewModelFactory: IgnoredUsersViewModel.Factory,
|
||||
private val ignoredUsersController: IgnoredUsersController
|
||||
) : VectorBaseFragment<FragmentGenericRecyclerBinding>(),
|
||||
IgnoredUsersController.Callback {
|
||||
|
@ -41,9 +41,7 @@ import im.vector.app.features.spaces.create.SpaceTopology
|
||||
import im.vector.app.features.spaces.create.SpaceType
|
||||
import javax.inject.Inject
|
||||
|
||||
class SpaceCreationActivity : SimpleFragmentActivity(), CreateSpaceViewModel.Factory {
|
||||
|
||||
@Inject lateinit var viewModelFactory: CreateSpaceViewModel.Factory
|
||||
class SpaceCreationActivity : SimpleFragmentActivity(){
|
||||
|
||||
override fun injectWith(injector: ScreenComponent) {
|
||||
super.injectWith(injector)
|
||||
@ -188,5 +186,4 @@ class SpaceCreationActivity : SimpleFragmentActivity(), CreateSpaceViewModel.Fac
|
||||
}
|
||||
}
|
||||
|
||||
override fun create(initialState: CreateSpaceState): CreateSpaceViewModel = viewModelFactory.create(initialState)
|
||||
}
|
||||
|
@ -37,9 +37,7 @@ import im.vector.app.features.spaces.explore.SpaceDirectoryViewEvents
|
||||
import im.vector.app.features.spaces.explore.SpaceDirectoryViewModel
|
||||
import javax.inject.Inject
|
||||
|
||||
class SpaceExploreActivity : VectorBaseActivity<ActivitySimpleBinding>(), SpaceDirectoryViewModel.Factory, MatrixToBottomSheet.InteractionListener {
|
||||
|
||||
@Inject lateinit var spaceDirectoryViewModelFactory: SpaceDirectoryViewModel.Factory
|
||||
class SpaceExploreActivity : VectorBaseActivity<ActivitySimpleBinding>(), MatrixToBottomSheet.InteractionListener {
|
||||
|
||||
override fun injectWith(injector: ScreenComponent) {
|
||||
injector.inject(this)
|
||||
@ -113,9 +111,6 @@ class SpaceExploreActivity : VectorBaseActivity<ActivitySimpleBinding>(), SpaceD
|
||||
}
|
||||
}
|
||||
|
||||
override fun create(initialState: SpaceDirectoryState): SpaceDirectoryViewModel =
|
||||
spaceDirectoryViewModelFactory.create(initialState)
|
||||
|
||||
override fun mxToBottomSheetNavigateToRoom(roomId: String) {
|
||||
navigator.openRoom(this, roomId)
|
||||
}
|
||||
|
@ -16,10 +16,7 @@
|
||||
|
||||
package im.vector.app.features.spaces.create
|
||||
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.airbnb.mvrx.ActivityViewModelContext
|
||||
import com.airbnb.mvrx.Fail
|
||||
import com.airbnb.mvrx.FragmentViewModelContext
|
||||
import com.airbnb.mvrx.Loading
|
||||
import com.airbnb.mvrx.MavericksViewModelFactory
|
||||
import com.airbnb.mvrx.Success
|
||||
@ -29,6 +26,8 @@ import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.R
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.error.ErrorFormatter
|
||||
import im.vector.app.core.extensions.exhaustive
|
||||
import im.vector.app.core.extensions.isEmail
|
||||
@ -76,8 +75,8 @@ class CreateSpaceViewModel @AssistedInject constructor(
|
||||
}
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: CreateSpaceState): CreateSpaceViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<CreateSpaceViewModel,CreateSpaceState> {
|
||||
override fun create(state: CreateSpaceState): CreateSpaceViewModel
|
||||
}
|
||||
|
||||
private fun startListenToIdentityManager() {
|
||||
@ -93,17 +92,9 @@ class CreateSpaceViewModel @AssistedInject constructor(
|
||||
super.onCleared()
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<CreateSpaceViewModel, CreateSpaceState> {
|
||||
companion object : MavericksViewModelFactory<CreateSpaceViewModel, CreateSpaceState> by hiltMavericksViewModelFactory(){
|
||||
|
||||
override fun create(viewModelContext: ViewModelContext, state: CreateSpaceState): CreateSpaceViewModel? {
|
||||
val factory = when (viewModelContext) {
|
||||
is FragmentViewModelContext -> viewModelContext.fragment as? Factory
|
||||
is ActivityViewModelContext -> viewModelContext.activity as? Factory
|
||||
}
|
||||
return factory?.create(state) ?: error("You should let your activity/fragment implements Factory interface")
|
||||
}
|
||||
|
||||
override fun initialState(viewModelContext: ViewModelContext): CreateSpaceState? {
|
||||
override fun initialState(viewModelContext: ViewModelContext): CreateSpaceState {
|
||||
return CreateSpaceState(
|
||||
defaultRooms = mapOf(
|
||||
0 to viewModelContext.activity.getString(R.string.create_spaces_default_public_room_name),
|
||||
|
@ -16,17 +16,16 @@
|
||||
|
||||
package im.vector.app.features.spaces.explore
|
||||
|
||||
import com.airbnb.mvrx.ActivityViewModelContext
|
||||
import com.airbnb.mvrx.Fail
|
||||
import com.airbnb.mvrx.FragmentViewModelContext
|
||||
import com.airbnb.mvrx.Loading
|
||||
import com.airbnb.mvrx.MavericksViewModelFactory
|
||||
import com.airbnb.mvrx.Success
|
||||
import com.airbnb.mvrx.Uninitialized
|
||||
import com.airbnb.mvrx.ViewModelContext
|
||||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
import im.vector.app.features.powerlevel.PowerLevelsFlowFactory
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@ -52,19 +51,11 @@ class SpaceDirectoryViewModel @AssistedInject constructor(
|
||||
) : VectorViewModel<SpaceDirectoryState, SpaceDirectoryViewAction, SpaceDirectoryViewEvents>(initialState) {
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: SpaceDirectoryState): SpaceDirectoryViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<SpaceDirectoryViewModel,SpaceDirectoryState> {
|
||||
override fun create(state: SpaceDirectoryState): SpaceDirectoryViewModel
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<SpaceDirectoryViewModel, SpaceDirectoryState> {
|
||||
override fun create(viewModelContext: ViewModelContext, state: SpaceDirectoryState): SpaceDirectoryViewModel? {
|
||||
val factory = when (viewModelContext) {
|
||||
is FragmentViewModelContext -> viewModelContext.fragment as? Factory
|
||||
is ActivityViewModelContext -> viewModelContext.activity as? Factory
|
||||
}
|
||||
return factory?.create(state) ?: error("You should let your activity/fragment implements Factory interface")
|
||||
}
|
||||
}
|
||||
companion object : MavericksViewModelFactory<SpaceDirectoryViewModel, SpaceDirectoryState> by hiltMavericksViewModelFactory()
|
||||
|
||||
init {
|
||||
|
||||
|
@ -43,7 +43,7 @@ import kotlinx.parcelize.Parcelize
|
||||
import org.matrix.android.sdk.api.util.toMatrixItem
|
||||
import javax.inject.Inject
|
||||
|
||||
class SpaceInviteBottomSheet : VectorBaseBottomSheetDialogFragment<BottomSheetInvitedToSpaceBinding>(), SpaceInviteBottomSheetViewModel.Factory {
|
||||
class SpaceInviteBottomSheet : VectorBaseBottomSheetDialogFragment<BottomSheetInvitedToSpaceBinding>() {
|
||||
|
||||
interface InteractionListener {
|
||||
fun spaceInviteBottomSheetOnAccept(spaceId: String)
|
||||
@ -65,10 +65,6 @@ class SpaceInviteBottomSheet : VectorBaseBottomSheetDialogFragment<BottomSheetIn
|
||||
|
||||
private val viewModel: SpaceInviteBottomSheetViewModel by fragmentViewModel(SpaceInviteBottomSheetViewModel::class)
|
||||
|
||||
@Inject lateinit var viewModelFactory: SpaceInviteBottomSheetViewModel.Factory
|
||||
|
||||
override fun create(initialState: SpaceInviteBottomSheetState) = viewModelFactory.create(initialState)
|
||||
|
||||
override fun injectWith(injector: ScreenComponent) {
|
||||
injector.inject(this)
|
||||
}
|
||||
|
@ -28,6 +28,8 @@ import com.airbnb.mvrx.ViewModelContext
|
||||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.error.ErrorFormatter
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
import im.vector.app.features.session.coroutineScope
|
||||
@ -93,20 +95,11 @@ class SpaceInviteBottomSheetViewModel @AssistedInject constructor(
|
||||
}
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: SpaceInviteBottomSheetState): SpaceInviteBottomSheetViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<SpaceInviteBottomSheetViewModel,SpaceInviteBottomSheetState> {
|
||||
override fun create(state: SpaceInviteBottomSheetState): SpaceInviteBottomSheetViewModel
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<SpaceInviteBottomSheetViewModel, SpaceInviteBottomSheetState> {
|
||||
|
||||
override fun create(viewModelContext: ViewModelContext, state: SpaceInviteBottomSheetState): SpaceInviteBottomSheetViewModel? {
|
||||
val factory = when (viewModelContext) {
|
||||
is FragmentViewModelContext -> viewModelContext.fragment as? Factory
|
||||
is ActivityViewModelContext -> viewModelContext.activity as? Factory
|
||||
}
|
||||
return factory?.create(state) ?: error("You should let your activity/fragment implements Factory interface")
|
||||
}
|
||||
}
|
||||
companion object : MavericksViewModelFactory<SpaceInviteBottomSheetViewModel, SpaceInviteBottomSheetState> by hiltMavericksViewModelFactory()
|
||||
|
||||
override fun handle(action: SpaceInviteBottomSheetAction) {
|
||||
when (action) {
|
||||
|
@ -41,18 +41,14 @@ import im.vector.app.features.spaces.SpaceBottomSheetSettingsArgs
|
||||
import javax.inject.Inject
|
||||
|
||||
class SpaceLeaveAdvancedActivity : VectorBaseActivity<ActivitySimpleLoadingBinding>(),
|
||||
SpaceLeaveAdvancedViewModel.Factory,
|
||||
ToolbarConfigurable {
|
||||
|
||||
override fun getBinding(): ActivitySimpleLoadingBinding = ActivitySimpleLoadingBinding.inflate(layoutInflater)
|
||||
|
||||
val leaveViewModel: SpaceLeaveAdvancedViewModel by viewModel()
|
||||
|
||||
@Inject lateinit var viewModelFactory: SpaceLeaveAdvancedViewModel.Factory
|
||||
@Inject lateinit var errorFormatter: ErrorFormatter
|
||||
|
||||
override fun create(initialState: SpaceLeaveAdvanceViewState) = viewModelFactory.create(initialState)
|
||||
|
||||
override fun injectWith(injector: ScreenComponent) {
|
||||
super.injectWith(injector)
|
||||
injector.inject(this)
|
||||
|
@ -16,18 +16,17 @@
|
||||
|
||||
package im.vector.app.features.spaces.leave
|
||||
|
||||
import com.airbnb.mvrx.ActivityViewModelContext
|
||||
import com.airbnb.mvrx.Fail
|
||||
import com.airbnb.mvrx.FragmentViewModelContext
|
||||
import com.airbnb.mvrx.Loading
|
||||
import com.airbnb.mvrx.MavericksViewModelFactory
|
||||
import com.airbnb.mvrx.Success
|
||||
import com.airbnb.mvrx.Uninitialized
|
||||
import com.airbnb.mvrx.ViewModelContext
|
||||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.AppStateHandler
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.platform.EmptyViewEvents
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
import kotlinx.coroutines.flow.launchIn
|
||||
@ -127,17 +126,9 @@ class SpaceLeaveAdvancedViewModel @AssistedInject constructor(
|
||||
}
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: SpaceLeaveAdvanceViewState): SpaceLeaveAdvancedViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<SpaceLeaveAdvancedViewModel, SpaceLeaveAdvanceViewState> {
|
||||
override fun create(state: SpaceLeaveAdvanceViewState): SpaceLeaveAdvancedViewModel
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<SpaceLeaveAdvancedViewModel, SpaceLeaveAdvanceViewState> {
|
||||
override fun create(viewModelContext: ViewModelContext, state: SpaceLeaveAdvanceViewState): SpaceLeaveAdvancedViewModel? {
|
||||
val factory = when (viewModelContext) {
|
||||
is FragmentViewModelContext -> viewModelContext.fragment as? Factory
|
||||
is ActivityViewModelContext -> viewModelContext.activity as? Factory
|
||||
}
|
||||
return factory?.create(state) ?: error("You should let your activity/fragment implements Factory interface")
|
||||
}
|
||||
}
|
||||
companion object : MavericksViewModelFactory<SpaceLeaveAdvancedViewModel, SpaceLeaveAdvanceViewState> by hiltMavericksViewModelFactory()
|
||||
}
|
||||
|
@ -44,9 +44,8 @@ class SpaceAddRoomFragment @Inject constructor(
|
||||
private val spaceEpoxyController: AddRoomListController,
|
||||
private val roomEpoxyController: AddRoomListController,
|
||||
private val dmEpoxyController: AddRoomListController,
|
||||
private val viewModelFactory: SpaceAddRoomsViewModel.Factory
|
||||
) : VectorBaseFragment<FragmentSpaceAddRoomsBinding>(),
|
||||
OnBackPressed, AddRoomListController.Listener, SpaceAddRoomsViewModel.Factory {
|
||||
OnBackPressed, AddRoomListController.Listener {
|
||||
|
||||
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?) =
|
||||
FragmentSpaceAddRoomsBinding.inflate(layoutInflater, container, false)
|
||||
@ -55,9 +54,6 @@ class SpaceAddRoomFragment @Inject constructor(
|
||||
|
||||
private val sharedViewModel: SpaceManageSharedViewModel by activityViewModel()
|
||||
|
||||
override fun create(initialState: SpaceAddRoomsState): SpaceAddRoomsViewModel =
|
||||
viewModelFactory.create(initialState)
|
||||
|
||||
override fun getMenuRes(): Int = R.menu.menu_space_add_room
|
||||
|
||||
private var saveNeeded = false
|
||||
|
@ -29,6 +29,8 @@ import com.airbnb.mvrx.ViewModelContext
|
||||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
@ -55,10 +57,12 @@ class SpaceAddRoomsViewModel @AssistedInject constructor(
|
||||
) : VectorViewModel<SpaceAddRoomsState, SpaceAddRoomActions, SpaceAddRoomsViewEvents>(initialState) {
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: SpaceAddRoomsState): SpaceAddRoomsViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<SpaceAddRoomsViewModel,SpaceAddRoomsState> {
|
||||
override fun create(state: SpaceAddRoomsState): SpaceAddRoomsViewModel
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<SpaceAddRoomsViewModel, SpaceAddRoomsState> by hiltMavericksViewModelFactory()
|
||||
|
||||
val updatableLiveSpacePageResult: UpdatableLivePageResult by lazy {
|
||||
session.getFilteredPagedRoomSummariesLive(
|
||||
roomSummaryQueryParams {
|
||||
@ -132,16 +136,6 @@ class SpaceAddRoomsViewModel @AssistedInject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<SpaceAddRoomsViewModel, SpaceAddRoomsState> {
|
||||
override fun create(viewModelContext: ViewModelContext, state: SpaceAddRoomsState): SpaceAddRoomsViewModel? {
|
||||
val factory = when (viewModelContext) {
|
||||
is FragmentViewModelContext -> viewModelContext.fragment as? Factory
|
||||
is ActivityViewModelContext -> viewModelContext.activity as? Factory
|
||||
}
|
||||
return factory?.create(state) ?: error("You should let your activity/fragment implements Factory interface")
|
||||
}
|
||||
}
|
||||
|
||||
fun canGoBack(): Boolean {
|
||||
val needToSave = selectionList.values.any { it }
|
||||
if (needToSave) {
|
||||
|
@ -44,13 +44,11 @@ import java.util.concurrent.TimeUnit
|
||||
import javax.inject.Inject
|
||||
|
||||
class SpacePeopleFragment @Inject constructor(
|
||||
private val viewModelFactory: SpacePeopleViewModel.Factory,
|
||||
private val roomMemberModelFactory: RoomMemberListViewModel.Factory,
|
||||
private val drawableProvider: DrawableProvider,
|
||||
private val colorProvider: ColorProvider,
|
||||
private val epoxyController: SpacePeopleListController
|
||||
) : VectorBaseFragment<FragmentRecyclerviewWithSearchBinding>(),
|
||||
SpacePeopleViewModel.Factory,
|
||||
RoomMemberListViewModel.Factory,
|
||||
OnBackPressed, SpacePeopleListController.InteractionListener {
|
||||
|
||||
@ -66,10 +64,6 @@ class SpacePeopleFragment @Inject constructor(
|
||||
return true
|
||||
}
|
||||
|
||||
override fun create(initialState: SpacePeopleViewState): SpacePeopleViewModel {
|
||||
return viewModelFactory.create(initialState)
|
||||
}
|
||||
|
||||
override fun create(initialState: RoomMemberListViewState): RoomMemberListViewModel {
|
||||
return roomMemberModelFactory.create(initialState)
|
||||
}
|
||||
|
@ -16,17 +16,15 @@
|
||||
|
||||
package im.vector.app.features.spaces.people
|
||||
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.airbnb.mvrx.ActivityViewModelContext
|
||||
import com.airbnb.mvrx.Fail
|
||||
import com.airbnb.mvrx.FragmentViewModelContext
|
||||
import com.airbnb.mvrx.Loading
|
||||
import com.airbnb.mvrx.MavericksViewModelFactory
|
||||
import com.airbnb.mvrx.Success
|
||||
import com.airbnb.mvrx.ViewModelContext
|
||||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.extensions.exhaustive
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
import im.vector.app.features.raw.wellknown.getElementWellknown
|
||||
@ -44,19 +42,11 @@ class SpacePeopleViewModel @AssistedInject constructor(
|
||||
) : VectorViewModel<SpacePeopleViewState, SpacePeopleViewAction, SpacePeopleViewEvents>(initialState) {
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: SpacePeopleViewState): SpacePeopleViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<SpacePeopleViewModel,SpacePeopleViewState> {
|
||||
override fun create(state: SpacePeopleViewState): SpacePeopleViewModel
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<SpacePeopleViewModel, SpacePeopleViewState> {
|
||||
override fun create(viewModelContext: ViewModelContext, state: SpacePeopleViewState): SpacePeopleViewModel? {
|
||||
val factory = when (viewModelContext) {
|
||||
is FragmentViewModelContext -> viewModelContext.fragment as? Factory
|
||||
is ActivityViewModelContext -> viewModelContext.activity as? Factory
|
||||
}
|
||||
return factory?.create(state) ?: error("You should let your activity/fragment implements Factory interface")
|
||||
}
|
||||
}
|
||||
companion object : MavericksViewModelFactory<SpacePeopleViewModel, SpacePeopleViewState> by hiltMavericksViewModelFactory()
|
||||
|
||||
override fun handle(action: SpacePeopleViewAction) {
|
||||
when (action) {
|
||||
|
@ -49,10 +49,9 @@ data class SpacePreviewArgs(
|
||||
) : Parcelable
|
||||
|
||||
class SpacePreviewFragment @Inject constructor(
|
||||
private val viewModelFactory: SpacePreviewViewModel.Factory,
|
||||
private val avatarRenderer: AvatarRenderer,
|
||||
private val epoxyController: SpacePreviewController
|
||||
) : VectorBaseFragment<FragmentSpacePreviewBinding>(), SpacePreviewViewModel.Factory {
|
||||
) : VectorBaseFragment<FragmentSpacePreviewBinding>() {
|
||||
|
||||
private val viewModel by fragmentViewModel(SpacePreviewViewModel::class)
|
||||
lateinit var sharedActionViewModel: SpacePreviewSharedActionViewModel
|
||||
@ -66,8 +65,6 @@ class SpacePreviewFragment @Inject constructor(
|
||||
sharedActionViewModel = activityViewModelProvider.get(SpacePreviewSharedActionViewModel::class.java)
|
||||
}
|
||||
|
||||
override fun create(initialState: SpacePreviewState) = viewModelFactory.create(initialState)
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
|
@ -28,6 +28,8 @@ import com.airbnb.mvrx.ViewModelContext
|
||||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.error.ErrorFormatter
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@ -58,19 +60,11 @@ class SpacePreviewViewModel @AssistedInject constructor(
|
||||
}
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: SpacePreviewState): SpacePreviewViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<SpacePreviewViewModel,SpacePreviewState> {
|
||||
override fun create(state: SpacePreviewState): SpacePreviewViewModel
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<SpacePreviewViewModel, SpacePreviewState> {
|
||||
override fun create(viewModelContext: ViewModelContext, state: SpacePreviewState): SpacePreviewViewModel? {
|
||||
val factory = when (viewModelContext) {
|
||||
is FragmentViewModelContext -> viewModelContext.fragment as? Factory
|
||||
is ActivityViewModelContext -> viewModelContext.activity as? Factory
|
||||
}
|
||||
return factory?.create(state) ?: error("You should let your activity/fragment implements Factory interface")
|
||||
}
|
||||
}
|
||||
companion object : MavericksViewModelFactory<SpacePreviewViewModel, SpacePreviewState> by hiltMavericksViewModelFactory()
|
||||
|
||||
override fun handle(action: SpacePreviewViewAction) {
|
||||
when (action) {
|
||||
|
@ -35,7 +35,7 @@ import im.vector.app.features.invite.InviteUsersToRoomActivity
|
||||
import kotlinx.parcelize.Parcelize
|
||||
import javax.inject.Inject
|
||||
|
||||
class ShareSpaceBottomSheet : VectorBaseBottomSheetDialogFragment<BottomSheetSpaceInviteBinding>(), ShareSpaceViewModel.Factory {
|
||||
class ShareSpaceBottomSheet : VectorBaseBottomSheetDialogFragment<BottomSheetSpaceInviteBinding>(){
|
||||
|
||||
@Parcelize
|
||||
data class Args(
|
||||
@ -47,10 +47,6 @@ class ShareSpaceBottomSheet : VectorBaseBottomSheetDialogFragment<BottomSheetSpa
|
||||
|
||||
private val viewModel: ShareSpaceViewModel by fragmentViewModel(ShareSpaceViewModel::class)
|
||||
|
||||
@Inject lateinit var viewModelFactory: ShareSpaceViewModel.Factory
|
||||
|
||||
override fun create(initialState: ShareSpaceViewState): ShareSpaceViewModel = viewModelFactory.create(initialState)
|
||||
|
||||
override fun injectWith(injector: ScreenComponent) {
|
||||
injector.inject(this)
|
||||
}
|
||||
|
@ -16,15 +16,14 @@
|
||||
|
||||
package im.vector.app.features.spaces.share
|
||||
|
||||
import com.airbnb.mvrx.ActivityViewModelContext
|
||||
import com.airbnb.mvrx.FragmentViewModelContext
|
||||
import com.airbnb.mvrx.MavericksViewModelFactory
|
||||
import com.airbnb.mvrx.Success
|
||||
import com.airbnb.mvrx.Uninitialized
|
||||
import com.airbnb.mvrx.ViewModelContext
|
||||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
import im.vector.app.features.powerlevel.PowerLevelsFlowFactory
|
||||
import kotlinx.coroutines.flow.launchIn
|
||||
@ -38,19 +37,11 @@ class ShareSpaceViewModel @AssistedInject constructor(
|
||||
private val session: Session) : VectorViewModel<ShareSpaceViewState, ShareSpaceAction, ShareSpaceViewEvents>(initialState) {
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: ShareSpaceViewState): ShareSpaceViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<ShareSpaceViewModel,ShareSpaceViewState> {
|
||||
override fun create(state: ShareSpaceViewState): ShareSpaceViewModel
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<ShareSpaceViewModel, ShareSpaceViewState> {
|
||||
override fun create(viewModelContext: ViewModelContext, state: ShareSpaceViewState): ShareSpaceViewModel? {
|
||||
val factory = when (viewModelContext) {
|
||||
is FragmentViewModelContext -> viewModelContext.fragment as? Factory
|
||||
is ActivityViewModelContext -> viewModelContext.activity as? Factory
|
||||
}
|
||||
return factory?.create(state) ?: error("You should let your activity/fragment implements Factory interface")
|
||||
}
|
||||
}
|
||||
companion object : MavericksViewModelFactory<ShareSpaceViewModel, ShareSpaceViewState> by hiltMavericksViewModelFactory()
|
||||
|
||||
init {
|
||||
val roomSummary = session.getRoomSummary(initialState.spaceId)
|
||||
|
@ -32,7 +32,6 @@ import javax.inject.Inject
|
||||
class ReviewTermsActivity : SimpleFragmentActivity() {
|
||||
|
||||
@Inject lateinit var errorFormatter: ErrorFormatter
|
||||
@Inject lateinit var viewModelFactory: ReviewTermsViewModel.Factory
|
||||
|
||||
private val reviewTermsViewModel: ReviewTermsViewModel by viewModel()
|
||||
|
||||
|
@ -15,16 +15,15 @@
|
||||
*/
|
||||
package im.vector.app.features.terms
|
||||
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.airbnb.mvrx.ActivityViewModelContext
|
||||
import com.airbnb.mvrx.Loading
|
||||
import com.airbnb.mvrx.MavericksViewModelFactory
|
||||
import com.airbnb.mvrx.Success
|
||||
import com.airbnb.mvrx.Uninitialized
|
||||
import com.airbnb.mvrx.ViewModelContext
|
||||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.extensions.exhaustive
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
import kotlinx.coroutines.launch
|
||||
@ -37,18 +36,11 @@ class ReviewTermsViewModel @AssistedInject constructor(
|
||||
) : VectorViewModel<ReviewTermsViewState, ReviewTermsAction, ReviewTermsViewEvents>(initialState) {
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: ReviewTermsViewState): ReviewTermsViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<ReviewTermsViewModel,ReviewTermsViewState> {
|
||||
override fun create(state: ReviewTermsViewState): ReviewTermsViewModel
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<ReviewTermsViewModel, ReviewTermsViewState> {
|
||||
|
||||
@JvmStatic
|
||||
override fun create(viewModelContext: ViewModelContext, state: ReviewTermsViewState): ReviewTermsViewModel? {
|
||||
val activity: ReviewTermsActivity = (viewModelContext as ActivityViewModelContext).activity()
|
||||
return activity.viewModelFactory.create(state)
|
||||
}
|
||||
}
|
||||
companion object : MavericksViewModelFactory<ReviewTermsViewModel, ReviewTermsViewState> by hiltMavericksViewModelFactory()
|
||||
|
||||
lateinit var termsArgs: ServiceTermsArgs
|
||||
|
||||
|
@ -41,11 +41,8 @@ import javax.inject.Inject
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
class UserCodeActivity : VectorBaseActivity<ActivitySimpleBinding>(),
|
||||
UserCodeSharedViewModel.Factory,
|
||||
MatrixToBottomSheet.InteractionListener {
|
||||
|
||||
@Inject lateinit var viewModelFactory: UserCodeSharedViewModel.Factory
|
||||
|
||||
val sharedViewModel: UserCodeSharedViewModel by viewModel()
|
||||
|
||||
@Parcelize
|
||||
@ -147,9 +144,6 @@ class UserCodeActivity : VectorBaseActivity<ActivitySimpleBinding>(),
|
||||
}.exhaustive
|
||||
}
|
||||
|
||||
override fun create(initialState: UserCodeState) =
|
||||
viewModelFactory.create(initialState)
|
||||
|
||||
companion object {
|
||||
fun newIntent(context: Context, userId: String): Intent {
|
||||
return Intent(context, UserCodeActivity::class.java).apply {
|
||||
|
@ -16,15 +16,13 @@
|
||||
|
||||
package im.vector.app.features.usercode
|
||||
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.airbnb.mvrx.ActivityViewModelContext
|
||||
import com.airbnb.mvrx.FragmentViewModelContext
|
||||
import com.airbnb.mvrx.MavericksViewModelFactory
|
||||
import com.airbnb.mvrx.ViewModelContext
|
||||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.R
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
import im.vector.app.core.resources.StringProvider
|
||||
import im.vector.app.features.createdirect.DirectRoomHelper
|
||||
@ -45,15 +43,7 @@ class UserCodeSharedViewModel @AssistedInject constructor(
|
||||
private val directRoomHelper: DirectRoomHelper,
|
||||
private val rawService: RawService) : VectorViewModel<UserCodeState, UserCodeActions, UserCodeShareViewEvents>(initialState) {
|
||||
|
||||
companion object : MavericksViewModelFactory<UserCodeSharedViewModel, UserCodeState> {
|
||||
override fun create(viewModelContext: ViewModelContext, state: UserCodeState): UserCodeSharedViewModel? {
|
||||
val factory = when (viewModelContext) {
|
||||
is FragmentViewModelContext -> viewModelContext.fragment as? Factory
|
||||
is ActivityViewModelContext -> viewModelContext.activity as? Factory
|
||||
}
|
||||
return factory?.create(state) ?: error("You should let your activity/fragment implements Factory interface")
|
||||
}
|
||||
}
|
||||
companion object : MavericksViewModelFactory<UserCodeSharedViewModel, UserCodeState> by hiltMavericksViewModelFactory()
|
||||
|
||||
init {
|
||||
val user = session.getUser(initialState.userId)
|
||||
@ -66,8 +56,8 @@ class UserCodeSharedViewModel @AssistedInject constructor(
|
||||
}
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: UserCodeState): UserCodeSharedViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<UserCodeSharedViewModel,UserCodeState> {
|
||||
override fun create(state: UserCodeState): UserCodeSharedViewModel
|
||||
}
|
||||
|
||||
override fun handle(action: UserCodeActions) {
|
||||
|
@ -25,6 +25,8 @@ import com.airbnb.mvrx.ViewModelContext
|
||||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.extensions.exhaustive
|
||||
import im.vector.app.core.extensions.isEmail
|
||||
import im.vector.app.core.extensions.toggle
|
||||
@ -61,20 +63,11 @@ class UserListViewModel @AssistedInject constructor(@Assisted initialState: User
|
||||
private val identityServerUsersSearch = MutableStateFlow("")
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: UserListViewState): UserListViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<UserListViewModel,UserListViewState> {
|
||||
override fun create(state: UserListViewState): UserListViewModel
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<UserListViewModel, UserListViewState> {
|
||||
|
||||
override fun create(viewModelContext: ViewModelContext, state: UserListViewState): UserListViewModel? {
|
||||
val factory = when (viewModelContext) {
|
||||
is FragmentViewModelContext -> viewModelContext.fragment as? Factory
|
||||
is ActivityViewModelContext -> viewModelContext.activity as? Factory
|
||||
}
|
||||
return factory?.create(state) ?: error("You should let your activity/fragment implements Factory interface")
|
||||
}
|
||||
}
|
||||
companion object : MavericksViewModelFactory<UserListViewModel, UserListViewState> by hiltMavericksViewModelFactory()
|
||||
|
||||
private val identityServerListener = object : IdentityServiceListener {
|
||||
override fun onIdentityServerChange() {
|
||||
|
@ -38,9 +38,7 @@ import java.io.Serializable
|
||||
import javax.inject.Inject
|
||||
|
||||
class WidgetActivity : VectorBaseActivity<ActivityWidgetBinding>(),
|
||||
ToolbarConfigurable,
|
||||
WidgetViewModel.Factory,
|
||||
RoomWidgetPermissionViewModel.Factory {
|
||||
ToolbarConfigurable {
|
||||
|
||||
companion object {
|
||||
|
||||
@ -66,9 +64,6 @@ class WidgetActivity : VectorBaseActivity<ActivityWidgetBinding>(),
|
||||
}
|
||||
}
|
||||
|
||||
@Inject lateinit var viewModelFactory: WidgetViewModel.Factory
|
||||
@Inject lateinit var permissionsViewModelFactory: RoomWidgetPermissionViewModel.Factory
|
||||
|
||||
private val viewModel: WidgetViewModel by viewModel()
|
||||
private val permissionViewModel: RoomWidgetPermissionViewModel by viewModel()
|
||||
|
||||
@ -133,14 +128,6 @@ class WidgetActivity : VectorBaseActivity<ActivityWidgetBinding>(),
|
||||
}
|
||||
}
|
||||
|
||||
override fun create(initialState: WidgetViewState): WidgetViewModel {
|
||||
return viewModelFactory.create(initialState)
|
||||
}
|
||||
|
||||
override fun create(initialState: RoomWidgetPermissionViewState): RoomWidgetPermissionViewModel {
|
||||
return permissionsViewModelFactory.create(initialState)
|
||||
}
|
||||
|
||||
private fun handleClose(event: WidgetViewEvents.Close) {
|
||||
if (event.content != null) {
|
||||
val intent = createResultIntent(event.content)
|
||||
|
@ -27,6 +27,8 @@ import com.airbnb.mvrx.ViewModelContext
|
||||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
import im.vector.app.core.resources.StringProvider
|
||||
import im.vector.app.features.widgets.permissions.WidgetPermissionsHelper
|
||||
@ -57,21 +59,11 @@ class WidgetViewModel @AssistedInject constructor(@Assisted val initialState: Wi
|
||||
IntegrationManagerService.Listener {
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: WidgetViewState): WidgetViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<WidgetViewModel,WidgetViewState> {
|
||||
override fun create(state: WidgetViewState): WidgetViewModel
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<WidgetViewModel, WidgetViewState> {
|
||||
|
||||
@JvmStatic
|
||||
override fun create(viewModelContext: ViewModelContext, state: WidgetViewState): WidgetViewModel? {
|
||||
val factory = when (viewModelContext) {
|
||||
is FragmentViewModelContext -> viewModelContext.fragment as? Factory
|
||||
is ActivityViewModelContext -> viewModelContext.activity as? Factory
|
||||
}
|
||||
return factory?.create(state) ?: error("You should let your activity/fragment implements Factory interface")
|
||||
}
|
||||
}
|
||||
companion object : MavericksViewModelFactory<WidgetViewModel, WidgetViewState> by hiltMavericksViewModelFactory()
|
||||
|
||||
private val room = session.getRoom(initialState.roomId)
|
||||
private val widgetService = session.widgetService()
|
||||
|
@ -18,11 +18,12 @@ package im.vector.app.features.widgets.permissions
|
||||
import com.airbnb.mvrx.ActivityViewModelContext
|
||||
import com.airbnb.mvrx.FragmentViewModelContext
|
||||
import com.airbnb.mvrx.MavericksViewModelFactory
|
||||
import com.airbnb.mvrx.ViewModelContext
|
||||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.R
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
import kotlinx.coroutines.flow.filter
|
||||
import kotlinx.coroutines.flow.map
|
||||
@ -141,19 +142,9 @@ class RoomWidgetPermissionViewModel @AssistedInject constructor(@Assisted val in
|
||||
}
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: RoomWidgetPermissionViewState): RoomWidgetPermissionViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<RoomWidgetPermissionViewModel,RoomWidgetPermissionViewState> {
|
||||
override fun create(state: RoomWidgetPermissionViewState): RoomWidgetPermissionViewModel
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<RoomWidgetPermissionViewModel, RoomWidgetPermissionViewState> {
|
||||
|
||||
@JvmStatic
|
||||
override fun create(viewModelContext: ViewModelContext, state: RoomWidgetPermissionViewState): RoomWidgetPermissionViewModel? {
|
||||
val factory = when (viewModelContext) {
|
||||
is FragmentViewModelContext -> viewModelContext.fragment as? Factory
|
||||
is ActivityViewModelContext -> viewModelContext.activity as? Factory
|
||||
}
|
||||
return factory?.create(state) ?: error("You should let your activity/fragment implements Factory interface")
|
||||
}
|
||||
}
|
||||
companion object : MavericksViewModelFactory<RoomWidgetPermissionViewModel, RoomWidgetPermissionViewState> by hiltMavericksViewModelFactory()
|
||||
}
|
||||
|
@ -27,6 +27,8 @@ import com.airbnb.mvrx.ViewModelContext
|
||||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.platform.EmptyAction
|
||||
import im.vector.app.core.platform.EmptyViewEvents
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
@ -67,21 +69,11 @@ class ServerBackupStatusViewModel @AssistedInject constructor(@Assisted initialS
|
||||
VectorViewModel<ServerBackupStatusViewState, EmptyAction, EmptyViewEvents>(initialState), KeysBackupStateListener {
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: ServerBackupStatusViewState): ServerBackupStatusViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<ServerBackupStatusViewModel,ServerBackupStatusViewState> {
|
||||
override fun create(state: ServerBackupStatusViewState): ServerBackupStatusViewModel
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<ServerBackupStatusViewModel, ServerBackupStatusViewState> {
|
||||
|
||||
@JvmStatic
|
||||
override fun create(viewModelContext: ViewModelContext, state: ServerBackupStatusViewState): ServerBackupStatusViewModel? {
|
||||
val factory = when (viewModelContext) {
|
||||
is FragmentViewModelContext -> viewModelContext.fragment as? Factory
|
||||
is ActivityViewModelContext -> viewModelContext.activity as? Factory
|
||||
}
|
||||
return factory?.create(state) ?: error("You should let your activity/fragment implements Factory interface")
|
||||
}
|
||||
}
|
||||
companion object : MavericksViewModelFactory<ServerBackupStatusViewModel, ServerBackupStatusViewState> by hiltMavericksViewModelFactory()
|
||||
|
||||
// Keys exported manually
|
||||
val keysExportedToFile = MutableLiveData<Boolean>()
|
||||
|
@ -46,8 +46,7 @@ import javax.inject.Inject
|
||||
|
||||
// TODO this needs to be refactored to current standard and remove legacy
|
||||
class SignOutBottomSheetDialogFragment :
|
||||
VectorBaseBottomSheetDialogFragment<BottomSheetLogoutAndBackupBinding>(),
|
||||
SignoutCheckViewModel.Factory {
|
||||
VectorBaseBottomSheetDialogFragment<BottomSheetLogoutAndBackupBinding>(){
|
||||
|
||||
var onSignOut: Runnable? = null
|
||||
|
||||
@ -59,13 +58,6 @@ class SignOutBottomSheetDialogFragment :
|
||||
isCancelable = true
|
||||
}
|
||||
|
||||
@Inject
|
||||
lateinit var viewModelFactory: SignoutCheckViewModel.Factory
|
||||
|
||||
override fun create(initialState: SignoutCheckViewState): SignoutCheckViewModel {
|
||||
return viewModelFactory.create(initialState)
|
||||
}
|
||||
|
||||
private val viewModel: SignoutCheckViewModel by fragmentViewModel(SignoutCheckViewModel::class)
|
||||
|
||||
override fun injectWith(injector: ScreenComponent) {
|
||||
|
@ -29,6 +29,8 @@ import com.airbnb.mvrx.ViewModelContext
|
||||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.extensions.exhaustive
|
||||
import im.vector.app.core.platform.EmptyViewEvents
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
@ -66,21 +68,11 @@ class SignoutCheckViewModel @AssistedInject constructor(
|
||||
}
|
||||
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
fun create(initialState: SignoutCheckViewState): SignoutCheckViewModel
|
||||
interface Factory: MavericksAssistedViewModelFactory<SignoutCheckViewModel,SignoutCheckViewState> {
|
||||
override fun create(state: SignoutCheckViewState): SignoutCheckViewModel
|
||||
}
|
||||
|
||||
companion object : MavericksViewModelFactory<SignoutCheckViewModel, SignoutCheckViewState> {
|
||||
|
||||
@JvmStatic
|
||||
override fun create(viewModelContext: ViewModelContext, state: SignoutCheckViewState): SignoutCheckViewModel? {
|
||||
val factory = when (viewModelContext) {
|
||||
is FragmentViewModelContext -> viewModelContext.fragment as? Factory
|
||||
is ActivityViewModelContext -> viewModelContext.activity as? Factory
|
||||
}
|
||||
return factory?.create(state) ?: error("You should let your activity/fragment implements Factory interface")
|
||||
}
|
||||
}
|
||||
companion object : MavericksViewModelFactory<SignoutCheckViewModel, SignoutCheckViewState> by hiltMavericksViewModelFactory()
|
||||
|
||||
init {
|
||||
session.cryptoService().keysBackupService().addListener(this)
|
||||
|
Loading…
x
Reference in New Issue
Block a user