@@ -31,7 +31,6 @@ import com.owncloud.android.databinding.MemberItemBinding
3131import com.owncloud.android.domain.roles.model.OCRole
3232import com.owncloud.android.domain.roles.model.OCRoleType
3333import com.owncloud.android.domain.spaces.model.SpaceMember
34- import com.owncloud.android.domain.spaces.model.SpaceMembers
3534import com.owncloud.android.utils.DisplayUtils
3635import com.owncloud.android.utils.PreferenceUtils
3736
@@ -97,13 +96,23 @@ class SpaceMembersAdapter(
9796
9897 override fun getItemCount (): Int = members.size
9998
100- fun setSpaceMembers (spaceMembers : SpaceMembers , roles : List <OCRole >, canRemoveMembers : Boolean , canEditMembers : Boolean , numberOfManagers : Int ) {
99+ fun setSpaceMembers (
100+ spaceMembers : List <SpaceMember >,
101+ roles : List <OCRole >,
102+ canRemoveMembers : Boolean ,
103+ canEditMembers : Boolean ,
104+ numberOfManagers : Int
105+ ) {
106+
107+ val userPermissionsChanged = this .canEditMembers != canEditMembers
108+ val numberOfManagersChanged = this .numberOfManagers != numberOfManagers
109+
101110 this .canRemoveMembers = canRemoveMembers
102111 this .canEditMembers = canEditMembers
103112 this .rolesMap = roles.associate { it.id to it.displayName }
104- val listOfMembersFiltered = spaceMembers.members. sortedWith(compareByDescending<SpaceMember > {
113+ val listOfMembersFiltered = spaceMembers.sortedWith(compareByDescending<SpaceMember > {
105114 member -> roles.indexOfFirst { it.id in member.roles } }.thenBy { member -> member.displayName })
106- val diffCallback = SpaceMembersDiffUtil (this .members, listOfMembersFiltered, this .numberOfManagers, numberOfManagers )
115+ val diffCallback = SpaceMembersDiffUtil (this .members, listOfMembersFiltered, numberOfManagersChanged, userPermissionsChanged )
107116 val diffResult = DiffUtil .calculateDiff(diffCallback)
108117 this .members = listOfMembersFiltered
109118 this .numberOfManagers = numberOfManagers
0 commit comments