Started cleaning up the TODOs
Fixed a couple of merge conflict issues
Fixed a bug with the state of attachments which failed to download
# Conflicts:
# SessionMessagingKit/Database/Models/Attachment.swift
Fixed an issue where the database could get suspended if the app is launched when the app is doing a background fetch
Fixed an incorrectly localized string
Fixed an issue where the author name on a message didn't have it's width constrained
Fixed a bug where the conversation message list inset wasn't getting updated properly in some cases
Tweaked some logic in the OpenGroupPoller when running from the background to try and close some of the odd cases
Consolidated the PagedDatabaseObserver updating logic into a static function (can be improved further in the future)
Added defensive coding to prevent the LinkDeviceVC from crashing when the nav controller doesn't exist
Fixed an issue where the 'Permissions' callbacks were doing UI logic on background threads
Fixed an issue where the 'reloadCurrent' load type for the PagedDatabaseObserver was incorrectly increasing the 'currentCount' of the PageInfo
Fixed an issue where loading all of the data for paged data could result in a crash when the 'loadMore' section was removed
Made a tweak to prevent some odd looking keyboard transitions when going to conversation settings
Updated the PagedDatabaseObserver to not call 'onChangeUnsorted' on the main thread (now we can generate the changeset on the background thread so there is less main thread work)
Fixed an issue where the most recently received message from the swarm could be removed from the swarm yet the app would still poll for it, resulting in the swarm always returning the oldest possible messages until the user sends a new one-to-one message
Fixed an issue where the initial scroll offset could be incorrect due to certain message types
Fixed an issue where the title view inside a conversation could jump when pushing to the conversation settings screen
Refactored a couple of ObjC functions to Swift as they were crashing (due to memory allocation?) hopefully this will fix it
Tweaked some DispatchQueue priorities to ensure PagedDatabaseObserver loading is prioritised
Updated buttons to use a standard convention for highlighted states
Updated the new conversation button to follow the new highlighted state convention
Fixed a bug where sending a quote message could result in the messages jumping incorrectly
Fixed a bug where the quote input UI wasn't styled correctly on dark themes
Fixed a minor padding issue
Fixed an issue where in-conversation search could be a bit jumpy (simplified logic greatly)
Fixed an issue where the user config message wouldn't get sent correctly
Fixed an issue where the theme preference migration wasn't working properly
Fixed a crash which could occur in some cases when updating the theme
Fixed a crash which could occur when opening the new conversation screen with a contact with no name
Fixed a minor UI glitch with the 'sessionId' separator border
Fixed a minor UI issue where long author names in quotes could cause the message bubble to stretch incorrectly
Cleaned up some no-contact UI states
Updated the Atomic queue to have a 'userInteractive' priority so it can't be delayed by lower priority queues and block the main thread
Added a toast when hitting the emoji reacts rate limit
Added the ability to delete info messages
Fixed some odd layout behaviours with the VisibleMessageCell
Fixed some layout issues with reactions
Removed some unneeded custom code
Split the date out of the VisibleMessageCell into it's own cell to clean up deletion/insertion animations
Fixed a layout issue with the Open Group
Fixed an issue where the QRCode tinting wasn't working on iOS 16
Implemented a swift version of an ObjC function
Updated the document download UI
Minor font tweaks to match settings more closely
Added profile data to the MessageRequestResponse
Fixed the broken tests
Copy tweak
Added a toast when copying the sessionId or group URL (fixes to the toast UI as well)
Fixed the new conversation screen styling
Fixed the styling of the various attachment screens
Updated the buttons on the attachment screen to behave like the input view buttons
Removed the old OWSNavigationBar and OWSNavigationController (logic was buggy and not actually needed in most cases)