From 8793d263d45a712d0f3260cfe6faccc29133268d Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 19 Feb 2021 21:53:10 +0100 Subject: [PATCH] Add info about room version --- .../features/roomprofile/RoomProfileController.kt | 10 ++++++++++ .../features/roomprofile/RoomProfileViewModel.kt | 14 ++++++++++++++ .../features/roomprofile/RoomProfileViewState.kt | 2 ++ vector/src/main/res/values/strings.xml | 1 + 4 files changed, 27 insertions(+) diff --git a/vector/src/main/java/im/vector/app/features/roomprofile/RoomProfileController.kt b/vector/src/main/java/im/vector/app/features/roomprofile/RoomProfileController.kt index 820f6848d8..bb7d041199 100644 --- a/vector/src/main/java/im/vector/app/features/roomprofile/RoomProfileController.kt +++ b/vector/src/main/java/im/vector/app/features/roomprofile/RoomProfileController.kt @@ -209,6 +209,16 @@ class RoomProfileController @Inject constructor( editable = false, action = { callback?.onRoomIdClicked() } ) + data.roomCreateContent()?.roomVersion?.let { + buildProfileAction( + id = "roomVersion", + title = stringProvider.getString(R.string.room_settings_room_version_title), + subtitle = it, + dividerColor = dividerColor, + divider = true, + editable = false + ) + } buildProfileAction( id = "devTools", title = stringProvider.getString(R.string.dev_tools_menu_name), diff --git a/vector/src/main/java/im/vector/app/features/roomprofile/RoomProfileViewModel.kt b/vector/src/main/java/im/vector/app/features/roomprofile/RoomProfileViewModel.kt index 02a648287f..c8bb6b5b5c 100644 --- a/vector/src/main/java/im/vector/app/features/roomprofile/RoomProfileViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/roomprofile/RoomProfileViewModel.kt @@ -33,13 +33,17 @@ import im.vector.app.features.powerlevel.PowerLevelsObservableFactory import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import org.matrix.android.sdk.api.MatrixCallback +import org.matrix.android.sdk.api.query.QueryStringValue import org.matrix.android.sdk.api.session.Session import org.matrix.android.sdk.api.session.events.model.EventType +import org.matrix.android.sdk.api.session.events.model.toModel import org.matrix.android.sdk.api.session.room.members.roomMemberQueryParams import org.matrix.android.sdk.api.session.room.model.Membership +import org.matrix.android.sdk.api.session.room.model.create.RoomCreateContent import org.matrix.android.sdk.api.session.room.powerlevels.PowerLevelsHelper import org.matrix.android.sdk.api.session.room.state.isPublic import org.matrix.android.sdk.rx.RxRoom +import org.matrix.android.sdk.rx.mapOptional import org.matrix.android.sdk.rx.rx import org.matrix.android.sdk.rx.unwrap @@ -69,10 +73,20 @@ class RoomProfileViewModel @AssistedInject constructor( init { val rxRoom = room.rx() observeRoomSummary(rxRoom) + observeRoomCreateContent(rxRoom) observeBannedRoomMembers(rxRoom) observePermissions() } + private fun observeRoomCreateContent(rxRoom: RxRoom) { + rxRoom.liveStateEvent(EventType.STATE_ROOM_CREATE, QueryStringValue.NoCondition) + .mapOptional { it.content.toModel() } + .unwrap() + .execute { + copy(roomCreateContent = it) + } + } + private fun observeRoomSummary(rxRoom: RxRoom) { rxRoom.liveRoomSummary() .unwrap() diff --git a/vector/src/main/java/im/vector/app/features/roomprofile/RoomProfileViewState.kt b/vector/src/main/java/im/vector/app/features/roomprofile/RoomProfileViewState.kt index 398982ede1..bf7cd732ef 100644 --- a/vector/src/main/java/im/vector/app/features/roomprofile/RoomProfileViewState.kt +++ b/vector/src/main/java/im/vector/app/features/roomprofile/RoomProfileViewState.kt @@ -22,10 +22,12 @@ import com.airbnb.mvrx.MvRxState import com.airbnb.mvrx.Uninitialized import org.matrix.android.sdk.api.session.room.model.RoomMemberSummary import org.matrix.android.sdk.api.session.room.model.RoomSummary +import org.matrix.android.sdk.api.session.room.model.create.RoomCreateContent data class RoomProfileViewState( val roomId: String, val roomSummary: Async = Uninitialized, + val roomCreateContent: Async = Uninitialized, val bannedMembership: Async> = Uninitialized, val actionPermissions: ActionPermissions = ActionPermissions(), val isLoading: Boolean = false diff --git a/vector/src/main/res/values/strings.xml b/vector/src/main/res/values/strings.xml index a1e7b01cda..a3eade1f02 100644 --- a/vector/src/main/res/values/strings.xml +++ b/vector/src/main/res/values/strings.xml @@ -1117,6 +1117,7 @@ Advanced This room’s internal ID + Room version Addresses Labs These are experimental features that may break in unexpected ways. Use with caution.