From c0e0483ce9d3b9692d6a6e4b044e32e03ae62900 Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Mon, 4 Mar 2024 18:13:51 +0200 Subject: [PATCH] Setupe access levels list --- .../room/create/CreateRoomDialogFragment.kt | 18 +++++++++++++----- .../change_role/ChangeAccessLevelDataSource.kt | 5 +---- .../org/futo/circles/core/model/AccessLevel.kt | 3 ++- .../org/futo/circles/core/model/CircleType.kt | 8 -------- 4 files changed, 16 insertions(+), 18 deletions(-) delete mode 100644 core/src/main/java/org/futo/circles/core/model/CircleType.kt 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 409d1ded3..0846b1902 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 @@ -12,6 +12,7 @@ import org.futo.circles.core.R import org.futo.circles.core.base.fragment.BaseFullscreenDialogFragment import org.futo.circles.core.base.fragment.HasLoadingState import org.futo.circles.core.databinding.DialogFragmentCreateRoomBinding +import org.futo.circles.core.extensions.getRoleNameResId import org.futo.circles.core.extensions.getText import org.futo.circles.core.extensions.observeData import org.futo.circles.core.extensions.observeResponse @@ -19,8 +20,9 @@ import org.futo.circles.core.extensions.onBackPressed import org.futo.circles.core.extensions.setIsVisible import org.futo.circles.core.feature.picker.helper.MediaPickerHelper import org.futo.circles.core.feature.select_users.SelectUsersFragment +import org.futo.circles.core.model.AccessLevel import org.futo.circles.core.model.CircleRoomTypeArg -import org.futo.circles.core.model.CircleType +import org.matrix.android.sdk.api.session.room.powerlevels.Role @AndroidEntryPoint @@ -40,12 +42,15 @@ class CreateRoomDialogFragment : } private var selectedUsersFragment: SelectUsersFragment? = null - private val circleTypeList = CircleType.entries.toTypedArray() + private val circleTypeList = AccessLevel.entries.toTypedArray() private val circleTypeAdapter by lazy { ArrayAdapter( requireContext(), R.layout.view_spinner_item, - circleTypeList.map { getString(it.nameResId) }).apply { + circleTypeList.map { + val role = Role.fromValue(it.levelValue, Role.Default.value) + getString(role.getRoleNameResId()) + }).apply { setDropDownViewResource(R.layout.view_spinner_item) } } @@ -77,7 +82,10 @@ class CreateRoomDialogFragment : createRoom() startLoading(btnCreate) } - spUserRole.adapter = circleTypeAdapter + spUserRole.apply { + adapter = circleTypeAdapter + setSelection(AccessLevel.User.ordinal) + } } } @@ -93,7 +101,7 @@ class CreateRoomDialogFragment : private fun getRoomTypeName() = getString( when (roomType) { CircleRoomTypeArg.Circle -> R.string.circle - CircleRoomTypeArg.Group -> R.string.group_name + CircleRoomTypeArg.Group -> R.string.group CircleRoomTypeArg.Photo -> R.string.gallery } ) diff --git a/core/src/main/java/org/futo/circles/core/feature/room/manage_members/change_role/ChangeAccessLevelDataSource.kt b/core/src/main/java/org/futo/circles/core/feature/room/manage_members/change_role/ChangeAccessLevelDataSource.kt index b7d17fbd5..c328ded6b 100644 --- a/core/src/main/java/org/futo/circles/core/feature/room/manage_members/change_role/ChangeAccessLevelDataSource.kt +++ b/core/src/main/java/org/futo/circles/core/feature/room/manage_members/change_role/ChangeAccessLevelDataSource.kt @@ -2,7 +2,6 @@ package org.futo.circles.core.feature.room.manage_members.change_role import androidx.lifecycle.SavedStateHandle import dagger.hilt.android.scopes.ViewModelScoped -import org.futo.circles.core.base.READ_ONLY_ROLE import org.futo.circles.core.extensions.getOrThrow import org.futo.circles.core.model.AccessLevel import org.futo.circles.core.model.AccessLevelListItem @@ -22,9 +21,7 @@ class ChangeAccessLevelDataSource @Inject constructor( Role.fromValue(it.levelValue, Role.Default.value), it.levelValue == levelValue ) - }.toMutableList().apply { - add(AccessLevelListItem(Role.Custom(READ_ONLY_ROLE), READ_ONLY_ROLE == levelValue)) - }.filter { myUserLevelValue >= it.role.value } + }.toMutableList().filter { myUserLevelValue >= it.role.value } fun isValueChanged(newValue: Int) = newValue != levelValue diff --git a/core/src/main/java/org/futo/circles/core/model/AccessLevel.kt b/core/src/main/java/org/futo/circles/core/model/AccessLevel.kt index 4482f1741..ac936f93d 100644 --- a/core/src/main/java/org/futo/circles/core/model/AccessLevel.kt +++ b/core/src/main/java/org/futo/circles/core/model/AccessLevel.kt @@ -1,7 +1,8 @@ package org.futo.circles.core.model +import org.futo.circles.core.base.READ_ONLY_ROLE import org.matrix.android.sdk.api.session.room.powerlevels.Role enum class AccessLevel(val levelValue: Int) { - Admin(Role.Admin.value), Moderator(Role.Moderator.value), User(Role.Default.value) + Admin(Role.Admin.value), Moderator(Role.Moderator.value), User(Role.Default.value), ReadOnly(READ_ONLY_ROLE) } \ No newline at end of file diff --git a/core/src/main/java/org/futo/circles/core/model/CircleType.kt b/core/src/main/java/org/futo/circles/core/model/CircleType.kt deleted file mode 100644 index 1134b7cfd..000000000 --- a/core/src/main/java/org/futo/circles/core/model/CircleType.kt +++ /dev/null @@ -1,8 +0,0 @@ -package org.futo.circles.core.model - -import org.futo.circles.core.R - -enum class CircleType(val nameResId: Int, val messageResId: Int) { - Public(R.string.public_type, R.string.public_circle_explanation), - Private(R.string.private_type, R.string.private_circle_explanation) -} \ No newline at end of file -- GitLab