mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-20 12:09:45 +01:00
Merge pull request #1846 from nextcloud/bugfix/noid/fixCanLeaveApiCheck
Bugfix/noid/fix can leave api check
This commit is contained in:
commit
a75cb7fa5a
@ -613,13 +613,13 @@ class ConversationInfoController(args: Bundle) :
|
|||||||
|
|
||||||
setupWebinaryView()
|
setupWebinaryView()
|
||||||
|
|
||||||
if (!conversation!!.canLeave()) {
|
if (!conversation!!.canLeave(conversationUser)) {
|
||||||
binding.leaveConversationAction.visibility = View.GONE
|
binding.leaveConversationAction.visibility = View.GONE
|
||||||
} else {
|
} else {
|
||||||
binding.leaveConversationAction.visibility = View.VISIBLE
|
binding.leaveConversationAction.visibility = View.VISIBLE
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!conversation!!.canDelete()) {
|
if (!conversation!!.canDelete(conversationUser)) {
|
||||||
binding.deleteConversationAction.visibility = View.GONE
|
binding.deleteConversationAction.visibility = View.GONE
|
||||||
} else {
|
} else {
|
||||||
binding.deleteConversationAction.visibility = View.VISIBLE
|
binding.deleteConversationAction.visibility = View.VISIBLE
|
||||||
@ -662,7 +662,7 @@ class ConversationInfoController(args: Bundle) :
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onError(e: Throwable) {
|
override fun onError(e: Throwable) {
|
||||||
// unused atm
|
Log.e(TAG, "failed to fetch room info", e)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onComplete() {
|
override fun onComplete() {
|
||||||
|
@ -148,13 +148,24 @@ public class Conversation {
|
|||||||
return (canModerate(conversationUser) && !ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL.equals(type));
|
return (canModerate(conversationUser) && !ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL.equals(type));
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canLeave() {
|
public boolean canLeave(UserEntity conversationUser) {
|
||||||
|
if (canLeaveConversation != null) {
|
||||||
|
// Available since APIv2
|
||||||
return canLeaveConversation;
|
return canLeaveConversation;
|
||||||
}
|
}
|
||||||
|
// Fallback for APIv1
|
||||||
|
return !canModerate(conversationUser) ||
|
||||||
|
(getType() != ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL && this.participants.size() > 1);
|
||||||
|
}
|
||||||
|
|
||||||
public boolean canDelete() {
|
public boolean canDelete(UserEntity conversationUser) {
|
||||||
|
if (canDeleteConversation != null) {
|
||||||
|
// Available since APIv2
|
||||||
return canDeleteConversation;
|
return canDeleteConversation;
|
||||||
}
|
}
|
||||||
|
// Fallback for APIv1
|
||||||
|
return canModerate(conversationUser);
|
||||||
|
}
|
||||||
|
|
||||||
public String getRoomId() {
|
public String getRoomId() {
|
||||||
return this.roomId;
|
return this.roomId;
|
||||||
|
@ -157,7 +157,7 @@ class ConversationsListBottomDialog(
|
|||||||
)
|
)
|
||||||
|
|
||||||
binding.conversationOperationLeave.visibility = setVisibleIf(
|
binding.conversationOperationLeave.visibility = setVisibleIf(
|
||||||
conversation.canLeave() &&
|
conversation.canLeave(currentUser) &&
|
||||||
// leaving is by api not possible for the last user with moderator permissions.
|
// leaving is by api not possible for the last user with moderator permissions.
|
||||||
// for now, hide this option for all moderators.
|
// for now, hide this option for all moderators.
|
||||||
!conversation.canModerate(currentUser)
|
!conversation.canModerate(currentUser)
|
||||||
|
Loading…
Reference in New Issue
Block a user