mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2025-02-18 21:10:02 +03:00
Merge pull request #4001 from vector-im/feature/bca/spaces_fix_invite_private
Change default power to invite in private space + setting
This commit is contained in:
commit
bb459a6e5e
13 changed files with 131 additions and 32 deletions
1
changelog.d/3951.bugfix
Normal file
1
changelog.d/3951.bugfix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
"Non-Admin" user able to invite others to Private Space (by default)
|
|
@ -33,6 +33,7 @@ import org.matrix.android.sdk.api.session.room.model.RoomSummary
|
||||||
import org.matrix.android.sdk.api.session.room.model.SpaceChildInfo
|
import org.matrix.android.sdk.api.session.room.model.SpaceChildInfo
|
||||||
import org.matrix.android.sdk.api.session.room.model.create.CreateRoomPreset
|
import org.matrix.android.sdk.api.session.room.model.create.CreateRoomPreset
|
||||||
import org.matrix.android.sdk.api.session.room.powerlevels.PowerLevelsHelper
|
import org.matrix.android.sdk.api.session.room.powerlevels.PowerLevelsHelper
|
||||||
|
import org.matrix.android.sdk.api.session.room.powerlevels.Role
|
||||||
import org.matrix.android.sdk.api.session.space.CreateSpaceParams
|
import org.matrix.android.sdk.api.session.space.CreateSpaceParams
|
||||||
import org.matrix.android.sdk.api.session.space.JoinSpaceResult
|
import org.matrix.android.sdk.api.session.space.JoinSpaceResult
|
||||||
import org.matrix.android.sdk.api.session.space.Space
|
import org.matrix.android.sdk.api.session.space.Space
|
||||||
|
@ -77,7 +78,7 @@ internal class DefaultSpaceService @Inject constructor(
|
||||||
if (isPublic) {
|
if (isPublic) {
|
||||||
this.roomAliasName = roomAliasLocalPart
|
this.roomAliasName = roomAliasLocalPart
|
||||||
this.powerLevelContentOverride = (powerLevelContentOverride ?: PowerLevelsContent()).copy(
|
this.powerLevelContentOverride = (powerLevelContentOverride ?: PowerLevelsContent()).copy(
|
||||||
invite = 0
|
invite = if (isPublic) Role.Default.value else Role.Moderator.value
|
||||||
)
|
)
|
||||||
this.preset = CreateRoomPreset.PRESET_PUBLIC_CHAT
|
this.preset = CreateRoomPreset.PRESET_PUBLIC_CHAT
|
||||||
this.historyVisibility = RoomHistoryVisibility.WORLD_READABLE
|
this.historyVisibility = RoomHistoryVisibility.WORLD_READABLE
|
||||||
|
|
|
@ -23,9 +23,12 @@ import org.matrix.android.sdk.api.session.events.model.EventType
|
||||||
/**
|
/**
|
||||||
* Change on each permission has an effect on the power level event. Try to sort the effect by category.
|
* Change on each permission has an effect on the power level event. Try to sort the effect by category.
|
||||||
*/
|
*/
|
||||||
sealed class EditablePermission(@StringRes val labelResId: Int) {
|
sealed class EditablePermission(@StringRes val labelResId: Int, @StringRes val spaceLabelResId: Int = labelResId) {
|
||||||
// Updates `content.events.[eventType]`
|
// Updates `content.events.[eventType]`
|
||||||
open class EventTypeEditablePermission(val eventType: String, @StringRes labelResId: Int) : EditablePermission(labelResId)
|
open class EventTypeEditablePermission(val eventType: String,
|
||||||
|
@StringRes labelResId: Int,
|
||||||
|
@StringRes spaceLabelResId: Int = labelResId
|
||||||
|
) : EditablePermission(labelResId, spaceLabelResId)
|
||||||
|
|
||||||
class ModifyWidgets : EventTypeEditablePermission(
|
class ModifyWidgets : EventTypeEditablePermission(
|
||||||
// Note: Element Web still use legacy value
|
// Note: Element Web still use legacy value
|
||||||
|
@ -35,17 +38,20 @@ sealed class EditablePermission(@StringRes val labelResId: Int) {
|
||||||
|
|
||||||
class ChangeRoomAvatar : EventTypeEditablePermission(
|
class ChangeRoomAvatar : EventTypeEditablePermission(
|
||||||
EventType.STATE_ROOM_AVATAR,
|
EventType.STATE_ROOM_AVATAR,
|
||||||
R.string.room_permissions_change_room_avatar
|
R.string.room_permissions_change_room_avatar,
|
||||||
|
R.string.room_permissions_change_space_avatar
|
||||||
)
|
)
|
||||||
|
|
||||||
class ChangeMainAddressForTheRoom : EventTypeEditablePermission(
|
class ChangeMainAddressForTheRoom : EventTypeEditablePermission(
|
||||||
EventType.STATE_ROOM_CANONICAL_ALIAS,
|
EventType.STATE_ROOM_CANONICAL_ALIAS,
|
||||||
R.string.room_permissions_change_main_address_for_the_room
|
R.string.room_permissions_change_main_address_for_the_room,
|
||||||
|
R.string.room_permissions_change_main_address_for_the_space
|
||||||
)
|
)
|
||||||
|
|
||||||
class EnableRoomEncryption : EventTypeEditablePermission(
|
class EnableRoomEncryption : EventTypeEditablePermission(
|
||||||
EventType.STATE_ROOM_ENCRYPTION,
|
EventType.STATE_ROOM_ENCRYPTION,
|
||||||
R.string.room_permissions_enable_room_encryption
|
R.string.room_permissions_enable_room_encryption,
|
||||||
|
R.string.room_permissions_enable_space_encryption
|
||||||
)
|
)
|
||||||
|
|
||||||
class ChangeHistoryVisibility : EventTypeEditablePermission(
|
class ChangeHistoryVisibility : EventTypeEditablePermission(
|
||||||
|
@ -55,7 +61,8 @@ sealed class EditablePermission(@StringRes val labelResId: Int) {
|
||||||
|
|
||||||
class ChangeRoomName : EventTypeEditablePermission(
|
class ChangeRoomName : EventTypeEditablePermission(
|
||||||
EventType.STATE_ROOM_NAME,
|
EventType.STATE_ROOM_NAME,
|
||||||
R.string.room_permissions_change_room_name
|
R.string.room_permissions_change_room_name,
|
||||||
|
R.string.room_permissions_change_space_name
|
||||||
)
|
)
|
||||||
|
|
||||||
class ChangePermissions : EventTypeEditablePermission(
|
class ChangePermissions : EventTypeEditablePermission(
|
||||||
|
@ -70,7 +77,8 @@ sealed class EditablePermission(@StringRes val labelResId: Int) {
|
||||||
|
|
||||||
class UpgradeTheRoom : EventTypeEditablePermission(
|
class UpgradeTheRoom : EventTypeEditablePermission(
|
||||||
EventType.STATE_ROOM_TOMBSTONE,
|
EventType.STATE_ROOM_TOMBSTONE,
|
||||||
R.string.room_permissions_upgrade_the_room
|
R.string.room_permissions_upgrade_the_room,
|
||||||
|
R.string.room_permissions_upgrade_the_space
|
||||||
)
|
)
|
||||||
|
|
||||||
class ChangeTopic : EventTypeEditablePermission(
|
class ChangeTopic : EventTypeEditablePermission(
|
||||||
|
|
|
@ -26,6 +26,7 @@ import im.vector.app.core.resources.StringProvider
|
||||||
import im.vector.app.features.discovery.settingsInfoItem
|
import im.vector.app.features.discovery.settingsInfoItem
|
||||||
import im.vector.app.features.form.formAdvancedToggleItem
|
import im.vector.app.features.form.formAdvancedToggleItem
|
||||||
import org.matrix.android.sdk.api.session.room.model.PowerLevelsContent
|
import org.matrix.android.sdk.api.session.room.model.PowerLevelsContent
|
||||||
|
import org.matrix.android.sdk.api.session.room.model.RoomType
|
||||||
import org.matrix.android.sdk.api.session.room.model.banOrDefault
|
import org.matrix.android.sdk.api.session.room.model.banOrDefault
|
||||||
import org.matrix.android.sdk.api.session.room.model.eventsDefaultOrDefault
|
import org.matrix.android.sdk.api.session.room.model.eventsDefaultOrDefault
|
||||||
import org.matrix.android.sdk.api.session.room.model.inviteOrDefault
|
import org.matrix.android.sdk.api.session.room.model.inviteOrDefault
|
||||||
|
@ -57,6 +58,13 @@ class RoomPermissionsController @Inject constructor(
|
||||||
EditablePermission.ChangeTopic()
|
EditablePermission.ChangeTopic()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
private val usefulEditablePermissionsForSpace = listOf(
|
||||||
|
EditablePermission.ChangeRoomAvatar(),
|
||||||
|
EditablePermission.ChangeRoomName(),
|
||||||
|
EditablePermission.ChangeTopic(),
|
||||||
|
EditablePermission.InviteUsers()
|
||||||
|
)
|
||||||
|
|
||||||
private val advancedEditablePermissions = listOf(
|
private val advancedEditablePermissions = listOf(
|
||||||
EditablePermission.ChangeMainAddressForTheRoom(),
|
EditablePermission.ChangeMainAddressForTheRoom(),
|
||||||
|
|
||||||
|
@ -79,6 +87,27 @@ class RoomPermissionsController @Inject constructor(
|
||||||
EditablePermission.UpgradeTheRoom()
|
EditablePermission.UpgradeTheRoom()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
private val advancedEditablePermissionsForSpace = listOf(
|
||||||
|
EditablePermission.ChangeMainAddressForTheRoom(),
|
||||||
|
|
||||||
|
EditablePermission.DefaultRole(),
|
||||||
|
EditablePermission.KickUsers(),
|
||||||
|
EditablePermission.BanUsers(),
|
||||||
|
|
||||||
|
EditablePermission.SendMessages(),
|
||||||
|
|
||||||
|
EditablePermission.RemoveMessagesSentByOthers(),
|
||||||
|
EditablePermission.NotifyEveryone(),
|
||||||
|
|
||||||
|
EditablePermission.ChangeSettings(),
|
||||||
|
// EditablePermission.ModifyWidgets(),
|
||||||
|
EditablePermission.ChangeHistoryVisibility(),
|
||||||
|
EditablePermission.ChangePermissions(),
|
||||||
|
EditablePermission.SendRoomServerAclEvents(),
|
||||||
|
// EditablePermission.EnableRoomEncryption(),
|
||||||
|
EditablePermission.UpgradeTheRoom()
|
||||||
|
)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
setData(null)
|
setData(null)
|
||||||
}
|
}
|
||||||
|
@ -103,13 +132,24 @@ class RoomPermissionsController @Inject constructor(
|
||||||
private fun buildPermissions(data: RoomPermissionsViewState, content: PowerLevelsContent) {
|
private fun buildPermissions(data: RoomPermissionsViewState, content: PowerLevelsContent) {
|
||||||
val host = this
|
val host = this
|
||||||
val editable = data.actionPermissions.canChangePowerLevels
|
val editable = data.actionPermissions.canChangePowerLevels
|
||||||
|
val isSpace = data.roomSummary.invoke()?.roomType == RoomType.SPACE
|
||||||
|
|
||||||
settingsInfoItem {
|
settingsInfoItem {
|
||||||
id("notice")
|
id("notice")
|
||||||
helperText(host.stringProvider.getString(if (editable) R.string.room_permissions_notice else R.string.room_permissions_notice_read_only))
|
helperText(host.stringProvider.getString(
|
||||||
|
if (editable) {
|
||||||
|
if (isSpace) R.string.space_permissions_notice else R.string.room_permissions_notice
|
||||||
|
} else {
|
||||||
|
if (isSpace) R.string.space_permissions_notice_read_only else R.string.room_permissions_notice_read_only
|
||||||
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Useful permissions
|
// Useful permissions
|
||||||
usefulEditablePermissions.forEach { buildPermission(it, content, editable) }
|
if (isSpace) {
|
||||||
|
usefulEditablePermissionsForSpace.forEach { buildPermission(it, content, editable, true) }
|
||||||
|
} else {
|
||||||
|
usefulEditablePermissions.forEach { buildPermission(it, content, editable, false) }
|
||||||
|
}
|
||||||
|
|
||||||
// Toggle
|
// Toggle
|
||||||
formAdvancedToggleItem {
|
formAdvancedToggleItem {
|
||||||
|
@ -121,15 +161,24 @@ class RoomPermissionsController @Inject constructor(
|
||||||
|
|
||||||
// Advanced permissions
|
// Advanced permissions
|
||||||
if (data.showAdvancedPermissions) {
|
if (data.showAdvancedPermissions) {
|
||||||
advancedEditablePermissions.forEach { buildPermission(it, content, editable) }
|
if (isSpace) {
|
||||||
|
advancedEditablePermissionsForSpace.forEach { buildPermission(it, content, editable, true) }
|
||||||
|
} else {
|
||||||
|
advancedEditablePermissions.forEach { buildPermission(it, content, editable, false) }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun buildPermission(editablePermission: EditablePermission, content: PowerLevelsContent, editable: Boolean) {
|
private fun buildPermission(editablePermission: EditablePermission,
|
||||||
|
content: PowerLevelsContent,
|
||||||
|
editable: Boolean,
|
||||||
|
isSpace: Boolean) {
|
||||||
val currentRole = getCurrentRole(editablePermission, content)
|
val currentRole = getCurrentRole(editablePermission, content)
|
||||||
buildProfileAction(
|
buildProfileAction(
|
||||||
id = editablePermission.labelResId.toString(),
|
id = editablePermission.labelResId.toString(),
|
||||||
title = stringProvider.getString(editablePermission.labelResId),
|
title = stringProvider.getString(
|
||||||
|
if (isSpace) editablePermission.spaceLabelResId else editablePermission.labelResId
|
||||||
|
),
|
||||||
subtitle = roleFormatter.format(currentRole),
|
subtitle = roleFormatter.format(currentRole),
|
||||||
divider = true,
|
divider = true,
|
||||||
editable = editable,
|
editable = editable,
|
||||||
|
|
|
@ -35,6 +35,8 @@ import org.matrix.android.sdk.api.session.room.model.RoomJoinRulesAllowEntry
|
||||||
import org.matrix.android.sdk.api.session.room.model.create.CreateRoomParams
|
import org.matrix.android.sdk.api.session.room.model.create.CreateRoomParams
|
||||||
import org.matrix.android.sdk.api.session.room.model.create.CreateRoomPreset
|
import org.matrix.android.sdk.api.session.room.model.create.CreateRoomPreset
|
||||||
import org.matrix.android.sdk.api.session.room.model.create.RestrictedRoomPreset
|
import org.matrix.android.sdk.api.session.room.model.create.RestrictedRoomPreset
|
||||||
|
|
||||||
|
import org.matrix.android.sdk.api.session.room.powerlevels.Role
|
||||||
import org.matrix.android.sdk.api.session.space.CreateSpaceParams
|
import org.matrix.android.sdk.api.session.space.CreateSpaceParams
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
@ -73,7 +75,7 @@ class CreateSpaceViewModelTask @Inject constructor(
|
||||||
if (params.isPublic) {
|
if (params.isPublic) {
|
||||||
this.roomAliasName = params.spaceAlias
|
this.roomAliasName = params.spaceAlias
|
||||||
this.powerLevelContentOverride = (powerLevelContentOverride ?: PowerLevelsContent()).copy(
|
this.powerLevelContentOverride = (powerLevelContentOverride ?: PowerLevelsContent()).copy(
|
||||||
invite = 0
|
invite = Role.Default.value
|
||||||
)
|
)
|
||||||
this.preset = CreateRoomPreset.PRESET_PUBLIC_CHAT
|
this.preset = CreateRoomPreset.PRESET_PUBLIC_CHAT
|
||||||
this.historyVisibility = RoomHistoryVisibility.WORLD_READABLE
|
this.historyVisibility = RoomHistoryVisibility.WORLD_READABLE
|
||||||
|
@ -86,6 +88,9 @@ class CreateSpaceViewModelTask @Inject constructor(
|
||||||
ThreePid.Email(it)
|
ThreePid.Email(it)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
this.powerLevelContentOverride = (powerLevelContentOverride ?: PowerLevelsContent()).copy(
|
||||||
|
invite = Role.Moderator.value
|
||||||
|
)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} catch (failure: Throwable) {
|
} catch (failure: Throwable) {
|
||||||
|
|
|
@ -20,12 +20,12 @@ import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
import com.google.android.material.appbar.MaterialToolbar
|
|
||||||
import androidx.core.view.isGone
|
import androidx.core.view.isGone
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import com.airbnb.mvrx.MvRx
|
import com.airbnb.mvrx.MvRx
|
||||||
import com.airbnb.mvrx.viewModel
|
import com.airbnb.mvrx.viewModel
|
||||||
import com.airbnb.mvrx.withState
|
import com.airbnb.mvrx.withState
|
||||||
|
import com.google.android.material.appbar.MaterialToolbar
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.di.ScreenComponent
|
import im.vector.app.core.di.ScreenComponent
|
||||||
import im.vector.app.core.extensions.addFragmentToBackstack
|
import im.vector.app.core.extensions.addFragmentToBackstack
|
||||||
|
@ -40,6 +40,7 @@ import im.vector.app.features.roomdirectory.createroom.CreateRoomArgs
|
||||||
import im.vector.app.features.roomdirectory.createroom.CreateRoomFragment
|
import im.vector.app.features.roomdirectory.createroom.CreateRoomFragment
|
||||||
import im.vector.app.features.roomprofile.RoomProfileArgs
|
import im.vector.app.features.roomprofile.RoomProfileArgs
|
||||||
import im.vector.app.features.roomprofile.alias.RoomAliasFragment
|
import im.vector.app.features.roomprofile.alias.RoomAliasFragment
|
||||||
|
import im.vector.app.features.roomprofile.permissions.RoomPermissionsFragment
|
||||||
import kotlinx.parcelize.Parcelize
|
import kotlinx.parcelize.Parcelize
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
@ -165,6 +166,14 @@ class SpaceManageActivity : VectorBaseActivity<ActivitySimpleLoadingBinding>(),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
SpaceManagedSharedViewEvents.NavigateToPermissionSettings -> {
|
||||||
|
args?.spaceId?.let { spaceId ->
|
||||||
|
addFragmentToBackstack(
|
||||||
|
R.id.simpleFragmentContainer, RoomPermissionsFragment::class.java,
|
||||||
|
RoomProfileArgs(spaceId)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,6 +57,7 @@ class SpaceManageSharedViewModel @AssistedInject constructor(
|
||||||
SpaceManagedSharedAction.CreateRoom -> _viewEvents.post(SpaceManagedSharedViewEvents.NavigateToCreateRoom)
|
SpaceManagedSharedAction.CreateRoom -> _viewEvents.post(SpaceManagedSharedViewEvents.NavigateToCreateRoom)
|
||||||
SpaceManagedSharedAction.ManageRooms -> _viewEvents.post(SpaceManagedSharedViewEvents.NavigateToManageRooms)
|
SpaceManagedSharedAction.ManageRooms -> _viewEvents.post(SpaceManagedSharedViewEvents.NavigateToManageRooms)
|
||||||
SpaceManagedSharedAction.OpenSpaceAliasesSettings -> _viewEvents.post(SpaceManagedSharedViewEvents.NavigateToAliasSettings)
|
SpaceManagedSharedAction.OpenSpaceAliasesSettings -> _viewEvents.post(SpaceManagedSharedViewEvents.NavigateToAliasSettings)
|
||||||
|
SpaceManagedSharedAction.OpenSpacePermissionSettings -> _viewEvents.post(SpaceManagedSharedViewEvents.NavigateToPermissionSettings)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,4 +25,5 @@ sealed class SpaceManagedSharedAction : VectorViewModelAction {
|
||||||
object CreateRoom : SpaceManagedSharedAction()
|
object CreateRoom : SpaceManagedSharedAction()
|
||||||
object ManageRooms : SpaceManagedSharedAction()
|
object ManageRooms : SpaceManagedSharedAction()
|
||||||
object OpenSpaceAliasesSettings : SpaceManagedSharedAction()
|
object OpenSpaceAliasesSettings : SpaceManagedSharedAction()
|
||||||
|
object OpenSpacePermissionSettings : SpaceManagedSharedAction()
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,4 +25,5 @@ sealed class SpaceManagedSharedViewEvents : VectorViewEvents {
|
||||||
object NavigateToCreateRoom : SpaceManagedSharedViewEvents()
|
object NavigateToCreateRoom : SpaceManagedSharedViewEvents()
|
||||||
object NavigateToManageRooms : SpaceManagedSharedViewEvents()
|
object NavigateToManageRooms : SpaceManagedSharedViewEvents()
|
||||||
object NavigateToAliasSettings : SpaceManagedSharedViewEvents()
|
object NavigateToAliasSettings : SpaceManagedSharedViewEvents()
|
||||||
|
object NavigateToPermissionSettings : SpaceManagedSharedViewEvents()
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,6 +53,7 @@ class SpaceSettingsController @Inject constructor(
|
||||||
fun onManageRooms()
|
fun onManageRooms()
|
||||||
fun setIsPublic(public: Boolean)
|
fun setIsPublic(public: Boolean)
|
||||||
fun onRoomAliasesClicked()
|
fun onRoomAliasesClicked()
|
||||||
|
fun onRoomPermissionsClicked()
|
||||||
}
|
}
|
||||||
|
|
||||||
var callback: Callback? = null
|
var callback: Callback? = null
|
||||||
|
@ -134,7 +135,7 @@ class SpaceSettingsController @Inject constructor(
|
||||||
id = "manage_rooms",
|
id = "manage_rooms",
|
||||||
title = stringProvider.getString(R.string.space_settings_manage_rooms),
|
title = stringProvider.getString(R.string.space_settings_manage_rooms),
|
||||||
// subtitle = data.getJoinRuleWording(stringProvider),
|
// subtitle = data.getJoinRuleWording(stringProvider),
|
||||||
divider = vectorPreferences.developerMode() || isPublic,
|
divider = true,
|
||||||
editable = data.actionPermissions.canAddChildren,
|
editable = data.actionPermissions.canAddChildren,
|
||||||
action = {
|
action = {
|
||||||
if (data.actionPermissions.canAddChildren) callback?.onManageRooms()
|
if (data.actionPermissions.canAddChildren) callback?.onManageRooms()
|
||||||
|
@ -146,12 +147,21 @@ class SpaceSettingsController @Inject constructor(
|
||||||
id = "alias",
|
id = "alias",
|
||||||
title = stringProvider.getString(R.string.space_settings_alias_title),
|
title = stringProvider.getString(R.string.space_settings_alias_title),
|
||||||
subtitle = stringProvider.getString(R.string.space_settings_alias_subtitle),
|
subtitle = stringProvider.getString(R.string.space_settings_alias_subtitle),
|
||||||
divider = vectorPreferences.developerMode(),
|
divider = true,
|
||||||
editable = true,
|
editable = true,
|
||||||
action = { callback?.onRoomAliasesClicked() }
|
action = { callback?.onRoomAliasesClicked() }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
buildProfileAction(
|
||||||
|
id = "permissions",
|
||||||
|
title = stringProvider.getString(R.string.space_settings_permissions_title),
|
||||||
|
subtitle = stringProvider.getString(R.string.space_settings_permissions_subtitle),
|
||||||
|
divider = vectorPreferences.developerMode(),
|
||||||
|
editable = true,
|
||||||
|
action = { callback?.onRoomPermissionsClicked() }
|
||||||
|
)
|
||||||
|
|
||||||
if (vectorPreferences.developerMode()) {
|
if (vectorPreferences.developerMode()) {
|
||||||
buildProfileAction(
|
buildProfileAction(
|
||||||
id = "dev_tools",
|
id = "dev_tools",
|
||||||
|
|
|
@ -237,6 +237,10 @@ class SpaceSettingsFragment @Inject constructor(
|
||||||
sharedViewModel.handle(SpaceManagedSharedAction.OpenSpaceAliasesSettings)
|
sharedViewModel.handle(SpaceManagedSharedAction.OpenSpaceAliasesSettings)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onRoomPermissionsClicked() {
|
||||||
|
sharedViewModel.handle(SpaceManagedSharedAction.OpenSpacePermissionSettings)
|
||||||
|
}
|
||||||
|
|
||||||
override fun onImageReady(uri: Uri?) {
|
override fun onImageReady(uri: Uri?) {
|
||||||
uri ?: return
|
uri ?: return
|
||||||
viewModel.handle(
|
viewModel.handle(
|
||||||
|
|
|
@ -974,11 +974,15 @@
|
||||||
|
|
||||||
<!-- Room Permissions -->
|
<!-- Room Permissions -->
|
||||||
<string name="room_settings_permissions_title">Room permissions</string>
|
<string name="room_settings_permissions_title">Room permissions</string>
|
||||||
|
<string name="space_settings_permissions_title">Space permissions</string>
|
||||||
<string name="room_settings_permissions_subtitle">View and update the roles required to change various parts of the room.</string>
|
<string name="room_settings_permissions_subtitle">View and update the roles required to change various parts of the room.</string>
|
||||||
|
<string name="space_settings_permissions_subtitle">View and update the roles required to change various parts of the space.</string>
|
||||||
|
|
||||||
<string name="room_permissions_title">"Permissions"</string>
|
<string name="room_permissions_title">"Permissions"</string>
|
||||||
<string name="room_permissions_notice">"Select the roles required to change various parts of the room"</string>
|
<string name="room_permissions_notice">"Select the roles required to change various parts of the room"</string>
|
||||||
|
<string name="space_permissions_notice">"Select the roles required to change various parts of this space"</string>
|
||||||
<string name="room_permissions_notice_read_only">"You don't have permission to update the roles required to change various parts of the room"</string>
|
<string name="room_permissions_notice_read_only">"You don't have permission to update the roles required to change various parts of the room"</string>
|
||||||
|
<string name="space_permissions_notice_read_only">"You don't have permission to update the roles required to change various parts of this space"</string>
|
||||||
|
|
||||||
<string name="room_permissions_default_role">Default role</string>
|
<string name="room_permissions_default_role">Default role</string>
|
||||||
<string name="room_permissions_send_messages">Send messages</string>
|
<string name="room_permissions_send_messages">Send messages</string>
|
||||||
|
@ -990,13 +994,18 @@
|
||||||
<string name="room_permissions_notify_everyone">Notify everyone</string>
|
<string name="room_permissions_notify_everyone">Notify everyone</string>
|
||||||
<string name="room_permissions_modify_widgets">Modify widgets</string>
|
<string name="room_permissions_modify_widgets">Modify widgets</string>
|
||||||
<string name="room_permissions_change_room_avatar">Change room avatar</string>
|
<string name="room_permissions_change_room_avatar">Change room avatar</string>
|
||||||
|
<string name="room_permissions_change_space_avatar">Change space avatar</string>
|
||||||
<string name="room_permissions_change_main_address_for_the_room">Change main address for the room</string>
|
<string name="room_permissions_change_main_address_for_the_room">Change main address for the room</string>
|
||||||
|
<string name="room_permissions_change_main_address_for_the_space">Change main address for the space</string>
|
||||||
<string name="room_permissions_enable_room_encryption">Enable room encryption</string>
|
<string name="room_permissions_enable_room_encryption">Enable room encryption</string>
|
||||||
|
<string name="room_permissions_enable_space_encryption">Enable space encryption</string>
|
||||||
<string name="room_permissions_change_history_visibility">Change history visibility</string>
|
<string name="room_permissions_change_history_visibility">Change history visibility</string>
|
||||||
<string name="room_permissions_change_room_name">Change room name</string>
|
<string name="room_permissions_change_room_name">Change room name</string>
|
||||||
|
<string name="room_permissions_change_space_name">Change space name</string>
|
||||||
<string name="room_permissions_change_permissions">Change permissions</string>
|
<string name="room_permissions_change_permissions">Change permissions</string>
|
||||||
<string name="room_permissions_send_m_room_server_acl_events">Send m.room.server_acl events</string>
|
<string name="room_permissions_send_m_room_server_acl_events">Send m.room.server_acl events</string>
|
||||||
<string name="room_permissions_upgrade_the_room">Upgrade the room</string>
|
<string name="room_permissions_upgrade_the_room">Upgrade the room</string>
|
||||||
|
<string name="room_permissions_upgrade_the_space">Upgrade the space</string>
|
||||||
<string name="room_permissions_change_topic">Change topic</string>
|
<string name="room_permissions_change_topic">Change topic</string>
|
||||||
|
|
||||||
<!-- Room Details -->
|
<!-- Room Details -->
|
||||||
|
|
Loading…
Add table
Reference in a new issue