diff --git a/core/src/main/java/org/futo/circles/core/feature/room/create/CreateRoomDialogFragment.kt b/core/src/main/java/org/futo/circles/core/feature/room/create/CreateRoomDialogFragment.kt index 340a2eee121ec77df066add01886502b0214a3fe..cfea5392de1291c700d931abfe73398fd998b790 100644 --- a/core/src/main/java/org/futo/circles/core/feature/room/create/CreateRoomDialogFragment.kt +++ b/core/src/main/java/org/futo/circles/core/feature/room/create/CreateRoomDialogFragment.kt @@ -84,7 +84,9 @@ class CreateRoomDialogFragment : createRoom() startLoading(btnCreate) } + tvRoleHeader.setIsVisible(!isCircle) spUserRole.apply { + setIsVisible(!isCircle) adapter = circleTypeAdapter setSelection(AccessLevel.User.ordinal) } diff --git a/core/src/main/java/org/futo/circles/core/feature/room/manage_members/ManageMembersDialogFragment.kt b/core/src/main/java/org/futo/circles/core/feature/room/manage_members/ManageMembersDialogFragment.kt index 72e0d104027ea2569869cb31c9daa301a238762b..3f3079e7e2aa59c021eeca8b700ae2ac80bb91f2 100644 --- a/core/src/main/java/org/futo/circles/core/feature/room/manage_members/ManageMembersDialogFragment.kt +++ b/core/src/main/java/org/futo/circles/core/feature/room/manage_members/ManageMembersDialogFragment.kt @@ -5,6 +5,7 @@ import android.os.Bundle import android.view.View import androidx.fragment.app.viewModels import androidx.navigation.fragment.findNavController +import androidx.navigation.fragment.navArgs import androidx.recyclerview.widget.DividerItemDecoration import dagger.hilt.android.AndroidEntryPoint import org.futo.circles.core.base.fragment.BaseFullscreenDialogFragment @@ -17,8 +18,10 @@ import org.futo.circles.core.extensions.observeResponse import org.futo.circles.core.extensions.withConfirmation import org.futo.circles.core.feature.room.manage_members.change_role.ChangeAccessLevelListener import org.futo.circles.core.feature.room.manage_members.list.GroupMembersListAdapter +import org.futo.circles.core.feature.room.share.ShareRoomDialogFragmentArgs import org.futo.circles.core.model.BanUser import org.futo.circles.core.model.CancelInvite +import org.futo.circles.core.model.CircleRoomTypeArg import org.futo.circles.core.model.RemoveRoomUser import org.futo.circles.core.model.ResendInvite import org.futo.circles.core.model.UnbanUser @@ -30,6 +33,7 @@ class ManageMembersDialogFragment : BaseFullscreenDialogFragment(DialogFragmentManageMembersBinding::inflate), ManageMembersOptionsListener, ChangeAccessLevelListener { + private val args: ManageMembersDialogFragmentArgs by navArgs() private val viewModel by viewModels<ManageMembersViewModel>() private val membersListAdapter by lazy { @@ -41,7 +45,8 @@ class ManageMembersDialogFragment : findNavController().navigateSafe( ManageMembersDialogFragmentDirections.toUserDialogFragment(it) ) - } + }, + isChangeAccessLevelAvailable = args.type != CircleRoomTypeArg.Circle ) } diff --git a/core/src/main/java/org/futo/circles/core/feature/room/manage_members/list/MemberViewHolder.kt b/core/src/main/java/org/futo/circles/core/feature/room/manage_members/list/MemberViewHolder.kt index e4f1fe443e1bd5393edb049b2b1d5334ffda0501..506cf68f3182b0753e87f2317bfb8c0db1294d74 100644 --- a/core/src/main/java/org/futo/circles/core/feature/room/manage_members/list/MemberViewHolder.kt +++ b/core/src/main/java/org/futo/circles/core/feature/room/manage_members/list/MemberViewHolder.kt @@ -32,7 +32,8 @@ class MemberViewHolder( parent: ViewGroup, private val onOpenUserClicked: (Int) -> Unit, private val onToggleClicked: (Int) -> Unit, - private val manageMembersListener: ManageMembersOptionsListener + private val manageMembersListener: ManageMembersOptionsListener, + private val isChangeAccessLevelAvailable: Boolean ) : ManageMembersViewHolder(inflate(parent, ListItemMemberBinding::inflate)) { private companion object : ViewBindingHolder @@ -58,7 +59,7 @@ class MemberViewHolder( with(optionsView) { setListener(manageMembersListener) setIsVisible(data.isOptionsOpened) - setData(data.id, data.powerLevelsContent) + setData(data.id, data.powerLevelsContent, isChangeAccessLevelAvailable) } } else { ivOptionsArrow.gone() diff --git a/core/src/main/java/org/futo/circles/core/feature/room/manage_members/list/MembersListAdapter.kt b/core/src/main/java/org/futo/circles/core/feature/room/manage_members/list/MembersListAdapter.kt index 4241e6132c1f1688e7c17da929d074e2610b68dc..ea98a64df2e5cc15f156672221f0811a6f4360c6 100644 --- a/core/src/main/java/org/futo/circles/core/feature/room/manage_members/list/MembersListAdapter.kt +++ b/core/src/main/java/org/futo/circles/core/feature/room/manage_members/list/MembersListAdapter.kt @@ -15,6 +15,7 @@ class GroupMembersListAdapter( private val manageMembersListener: ManageMembersOptionsListener, private val onToggleOptions: (String) -> Unit, private val onOpenUserPage: (String) -> Unit, + private val isChangeAccessLevelAvailable: Boolean ) : BaseRvAdapter<ManageMembersListItem, ManageMembersViewHolder>( DefaultIdEntityCallback() ) { @@ -33,7 +34,8 @@ class GroupMembersListAdapter( parent = parent, onToggleClicked = { position -> onToggleOptions(getItem(position).id) }, onOpenUserClicked = { position -> onOpenUserPage(getItem(position).id) }, - manageMembersListener = manageMembersListener + manageMembersListener = manageMembersListener, + isChangeAccessLevelAvailable = isChangeAccessLevelAvailable ) ManageGroupMembersViewTypes.Invited -> InvitedMemberViewHolder( diff --git a/core/src/main/java/org/futo/circles/core/feature/room/update/UpdateRoomDialogFragment.kt b/core/src/main/java/org/futo/circles/core/feature/room/update/UpdateRoomDialogFragment.kt index 5c3dffc59e3f1babfd9721a861f2b7379023d7f6..bd13948521e7f2a93e26f7574cc344df42c8eace 100644 --- a/core/src/main/java/org/futo/circles/core/feature/room/update/UpdateRoomDialogFragment.kt +++ b/core/src/main/java/org/futo/circles/core/feature/room/update/UpdateRoomDialogFragment.kt @@ -93,7 +93,9 @@ class UpdateRoomDialogFragment : ) startLoading(btnSave) } + tvRoleHeader.setIsVisible(!isCircle) spUserRole.apply { + setIsVisible(!isCircle) adapter = circleTypeAdapter onItemSelectedListener = object : OnItemSelectedListener { override fun onItemSelected( diff --git a/core/src/main/java/org/futo/circles/core/view/ManageMembersOptionsView.kt b/core/src/main/java/org/futo/circles/core/view/ManageMembersOptionsView.kt index 82864119761e79edb61129b75f928e85613aee6e..8b79ea0ad222b94686df86d417186ef7d7f2f199 100644 --- a/core/src/main/java/org/futo/circles/core/view/ManageMembersOptionsView.kt +++ b/core/src/main/java/org/futo/circles/core/view/ManageMembersOptionsView.kt @@ -45,12 +45,17 @@ class ManageMembersOptionsView( listener = callback } - fun setData(userId: String, powerLevelsContent: PowerLevelsContent) { + fun setData( + userId: String, + powerLevelsContent: PowerLevelsContent, + isAccessLevelAvailable: Boolean + ) { this.userId = userId this.powerLevelsContent = powerLevelsContent with(binding) { btnChangeAccessLevel.setIsVisible( powerLevelsContent.isCurrentUserAbleToChangeLevelFor(userId) + && isAccessLevelAvailable ) btnRemove.setIsVisible(powerLevelsContent.isCurrentUserAbleToKick()) btnBan.setIsVisible(powerLevelsContent.isCurrentUserAbleToBan())