* refactor: use constraints in quote view
* refactor: layouts for quotes fixed
* fix: use the current text, which may be the type of attachment instead of the quote body
* Make the unread message count 4 digits instead of 2.
99+ unread messages can be reached within an hour in some busy open
groups. 4 digits allow for much more accurate reporting.
* Improve appearance of unread counter by using rounded rectangle.
* refactor: VisibleMessageContentView.kt re-using layouts instead of instantiating every bind to fix alignment and constraint issues for splitting thumbnails and body
* refactor: constraint works for sms only records, adjust other components of the visible message content accordingly
* feat: link previews and quotes now wrap content or align according to media type
* refactor: move back to emojitextview for body
* fix: add some padding at the bottom of the quote
* fix: voice message view not rendering properly
* fix: set visibility to false for each message content view on recycle event
* fix: untrusted attachments
* fix: compile issues and small UI improvement
* refactor: Migrate home screen to data binding
* Add view binding
* Migrate ConversationView to view binding
* Migrate ConversationActivityV2 to view binding
* View model refactor
* Move more functionality to the view model
* Add ui state events flow
* Update conversation item bindings
* Update profile picture view bindings
* Replace Kotlin synthetics with view bindings
* Fix qr code fragment binding and optimize imports
* View binding refactors
* Make TextSecurePreferences an interface and add an implementation to improve testability
* Add conversation repository
* Migrate remaining TextSecurePreferences functions into the interface
* Add unit conversation unit tests
* Add unit test coverage for remaining view model functions
* feat: Enable fullscreen mode on the media gallery screen
* Move `fitsSystemWindows` attribute to root view
* Rename for clarity
* Update fullscreen flag
* Set system bars behaviour for api >= 30
* fix: remove selected session ID interactions
* fix: include thread ID in home activity's creation of user details bottom sheet
* refactor: use bundleOf builder instead of old bundle put value methods
Increase audible timeout on DefaultMessageNotifier.java, don't send in-thread notification based on last audible notification.
Create a batch message receive job to handle up to 20 chunked messages at a time per job instead of singular or open group poll amount
Remove synchronized access to recipient cache and replace with a concurrent cache that's lock free from perf tracing monitor contention