mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 16:10:00 +00:00
Remember presenter only on userId.
Avoid creating again the presenter when other parameter of the room member are changing.
This commit is contained in:
+5
-4
@@ -38,6 +38,7 @@ import io.element.android.libraries.designsystem.utils.snackbar.LocalSnackbarDis
|
|||||||
import io.element.android.libraries.designsystem.utils.snackbar.SnackbarMessage
|
import io.element.android.libraries.designsystem.utils.snackbar.SnackbarMessage
|
||||||
import io.element.android.libraries.designsystem.utils.snackbar.collectSnackbarMessageAsState
|
import io.element.android.libraries.designsystem.utils.snackbar.collectSnackbarMessageAsState
|
||||||
import io.element.android.libraries.matrix.api.MatrixClient
|
import io.element.android.libraries.matrix.api.MatrixClient
|
||||||
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
import io.element.android.libraries.matrix.api.encryption.identity.IdentityState
|
import io.element.android.libraries.matrix.api.encryption.identity.IdentityState
|
||||||
import io.element.android.libraries.matrix.api.notificationsettings.NotificationSettingsService
|
import io.element.android.libraries.matrix.api.notificationsettings.NotificationSettingsService
|
||||||
import io.element.android.libraries.matrix.api.room.JoinedRoom
|
import io.element.android.libraries.matrix.api.room.JoinedRoom
|
||||||
@@ -117,7 +118,7 @@ class RoomDetailsPresenter(
|
|||||||
val canonicalAlias by remember { derivedStateOf { roomInfo.canonicalAlias } }
|
val canonicalAlias by remember { derivedStateOf { roomInfo.canonicalAlias } }
|
||||||
val isEncrypted by remember { derivedStateOf { roomInfo.isEncrypted == true } }
|
val isEncrypted by remember { derivedStateOf { roomInfo.isEncrypted == true } }
|
||||||
val dmMember by room.getDirectRoomMember(membersState)
|
val dmMember by room.getDirectRoomMember(membersState)
|
||||||
val roomMemberDetailsPresenter = roomMemberDetailsPresenter(dmMember)
|
val roomMemberDetailsPresenter = roomMemberDetailsPresenter(dmMember?.userId)
|
||||||
val roomType = getRoomType(dmMember)
|
val roomType = getRoomType(dmMember)
|
||||||
val roomCallState = roomCallStatePresenter.present()
|
val roomCallState = roomCallStatePresenter.present()
|
||||||
val joinedMemberCount by remember { derivedStateOf { roomInfo.joinedMembersCount } }
|
val joinedMemberCount by remember { derivedStateOf { roomInfo.joinedMembersCount } }
|
||||||
@@ -220,9 +221,9 @@ class RoomDetailsPresenter(
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun roomMemberDetailsPresenter(dmMemberState: RoomMember?) = remember(dmMemberState) {
|
private fun roomMemberDetailsPresenter(userId: UserId?) = remember(userId) {
|
||||||
dmMemberState?.let { roomMember ->
|
userId?.let { userId ->
|
||||||
roomMembersDetailsPresenterFactory.create(roomMember.userId)
|
roomMembersDetailsPresenterFactory.create(userId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user