The block passed into `[MXSession listenToEventsOfTypes:onEvent:]` is stored with a strong
reference in the `listenerBlock` property of `MXSessionEventListener`. The method also
returns the listener and it is then stored into the `roomTagsListenerByUserId` dictionary
on `self`. Since a strong reference to `self` is captured in the block that means the block
retains `self` (via the capture) and `self` retains the block (via `roomTagsListenerByUserId`)
so there is a memory leak.
The bug is most easily reproduced during testing #4168 which involves closing the current
and creating a new session.
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
The block passed into `[MXSession listenToEventsOfTypes:onEvent:]` is stored with a strong
reference in the `listenerBlock` property of `MXSessionEventListener`. The method also
returns the listener and it is then stored into the `roomTagsListenerByUserId` dictionary
on `self`. Since a strong reference to `self` is captured in the block that means the block
retains `self` (via the capture) and `self` retains the block (via `roomTagsListenerByUserId`)
so there is a memory leak.
The bug is most easily reproduced during testing #4168 which involves closing the current
and creating a new session.
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
- Display an exclamation mark (on a red background). In case of a multi-line message
- When a message with an error is selected, show a bottom bar with the 4 following actions: Retry - Delete - Edit - Copy
- If users press on Delete, a confirmation dialog is displayed
- When error messages occur, a general error message appears above the composer. Selecting Delete will delete all error messages. Pressing on Retry will attempt to resend error messages
- If users press on Delete, a confirmation dialog is displayed
- In room lists, decorate rooms with errored messages with the error icon. Rooms with errors should be sorted first
- Display an exclamation mark (on a red background). In case of a multi-line message
- When a message with an error is selected, show a bottom bar with the 4 following actions: Retry - Delete - Edit - Copy
- If users press on Delete, a confirmation dialog is displayed
- When error messages occur, a general error message appears above the composer. Selecting Delete will delete all error messages. Pressing on Retry will attempt to resend error messages
- If users press on Delete, a confirmation dialog is displayed
- In room lists, decorate rooms with errored messages with the error icon. Rooms with errors should be sorted first