* feat: Add history sharing badges to room details view
* tests: Add snapshots for history sharing room details badges
* fix: Disable soft-wrapping in badges, use FlowRow
* tests: Add unit test for `RoomDetailsState` and history sharing badges.
* tests: Add `MatrixBadgeAtomNeutralWrappingPreview` to exceptions
* chore: Re-order `MatrixBadgeAtom` previews
* fix: Add `Immutable` annotation to `RoomHistoryVisibility`.
* fix: Correct translation for shared badge
* Update dependency org.matrix.rustcomponents:sdk-android to v26.2.5
* Fix breaking API changes:
- Add temporary imlementation for `RustClientSessionDelegate.onBackgroundTaskErrorReport`, logging unrecoverable errors in background tasks of the SDK.
- Change `TimelineEventTypeFilter` to `TimelineEventFilter`.
- Support new `LatestEventValue.RemoteInvite`.
* Update the Rust SDK to `26.2.6`
* Fix API changes: `TimelineFocus.PinnedEvents` no longer takes any arguments
* Fix test fixtures: `NotificationItem` has a `rawEvent` field now
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
When parenthesis were mismatched by having more opening parenthesis than closing ones, we could end up incorrectly making the URLSpan `end` value greater than the actual text length, causing an `IndexOutOfBoundsException`
It shouldn't be in use, since it was never properly defined:
- The `Private` values coming from the SDK are considered to be `Invite` instead.
- Remove any existing `JoinRule.Private` usages in our code.
* When the user is in a v12 room, use different UI to select the last owner when leaving
- Add `LeaveSpaceRoom.areCreatorsPrivileged` to detect when this is happening.
- Import new strings.
- Build the new UI.
- Attach it to a change member roles screen navigation.
* Don't display the `isLastOwner` UI if the user is the only joined one in the room
* Rename `LeaveSpaceState.isLastOwner` to `.needsOwnerChange`. This way, it's easier to understand the difference with the passed `LeaveSpaceRoom.isLastOwner` value
* Add a test for the new check of user not being the last joined member
* Fix paddings in `LeaveSpaceView`
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
Add a decoration to the header for encrypted rooms with `history_visibility:
{shared|public}`.
Fixes: #6070
---------
Co-authored-by: ElementBot <android@element.io>
Co-authored-by: Jorge Martín <jorgem@element.io>
* Add `SpaceService.editableSpaces` and `SpaceService.addChildToSpace`
* Add `parentSpace` to `CreateRoomConfig`
* Allow setting a parent space to a room in `ConfigureRoomPresenter`, make sure the room is added to the parent space when creating it
* `ConfigureRoomPresenter`: Load the list of possible spaces a room can be added to
* Refactor `RoomVisibilityState` to internally use `JoinRuleItem`
This gets rid of `RoomAccess` and `RoomAccessItem`, and it will allow us to map the join rule items in a cleaner way to both join rules and the UI
* Implement the UI changes:
- Display the parent space.
- Allow selecting a new one.
- Import needed strings.
* Fix existing tests
* Add `@Immutable` annotation to `SpaceRoom`, since it was detected as unstable.
Maybe because of `RoomType`?
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>