From 1e6e8b546d2dd5c46d01de51dd073cb7df1b473b Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Tue, 22 Mar 2022 12:37:13 +0000 Subject: [PATCH] fixing presence icon anchoring to the middle of the room icon - creates a secondary verification shield and aligns to the start of the room title when presence is present --- changelog.d/5489.bugfix | 1 + .../home/room/detail/TimelineFragment.kt | 9 ++-- .../res/layout/view_room_detail_toolbar.xml | 46 ++++++++++++------- 3 files changed, 34 insertions(+), 22 deletions(-) create mode 100644 changelog.d/5489.bugfix diff --git a/changelog.d/5489.bugfix b/changelog.d/5489.bugfix new file mode 100644 index 0000000000..69ef0118a8 --- /dev/null +++ b/changelog.d/5489.bugfix @@ -0,0 +1 @@ +Fix presence indicator being aligned to the center of the room image \ No newline at end of file diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineFragment.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineFragment.kt index b66897d8d1..f462128c6b 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineFragment.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineFragment.kt @@ -1613,11 +1613,10 @@ class TimelineFragment @Inject constructor( views.includeRoomToolbar.roomToolbarContentView.isClickable = roomSummary.membership == Membership.JOIN views.includeRoomToolbar.roomToolbarTitleView.text = roomSummary.displayName avatarRenderer.render(roomSummary.toMatrixItem(), views.includeRoomToolbar.roomToolbarAvatarImageView) - views.includeRoomToolbar.roomToolbarDecorationImageView.render(roomSummary.roomEncryptionTrustLevel) - views.includeRoomToolbar.roomToolbarPresenceImageView.render( - roomSummary.isDirect && matrixConfiguration.presenceSyncEnabled, - roomSummary.directUserPresence - ) + val showPresence = roomSummary.isDirect && matrixConfiguration.presenceSyncEnabled + views.includeRoomToolbar.roomToolbarPresenceImageView.render(showPresence, roomSummary.directUserPresence) + val shieldView = if (showPresence) views.includeRoomToolbar.roomToolbarTitleShield else views.includeRoomToolbar.roomToolbarAvatarShield + shieldView.render(roomSummary.roomEncryptionTrustLevel) views.includeRoomToolbar.roomToolbarPublicImageView.isVisible = roomSummary.isPublic && !roomSummary.isDirect } } else { diff --git a/vector/src/main/res/layout/view_room_detail_toolbar.xml b/vector/src/main/res/layout/view_room_detail_toolbar.xml index befd84ea34..d5c1914d41 100644 --- a/vector/src/main/res/layout/view_room_detail_toolbar.xml +++ b/vector/src/main/res/layout/view_room_detail_toolbar.xml @@ -19,15 +19,6 @@ app:layout_constraintTop_toTopOf="parent" tools:src="@sample/room_round_avatars" /> - - @@ -59,27 +48,50 @@ tools:ignore="MissingConstraints" tools:visibility="invisible" /> + + + app:constraint_referenced_ids="roomToolbarAvatarImageView,roomToolbarAvatarShield,roomToolbarPresenceImageView,roomToolbarPublicImageView" /> + +