Correction: "Jump to read receipt" available only for members with read receipt info (invited member can have read receipt info from a previous membership)
Not live for the moment, I think it is acceptable. Also the Activity will finish itself instead of the Fragment
This commit is contained in:
parent
6325ee9310
commit
e33bc7146b
|
@ -173,7 +173,7 @@ class RoomMemberProfileController @Inject constructor(
|
||||||
|
|
||||||
buildProfileSection(stringProvider.getString(R.string.room_profile_section_more))
|
buildProfileSection(stringProvider.getString(R.string.room_profile_section_more))
|
||||||
|
|
||||||
if (membership == Membership.JOIN) {
|
if (state.hasReadReceipt) {
|
||||||
buildProfileAction(
|
buildProfileAction(
|
||||||
id = "read_receipt",
|
id = "read_receipt",
|
||||||
editable = false,
|
editable = false,
|
||||||
|
|
|
@ -85,7 +85,8 @@ class RoomMemberProfileViewModel @AssistedInject constructor(@Assisted private v
|
||||||
setState {
|
setState {
|
||||||
copy(
|
copy(
|
||||||
isMine = session.myUserId == this.userId,
|
isMine = session.myUserId == this.userId,
|
||||||
userMatrixItem = room?.getRoomMember(initialState.userId)?.toMatrixItem()?.let { Success(it) } ?: Uninitialized
|
userMatrixItem = room?.getRoomMember(initialState.userId)?.toMatrixItem()?.let { Success(it) } ?: Uninitialized,
|
||||||
|
hasReadReceipt = room?.getUserReadReceipt(initialState.userId) != null
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
observeIgnoredState()
|
observeIgnoredState()
|
||||||
|
|
|
@ -39,6 +39,7 @@ data class RoomMemberProfileViewState(
|
||||||
val allDevicesAreTrusted: Boolean = false,
|
val allDevicesAreTrusted: Boolean = false,
|
||||||
val allDevicesAreCrossSignedTrusted: Boolean = false,
|
val allDevicesAreCrossSignedTrusted: Boolean = false,
|
||||||
val asyncMembership: Async<Membership> = Uninitialized,
|
val asyncMembership: Async<Membership> = Uninitialized,
|
||||||
|
val hasReadReceipt: Boolean = false,
|
||||||
val actionPermissions: ActionPermissions = ActionPermissions()
|
val actionPermissions: ActionPermissions = ActionPermissions()
|
||||||
) : MvRxState {
|
) : MvRxState {
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,7 @@ import im.vector.app.core.extensions.addFragment
|
||||||
import im.vector.app.core.extensions.addFragmentToBackstack
|
import im.vector.app.core.extensions.addFragmentToBackstack
|
||||||
import im.vector.app.core.platform.ToolbarConfigurable
|
import im.vector.app.core.platform.ToolbarConfigurable
|
||||||
import im.vector.app.core.platform.VectorBaseActivity
|
import im.vector.app.core.platform.VectorBaseActivity
|
||||||
|
import im.vector.app.features.home.room.detail.RoomDetailPendingActionStore
|
||||||
import im.vector.app.features.room.RequireActiveMembershipViewEvents
|
import im.vector.app.features.room.RequireActiveMembershipViewEvents
|
||||||
import im.vector.app.features.room.RequireActiveMembershipViewModel
|
import im.vector.app.features.room.RequireActiveMembershipViewModel
|
||||||
import im.vector.app.features.room.RequireActiveMembershipViewState
|
import im.vector.app.features.room.RequireActiveMembershipViewState
|
||||||
|
@ -61,6 +62,9 @@ class RoomProfileActivity :
|
||||||
@Inject
|
@Inject
|
||||||
lateinit var requireActiveMembershipViewModelFactory: RequireActiveMembershipViewModel.Factory
|
lateinit var requireActiveMembershipViewModelFactory: RequireActiveMembershipViewModel.Factory
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
lateinit var roomDetailPendingActionStore: RoomDetailPendingActionStore
|
||||||
|
|
||||||
override fun create(initialState: RequireActiveMembershipViewState): RequireActiveMembershipViewModel {
|
override fun create(initialState: RequireActiveMembershipViewState): RequireActiveMembershipViewModel {
|
||||||
return requireActiveMembershipViewModelFactory.create(initialState)
|
return requireActiveMembershipViewModelFactory.create(initialState)
|
||||||
}
|
}
|
||||||
|
@ -97,6 +101,13 @@ class RoomProfileActivity :
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onResume() {
|
||||||
|
super.onResume()
|
||||||
|
if (roomDetailPendingActionStore.data != null) {
|
||||||
|
finish()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun handleRoomLeft(roomLeft: RequireActiveMembershipViewEvents.RoomLeft) {
|
private fun handleRoomLeft(roomLeft: RequireActiveMembershipViewEvents.RoomLeft) {
|
||||||
if (roomLeft.leftMessage != null) {
|
if (roomLeft.leftMessage != null) {
|
||||||
Toast.makeText(this, roomLeft.leftMessage, Toast.LENGTH_LONG).show()
|
Toast.makeText(this, roomLeft.leftMessage, Toast.LENGTH_LONG).show()
|
||||||
|
|
|
@ -36,7 +36,6 @@ import im.vector.app.core.extensions.cleanup
|
||||||
import im.vector.app.core.extensions.configureWith
|
import im.vector.app.core.extensions.configureWith
|
||||||
import im.vector.app.core.platform.VectorBaseFragment
|
import im.vector.app.core.platform.VectorBaseFragment
|
||||||
import im.vector.app.features.home.AvatarRenderer
|
import im.vector.app.features.home.AvatarRenderer
|
||||||
import im.vector.app.features.home.room.detail.RoomDetailPendingActionStore
|
|
||||||
import im.vector.app.features.roomprofile.RoomProfileArgs
|
import im.vector.app.features.roomprofile.RoomProfileArgs
|
||||||
import kotlinx.android.synthetic.main.fragment_room_setting_generic.*
|
import kotlinx.android.synthetic.main.fragment_room_setting_generic.*
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
@ -44,8 +43,7 @@ import javax.inject.Inject
|
||||||
class RoomMemberListFragment @Inject constructor(
|
class RoomMemberListFragment @Inject constructor(
|
||||||
val viewModelFactory: RoomMemberListViewModel.Factory,
|
val viewModelFactory: RoomMemberListViewModel.Factory,
|
||||||
private val roomMemberListController: RoomMemberListController,
|
private val roomMemberListController: RoomMemberListController,
|
||||||
private val avatarRenderer: AvatarRenderer,
|
private val avatarRenderer: AvatarRenderer
|
||||||
private val roomDetailPendingActionStore: RoomDetailPendingActionStore
|
|
||||||
) : VectorBaseFragment(), RoomMemberListController.Callback {
|
) : VectorBaseFragment(), RoomMemberListController.Callback {
|
||||||
|
|
||||||
private val viewModel: RoomMemberListViewModel by fragmentViewModel()
|
private val viewModel: RoomMemberListViewModel by fragmentViewModel()
|
||||||
|
@ -98,13 +96,6 @@ class RoomMemberListFragment @Inject constructor(
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onResume() {
|
|
||||||
super.onResume()
|
|
||||||
if (roomDetailPendingActionStore.data != null) {
|
|
||||||
vectorBaseActivity.finish()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onDestroyView() {
|
override fun onDestroyView() {
|
||||||
recyclerView.cleanup()
|
recyclerView.cleanup()
|
||||||
super.onDestroyView()
|
super.onDestroyView()
|
||||||
|
|
Loading…
Reference in New Issue