From a8b5a5227f9c00424021f7ecfda9a65b73cbf70c Mon Sep 17 00:00:00 2001 From: Valere Date: Wed, 25 Nov 2020 15:47:27 +0100 Subject: [PATCH] Code review update --- .../createdirect/CreateDirectRoomActivity.kt | 4 ++-- .../features/invite/InviteUsersToRoomActivity.kt | 4 ++-- .../app/features/usercode/UserCodeActivity.kt | 4 ++-- .../features/usercode/UserCodeSharedViewModel.kt | 13 ++++--------- .../vector/app/features/usercode/UserCodeState.kt | 4 ++++ .../app/features/userdirectory/UserListViewModel.kt | 7 +++---- .../app/features/userdirectory/UserListViewState.kt | 4 ++++ 7 files changed, 21 insertions(+), 19 deletions(-) diff --git a/vector/src/main/java/im/vector/app/features/createdirect/CreateDirectRoomActivity.kt b/vector/src/main/java/im/vector/app/features/createdirect/CreateDirectRoomActivity.kt index b4c278116b..6fafe0b977 100644 --- a/vector/src/main/java/im/vector/app/features/createdirect/CreateDirectRoomActivity.kt +++ b/vector/src/main/java/im/vector/app/features/createdirect/CreateDirectRoomActivity.kt @@ -71,8 +71,8 @@ class CreateDirectRoomActivity : SimpleFragmentActivity(), UserListViewModel.Fac injector.inject(this) } - override fun create(initialState: UserListViewState, args: UserListFragmentArgs): UserListViewModel { - return userListViewModelFactory.create(initialState, args) + override fun create(initialState: UserListViewState): UserListViewModel { + return userListViewModelFactory.create(initialState) } override fun onCreate(savedInstanceState: Bundle?) { diff --git a/vector/src/main/java/im/vector/app/features/invite/InviteUsersToRoomActivity.kt b/vector/src/main/java/im/vector/app/features/invite/InviteUsersToRoomActivity.kt index 513fbb5d83..65f547a662 100644 --- a/vector/src/main/java/im/vector/app/features/invite/InviteUsersToRoomActivity.kt +++ b/vector/src/main/java/im/vector/app/features/invite/InviteUsersToRoomActivity.kt @@ -68,8 +68,8 @@ class InviteUsersToRoomActivity : SimpleFragmentActivity(), UserListViewModel.Fa injector.inject(this) } - override fun create(initialState: UserListViewState, args: UserListFragmentArgs): UserListViewModel { - return userListViewModelFactory.create(initialState, args) + override fun create(initialState: UserListViewState): UserListViewModel { + return userListViewModelFactory.create(initialState) } override fun onCreate(savedInstanceState: Bundle?) { diff --git a/vector/src/main/java/im/vector/app/features/usercode/UserCodeActivity.kt b/vector/src/main/java/im/vector/app/features/usercode/UserCodeActivity.kt index 149caaba8f..ffef98d544 100644 --- a/vector/src/main/java/im/vector/app/features/usercode/UserCodeActivity.kt +++ b/vector/src/main/java/im/vector/app/features/usercode/UserCodeActivity.kt @@ -116,8 +116,8 @@ class UserCodeActivity }.exhaustive } - override fun create(initialState: UserCodeState, args: Args) = - viewModelFactory.create(initialState, args) + override fun create(initialState: UserCodeState) = + viewModelFactory.create(initialState) companion object { fun newIntent(context: Context, userId: String): Intent { diff --git a/vector/src/main/java/im/vector/app/features/usercode/UserCodeSharedViewModel.kt b/vector/src/main/java/im/vector/app/features/usercode/UserCodeSharedViewModel.kt index b456f24972..aa1f882e78 100644 --- a/vector/src/main/java/im/vector/app/features/usercode/UserCodeSharedViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/usercode/UserCodeSharedViewModel.kt @@ -41,7 +41,6 @@ import org.matrix.android.sdk.internal.util.awaitCallback class UserCodeSharedViewModel @AssistedInject constructor( @Assisted val initialState: UserCodeState, - @Assisted val args: UserCodeActivity.Args, private val session: Session, private val stringProvider: StringProvider, private val rawService: RawService) : VectorViewModel(initialState) { @@ -53,27 +52,23 @@ class UserCodeSharedViewModel @AssistedInject constructor( is FragmentViewModelContext -> viewModelContext.fragment as? Factory is ActivityViewModelContext -> viewModelContext.activity as? Factory } - return factory?.create(state, args) ?: error("You should let your activity/fragment implements Factory interface") - } - - override fun initialState(viewModelContext: ViewModelContext): UserCodeState? { - return UserCodeState(viewModelContext.args().userId) + return factory?.create(state) ?: error("You should let your activity/fragment implements Factory interface") } } init { - val user = session.getUser(args.userId) + val user = session.getUser(initialState.userId) setState { copy( matrixItem = user?.toMatrixItem(), - shareLink = session.permalinkService().createPermalink(args.userId) + shareLink = session.permalinkService().createPermalink(initialState.userId) ) } } @AssistedInject.Factory interface Factory { - fun create(initialState: UserCodeState, args: UserCodeActivity.Args): UserCodeSharedViewModel + fun create(initialState: UserCodeState): UserCodeSharedViewModel } override fun handle(action: UserCodeActions) { diff --git a/vector/src/main/java/im/vector/app/features/usercode/UserCodeState.kt b/vector/src/main/java/im/vector/app/features/usercode/UserCodeState.kt index 3be882af3d..fdcfa2cb5e 100644 --- a/vector/src/main/java/im/vector/app/features/usercode/UserCodeState.kt +++ b/vector/src/main/java/im/vector/app/features/usercode/UserCodeState.kt @@ -30,4 +30,8 @@ data class UserCodeState( object SCAN : Mode() data class RESULT(val matrixItem: MatrixItem) : Mode() } + + constructor(args: UserCodeActivity.Args) : this( + userId = args.userId + ) } diff --git a/vector/src/main/java/im/vector/app/features/userdirectory/UserListViewModel.kt b/vector/src/main/java/im/vector/app/features/userdirectory/UserListViewModel.kt index b1d9e26afa..85701c25a1 100644 --- a/vector/src/main/java/im/vector/app/features/userdirectory/UserListViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/userdirectory/UserListViewModel.kt @@ -43,7 +43,6 @@ private typealias KnownUsersSearch = String private typealias DirectoryUsersSearch = String class UserListViewModel @AssistedInject constructor(@Assisted initialState: UserListViewState, - @Assisted args: UserListFragmentArgs, private val session: Session) : VectorViewModel(initialState) { @@ -54,7 +53,7 @@ class UserListViewModel @AssistedInject constructor(@Assisted initialState: User @AssistedInject.Factory interface Factory { - fun create(initialState: UserListViewState, args: UserListFragmentArgs): UserListViewModel + fun create(initialState: UserListViewState): UserListViewModel } companion object : MvRxViewModelFactory { @@ -65,7 +64,7 @@ class UserListViewModel @AssistedInject constructor(@Assisted initialState: User is ActivityViewModelContext -> viewModelContext.activity as? Factory } val args = viewModelContext.args() - return factory?.create(state, args) ?: error("You should let your activity/fragment implements Factory interface") + return factory?.create(state) ?: error("You should let your activity/fragment implements Factory interface") } } @@ -73,7 +72,7 @@ class UserListViewModel @AssistedInject constructor(@Assisted initialState: User setState { copy( myUserId = session.myUserId, - existingRoomId = args.existingRoomId + existingRoomId = initialState.existingRoomId ) } observeUsers() diff --git a/vector/src/main/java/im/vector/app/features/userdirectory/UserListViewState.kt b/vector/src/main/java/im/vector/app/features/userdirectory/UserListViewState.kt index f7cf421ca8..69135f912d 100644 --- a/vector/src/main/java/im/vector/app/features/userdirectory/UserListViewState.kt +++ b/vector/src/main/java/im/vector/app/features/userdirectory/UserListViewState.kt @@ -35,6 +35,10 @@ data class UserListViewState( val existingRoomId: String? = null ) : MvRxState { + constructor(args: UserListFragmentArgs) : this( + existingRoomId = args.existingRoomId + ) + fun getSelectedMatrixId(): List { return pendingInvitees .mapNotNull {