The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
## [1.1.4] - 2023-05-30
### Added
### Changed
- Messaging UI: Users can tap any where on the conversation screen to close the keyboard.
### Fixed
## [1.1.3] - 2023-05-17
### Added
### Changed
- Core: Calling `NablaClient.setCurrentUser(userId:)` when the app starts is no longer required when `NablaClient.currentUserId` returns a non-null value.
- Core: The `SessionTokenProvider` might be called immediately after `NablaClient.initialize()` is called.
### Fixed
- Core: Improve live updates stability. Under bad network conditions, some websocket subscription would not reconnect as expected.
- Core: Fixed watchers emitting new values when the observed object don't change.
## [1.1.2] - 2023-05-10
### Added
### Changed
### Fixed
- Core: Reverted Apollo library to version `0.51.2`. Fixes cache issue preventing the loading of older conversation messages.
## [1.1.1] - 2023-04-24
### Added
### Changed
### Fixed
- Messaging core: Fix a race condition where auto replies would break websocket connection and prevent new events to be handled live.
## [1.1.0] - 2023-04-18
### Added
- Global: Added portuguese localization.
- Messaging core: Added new `lastMessage` property on `Conversation` that gives access to the whole message and not just its preview.
### Changed
### Fixed
## [1.0.0] - 2023-03-16
### Added
### Changed
- Global: Views will display an error if visible on screen when `clearCurrentUserData()` is called.
- MessagingCore: `watchConversations()`, `watchConversation(withId:)` and `watchItems(ofConversationWithId:)` will send some `UserIdNotSetError` if they are active when `clearCurrentUserData()` is called.
- MessagingUI: `NablaClient.shared.messaging.views` is NOT marked `@MainActor`.
- Scheduling: Rename `Appointment.State.upcoming` to `Appointment.State.scheduled`
### Fixed
- MessagingUI: Fixed an issue in items date grouping where some date separators where missing.
## [1.0.0-alpha34] - 2023-03-13
### Added
### Changed
- Core: `NablaTheme` is marked `@MainActor`.
- MessagingUI: Methods of `InboxDelegate` and `ConversationViewControllerDelegate` are marked `@MainActor`.
- MessagingUI: `NablaClient.shared.messaging.views` is marked `@MainActor`.
- Scheduling: Methods of `AppointmentDetailsDelegate`, `AppointmentListDelegate` and `ScheduleAppointmentDelegate` are marked `@MainActor`.
Any `@MainActor` member should only be accessed from the `MainActor`. Apple marked `UIView` and `UIViewController` as `@MainActor` so you should not have any change to make to your code. If you are not calling those methods from a `UIView`, a `UIViewController` or SwiftUI, we encourage you to visit the official documentation to update your app.
### Fixed
- Core: Fixed an issue preventing the same current user to log in after a log out.
## [1.0.0-alpha33] - 2023-03-06
### Added
- Scheduling: support for registering a payment step. See doc for details/instructions.
- Scheduling: Replace `NablaSchedulingViewFactory.presentScheduleAppointmentNavigationController(from:delegate:)` with `NablaSchedulingViewFactory.createScheduleAppointmentNavigationController(delegate:)`.
### Changed
- Core: `NablaClient.authenticate` is replaced by `NablaClient.setCurrentUser` and `NablaClient.clearCurrentUser`. `SessionTokenProvider` is set during `NablaClient.initialize`.
- Core: Moved the `SessionTokenProvider` from `Configuration` to `NablaClient.initialize` arguments. Also changed the arguments order of `NablaClient.initialize`.
- MessagingCore: Renamed `ConversationActivity.Activity` to `ConversationActivity.Content`.
- Scheduling: Removed `Location.RemoteLocation.unknown` case.
### Fixed
- Fixed typos
## [1.0.0-alpha32] - 2023-02-14
### Added
- Core: Added a new `watchEventsConnectionState` method on `NablaClient` which allows you to monitor the current state of the network connection used to receive live events.
- Messaging Core: Added a new `Response` object returned by watchers. It contains metadata about the freshness of the data returned, allowing the caller to know if the data comes from cache or is fresh and if a background refresh is in progress.
- VideoCall: Disabled screen idling during video calls.
- VideoCall: Handle and open external video call urls when specified on appointments.
### Changed
- Messaging Core: `watchConversation(withId:)` now returns a `AnyPublisher<Response<Conversation>, NablaError>`.
- Messaging Core: `watchItems(ofConversationWithId:)` now returns a `AnyPublisher<Response<PaginatedList<ConversationItem>>, NablaError>`.
- Messaging Core: `watchConversations()` now returns a `AnyPublisher<Response<PaginatedList<Conversation>>, NablaError>`.
- Messaging UI: After sending a message in a conversation, the view will automatically scroll to it.
- Messaging UI: Increased the composer default font size.
### Fixed
- Scheduling: Months are no longer capitalized when using the french locale.
- VideoCall: Prevent a scenario where the video call screen would appear after the user hangs up.
## [1.0.0-alpha31] - 2023-02-03
### Added
### Changed
### Fixed
- Scheduling: Improved the loading indicators in the new appointment flow.
- Scheduling: Fixed appointment scheduling consents not being updated when they are already present in the cache.
- VideoCall: Fixed a bug preventing video call request messages from being displayed in the chat.