mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2025-02-16 20:10:04 +03:00
Merge pull request #3971 from vector-im/feature/fre/room_details_power_level
Room details: check power level before displaying actions in the timeline
This commit is contained in:
commit
c6a99f1bb1
3 changed files with 8 additions and 3 deletions
1
changelog.d/3959.feature
Normal file
1
changelog.d/3959.feature
Normal file
|
@ -0,0 +1 @@
|
|||
Check power level before displaying actions in the room details' timeline
|
|
@ -206,6 +206,7 @@ class MergedHeaderItemFactory @Inject constructor(private val activeSessionHolde
|
|||
callback = callback,
|
||||
currentUserId = currentUserId,
|
||||
roomSummary = partialState.roomSummary,
|
||||
canInvite = powerLevelsHelper?.isUserAbleToInvite(currentUserId) ?: false,
|
||||
canChangeAvatar = powerLevelsHelper?.isUserAllowedToSend(currentUserId, true, EventType.STATE_ROOM_AVATAR) ?: false,
|
||||
canChangeTopic = powerLevelsHelper?.isUserAllowedToSend(currentUserId, true, EventType.STATE_ROOM_TOPIC) ?: false,
|
||||
canChangeName = powerLevelsHelper?.isUserAllowedToSend(currentUserId, true, EventType.STATE_ROOM_NAME) ?: false
|
||||
|
|
|
@ -143,7 +143,8 @@ abstract class MergedRoomCreationItem : BasedMergedItem<MergedRoomCreationItem.H
|
|||
val topic = roomSummary?.topic
|
||||
if (topic.isNullOrBlank()) {
|
||||
// do not show hint for DMs or group DMs
|
||||
if (!isDirect) {
|
||||
val canSetTopic = attributes.canChangeTopic && !isDirect
|
||||
if (canSetTopic) {
|
||||
val addTopicLink = holder.view.resources.getString(R.string.add_a_topic_link_text)
|
||||
val styledText = SpannableString(holder.view.resources.getString(R.string.room_created_summary_no_topic_creation_text, addTopicLink))
|
||||
holder.roomTopicText.setTextOrHide(styledText.tappableMatchingText(addTopicLink, object : ClickableSpan() {
|
||||
|
@ -189,8 +190,9 @@ abstract class MergedRoomCreationItem : BasedMergedItem<MergedRoomCreationItem.H
|
|||
}
|
||||
}
|
||||
|
||||
holder.addPeopleButton.isVisible = !isDirect
|
||||
if (!isDirect) {
|
||||
val canInvite = attributes.canInvite && !isDirect
|
||||
holder.addPeopleButton.isVisible = canInvite
|
||||
if (canInvite) {
|
||||
holder.addPeopleButton.onClick {
|
||||
attributes.callback?.onTimelineItemAction(RoomDetailAction.QuickActionInvitePeople)
|
||||
}
|
||||
|
@ -227,6 +229,7 @@ abstract class MergedRoomCreationItem : BasedMergedItem<MergedRoomCreationItem.H
|
|||
val hasEncryptionEvent: Boolean,
|
||||
val isEncryptionAlgorithmSecure: Boolean,
|
||||
val roomSummary: RoomSummary?,
|
||||
val canInvite: Boolean = false,
|
||||
val canChangeAvatar: Boolean = false,
|
||||
val canChangeName: Boolean = false,
|
||||
val canChangeTopic: Boolean = false
|
||||
|
|
Loading…
Add table
Reference in a new issue