* Add code to help debugging the saved nav state graph: this would help us diagnose the `TransactionTooLargeException` reports we've been seeing for months.
* 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 icon shown for world_readable rooms
Followup to #6090: having discussed this in the team, we want to show a
different icon (with different text) for rooms where the history_visibility is
`world_readable` rather than `shared`.
* delint
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
* Iterate on login error: add a cancel button that fully close the flow.
tom
* Fix compilation warning: `Name contains character(s) that can cause problems on Windows: "`
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
* 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>
* Revert "Add alert to encrypted rooms with visible history (Android). (#5709)"
This reverts commit d0ba02dd7e.
* fix: Restore identity state change preview and snapshot.
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 an empty state for the space screen if the user can modify its graph. It adds a new 'create room' button that allows you to open the create room screen with some preset values.
* When computing the editable spaces in `ConfigureRoomPresenter`, also set up the initial selected parent space if possible
* Use `Builder` pattern for `CreateRoomEntryPoint`
* Update screenshots
---------
Co-authored-by: ElementBot <android@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>
* Add empty state view for `HomeSpacesView`
This links to the create space flow, and has an 'explore public spaces', hidden for now.
* Make sure we display the empty view if the 'create spaces' FF is enabled
Also, remove the tab and navigate to the chats tab if the FF is disabled and the last space is left
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
The EXA side of element-hq/element-meta#2877: if the keys for a message have been forwarded by another user, indicate that in the UI via the text shown when tapping the event shield.
* Allow creating a space with `CreateRoomParameters`
* Add 'Create space' menu item in the spaces home screen. Also, imports new strings related to spaces.
* Link the 'Create space' button with the screen to create the space
* Unify room access and visibility for `ConfigureRoom`, use the updated design
* Fix `EditRoomDetails` avatar size (68dp)
* Replace `EditableAvatarView` and `UnsavedAvatar` copmonents with `AvatarPickerView`
* `AvatarDataFetcherFactory`: Make sure we use a fallback image fetcher when the URL is not an MXC one (a local one, i.e.). This removes the previous need for a separate `UnsavedAvatarView`
* Use `AvatarPickerView` in all the screens where `EditableAvatarView` was used
* Improve naming and previews
* Update strings, remove unused ones for `RoomAccessItem`
* Make `isSpace` part of the `CreateRoomConfig`
* Ensure the content fits in the screenshots for `AvatarPickerSizesPreview`
* Add `AvatarDataFetcherFactoryTest`
* Add new feature flag for creating spaces
* Fix ripple being too large for the `Pick` state
* Tweak margins and section titles a bit
* Add preview for `HomeTopBar` with the spaces case
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
* A11Y: ensure a11y focus is not lost and reset to the back button when the user start playing a pending voice message.
* A11Y: ensure a11y focus is not lost and reset to the back button when the user use the keyboard to focus the send button and press the space bar to perform a click.
* Cleanup code. This if was not necessary.
* Small rework to prepare a bugfix. No behavior / UI change.
* Ensure that the keyboard focus and accessibility focus is not lost when deleting a pending voice message.
* Update screenshots
* Improve code readability.
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>