Fixed an issue where the admin/moderator status wasn't getting stored if set before joining a community
Fixed an issue where multiple pollers for the same server could run at the same time when joining multiple rooms within the same app run (very noticeable when restoring/linking)
* Made a number of changes to try and improve background ANRs
Added some more logs to the BatchMessageReceiveJob (to make it easier to track a specific job)
Shifted the ConversationActivity adapter initialisation to run on a background thread to reduce the hang when opening a conversation
Updated the ConversationViewModel to cache the recipient and openGroup values to avoid accessing the database unnecessarily
Updated the code to just stop all current closed group pollers instead of fetching a list to stop
Updated the PN registration to be triggered in an AsyncTask
Updated the call code to unregister a couple of additional receivers
Updated the background poller so it waits for 15 mins before running and doesn't replace the existing scheduler (allows for PNs to trigger explicit background polling)
Fixed an issue where we were sending push notifications which were too large and likely to fail as a result (non-pre-offer call messages)
Fixed an issue where a failing Open Group poller could prevent the background poller from receiving and processing DMs
* Updated to a more coroutine-y convention
Added a method to remove the Group avatar
Fixed an issue where the recipient diffing on the HomeActivity wasn't working properly
Fixed an issue where the GroupAvatarDownloadJob could be scheduled even when there was already one scheduled
Added logic to avoid scheduling a GroupAvatarDownloadJob if there is already an existing one with the same parameters
Added logic to avoid trying to download an old avatar for a group if there is a new one
Added logic to prevent an old GroupAvatarDownloadJob from overriding a valid avatar with an old one
* chore: update french translations file from crowdin
* chore: update french translations libsession file from crowdin
* chore: update french non-region translations file from crowdin
* chore: update french non-region libsession translations file from crowdin
Added the ability to copy the sessionId of open group URL from the conversation menu
Added additional logging to the BatchMessageReceiveJob to make future debugging easier
Removed the OpenGroupMigrator
Updated the JobQueue logging to provide more insight
Fixed an issue where the database migrations weren't blocking which could result in failing/crashing SQL queries
Fixed an issue where the new database file wouldn't be removed if a migration error was thrown
Fixed an issue where the new database could exist in an invalid state and the app wouldn't attempt to remigrate
Fixed an incorrectly throw exception in the PassphrasePromptActivity
Updated the OpenGroupDispatcher to have a thread limit of 8 (was previously unlimited which could result in the app getting flooded with threads under certain conditions)
Updated the OpenGroupDeleteJob to do bulk deletions (instead of individual message deletions)
Updated the OpenGroupDeleteJob to catch and report failures (wasn't previously happening)
Fixed the unread indicator colours to match correct theming designs
Fixed a bug where the unread count could be incorrect when receiving UnsendRequests within the same poll
Added a couple missing theme colours
Updated the OpenGroup adding and polling logic to reduce duplicate API calls
Updated the BackgroundGroupAddJob to start a GroupAvatarDownloadJob instead of running the download itself (to appear to run faster)
Defaulted OpenGroups to use blinded auth when no server capabilities are present
Fixed an issue where the background poller could be started even though the onboarding hadn't been completed
Fixed an issue where the database could get into an invalid state if the app was restarted during onboarding
* Update build tools
* Update appcompat version
* Update dependencies
* feat: add paging into conversation recycler and queries to fetch data off-thread
* refactor: wip for updating paged results and bucketing messages / fetching enough to display
* fix: currently works for scrolling and possibly refreshing? need scroll to message and auto scroll down on insert (at bottom)
* fix: search and scrolling to X message works now
* build: increase version code and name
* fix: re-add refresh, remove the outdated comment
* refactor: lets see if 25 size pages increases performance 👀
* feat: add in some equals overrides for mms records to refresh if media has finished DLing
* feat: add scroll to bottom for new messages if we are at the end of the chat
* build: update build numbers
* fix: update AGP and fix compile errors for sdk version 31
* feat: add log for loki-avatar and loki-fs on upload types and responses
* feat: increase build number to match latest installed version
* feat: changing props and permission checks for call service
* fix: possible service exception when no call ID remote foreground service not terminated
* revert: google services version
* fix: re-add paging dependency
* feat: adding new last seen function and figuring out the last seen for recycler adapter
* build: update version names and codes for deploy
* refactor: undo the new adapter and query changes to use previous cursor logic. revert this commit to enable new paged adapter
* fix: use author's address in typist equality and hashcode for set inclusion
* refactor: refactor the select contacts activity
* refactor: refactor the select contacts activity
* build: update version code
* fix: hide all other bound views if deleted
* refactor: change voice message tint, upgrade build number
* fix: message detail showing up properly
* revert: realise copy public key is actually not allowed if open group participant
* fix: copy session ID, message detail activity support re-enabled
* build: update build version code
* build: remove version name
* build: update build code
* feat: google services version minimum compatible
* fix: selection for re-created objects not properly highlighting
* fix: foreground CENTER_INSIDE instead of just CENTER for scaletype
* build: update version code
* fix: don't show error if no error
* build: update version code
* fix: clear error messages if any on successful send
Co-authored-by: charles <charles@oxen.io>