Skip to content
Snippets Groups Projects
Commit 0bf3d824 authored by Taras's avatar Taras
Browse files

Disable changing access level for Circle

parent d36118f1
No related branches found
No related tags found
No related merge requests found
...@@ -84,7 +84,9 @@ class CreateRoomDialogFragment : ...@@ -84,7 +84,9 @@ class CreateRoomDialogFragment :
createRoom() createRoom()
startLoading(btnCreate) startLoading(btnCreate)
} }
tvRoleHeader.setIsVisible(!isCircle)
spUserRole.apply { spUserRole.apply {
setIsVisible(!isCircle)
adapter = circleTypeAdapter adapter = circleTypeAdapter
setSelection(AccessLevel.User.ordinal) setSelection(AccessLevel.User.ordinal)
} }
......
...@@ -5,6 +5,7 @@ import android.os.Bundle ...@@ -5,6 +5,7 @@ import android.os.Bundle
import android.view.View import android.view.View
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs
import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.DividerItemDecoration
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import org.futo.circles.core.base.fragment.BaseFullscreenDialogFragment import org.futo.circles.core.base.fragment.BaseFullscreenDialogFragment
...@@ -17,8 +18,10 @@ import org.futo.circles.core.extensions.observeResponse ...@@ -17,8 +18,10 @@ import org.futo.circles.core.extensions.observeResponse
import org.futo.circles.core.extensions.withConfirmation 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.change_role.ChangeAccessLevelListener
import org.futo.circles.core.feature.room.manage_members.list.GroupMembersListAdapter 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.BanUser
import org.futo.circles.core.model.CancelInvite 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.RemoveRoomUser
import org.futo.circles.core.model.ResendInvite import org.futo.circles.core.model.ResendInvite
import org.futo.circles.core.model.UnbanUser import org.futo.circles.core.model.UnbanUser
...@@ -30,6 +33,7 @@ class ManageMembersDialogFragment : ...@@ -30,6 +33,7 @@ class ManageMembersDialogFragment :
BaseFullscreenDialogFragment(DialogFragmentManageMembersBinding::inflate), BaseFullscreenDialogFragment(DialogFragmentManageMembersBinding::inflate),
ManageMembersOptionsListener, ChangeAccessLevelListener { ManageMembersOptionsListener, ChangeAccessLevelListener {
private val args: ManageMembersDialogFragmentArgs by navArgs()
private val viewModel by viewModels<ManageMembersViewModel>() private val viewModel by viewModels<ManageMembersViewModel>()
private val membersListAdapter by lazy { private val membersListAdapter by lazy {
...@@ -41,7 +45,8 @@ class ManageMembersDialogFragment : ...@@ -41,7 +45,8 @@ class ManageMembersDialogFragment :
findNavController().navigateSafe( findNavController().navigateSafe(
ManageMembersDialogFragmentDirections.toUserDialogFragment(it) ManageMembersDialogFragmentDirections.toUserDialogFragment(it)
) )
} },
isChangeAccessLevelAvailable = args.type != CircleRoomTypeArg.Circle
) )
} }
......
...@@ -32,7 +32,8 @@ class MemberViewHolder( ...@@ -32,7 +32,8 @@ class MemberViewHolder(
parent: ViewGroup, parent: ViewGroup,
private val onOpenUserClicked: (Int) -> Unit, private val onOpenUserClicked: (Int) -> Unit,
private val onToggleClicked: (Int) -> Unit, private val onToggleClicked: (Int) -> Unit,
private val manageMembersListener: ManageMembersOptionsListener private val manageMembersListener: ManageMembersOptionsListener,
private val isChangeAccessLevelAvailable: Boolean
) : ManageMembersViewHolder(inflate(parent, ListItemMemberBinding::inflate)) { ) : ManageMembersViewHolder(inflate(parent, ListItemMemberBinding::inflate)) {
private companion object : ViewBindingHolder private companion object : ViewBindingHolder
...@@ -58,7 +59,7 @@ class MemberViewHolder( ...@@ -58,7 +59,7 @@ class MemberViewHolder(
with(optionsView) { with(optionsView) {
setListener(manageMembersListener) setListener(manageMembersListener)
setIsVisible(data.isOptionsOpened) setIsVisible(data.isOptionsOpened)
setData(data.id, data.powerLevelsContent) setData(data.id, data.powerLevelsContent, isChangeAccessLevelAvailable)
} }
} else { } else {
ivOptionsArrow.gone() ivOptionsArrow.gone()
......
...@@ -15,6 +15,7 @@ class GroupMembersListAdapter( ...@@ -15,6 +15,7 @@ class GroupMembersListAdapter(
private val manageMembersListener: ManageMembersOptionsListener, private val manageMembersListener: ManageMembersOptionsListener,
private val onToggleOptions: (String) -> Unit, private val onToggleOptions: (String) -> Unit,
private val onOpenUserPage: (String) -> Unit, private val onOpenUserPage: (String) -> Unit,
private val isChangeAccessLevelAvailable: Boolean
) : BaseRvAdapter<ManageMembersListItem, ManageMembersViewHolder>( ) : BaseRvAdapter<ManageMembersListItem, ManageMembersViewHolder>(
DefaultIdEntityCallback() DefaultIdEntityCallback()
) { ) {
...@@ -33,7 +34,8 @@ class GroupMembersListAdapter( ...@@ -33,7 +34,8 @@ class GroupMembersListAdapter(
parent = parent, parent = parent,
onToggleClicked = { position -> onToggleOptions(getItem(position).id) }, onToggleClicked = { position -> onToggleOptions(getItem(position).id) },
onOpenUserClicked = { position -> onOpenUserPage(getItem(position).id) }, onOpenUserClicked = { position -> onOpenUserPage(getItem(position).id) },
manageMembersListener = manageMembersListener manageMembersListener = manageMembersListener,
isChangeAccessLevelAvailable = isChangeAccessLevelAvailable
) )
ManageGroupMembersViewTypes.Invited -> InvitedMemberViewHolder( ManageGroupMembersViewTypes.Invited -> InvitedMemberViewHolder(
......
...@@ -93,7 +93,9 @@ class UpdateRoomDialogFragment : ...@@ -93,7 +93,9 @@ class UpdateRoomDialogFragment :
) )
startLoading(btnSave) startLoading(btnSave)
} }
tvRoleHeader.setIsVisible(!isCircle)
spUserRole.apply { spUserRole.apply {
setIsVisible(!isCircle)
adapter = circleTypeAdapter adapter = circleTypeAdapter
onItemSelectedListener = object : OnItemSelectedListener { onItemSelectedListener = object : OnItemSelectedListener {
override fun onItemSelected( override fun onItemSelected(
......
...@@ -45,12 +45,17 @@ class ManageMembersOptionsView( ...@@ -45,12 +45,17 @@ class ManageMembersOptionsView(
listener = callback listener = callback
} }
fun setData(userId: String, powerLevelsContent: PowerLevelsContent) { fun setData(
userId: String,
powerLevelsContent: PowerLevelsContent,
isAccessLevelAvailable: Boolean
) {
this.userId = userId this.userId = userId
this.powerLevelsContent = powerLevelsContent this.powerLevelsContent = powerLevelsContent
with(binding) { with(binding) {
btnChangeAccessLevel.setIsVisible( btnChangeAccessLevel.setIsVisible(
powerLevelsContent.isCurrentUserAbleToChangeLevelFor(userId) powerLevelsContent.isCurrentUserAbleToChangeLevelFor(userId)
&& isAccessLevelAvailable
) )
btnRemove.setIsVisible(powerLevelsContent.isCurrentUserAbleToKick()) btnRemove.setIsVisible(powerLevelsContent.isCurrentUserAbleToKick())
btnBan.setIsVisible(powerLevelsContent.isCurrentUserAbleToBan()) btnBan.setIsVisible(powerLevelsContent.isCurrentUserAbleToBan())
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment