Commit Graph

692 Commits (663cc13e6864d18c8b8fb440e26eaeb74f0909b0)

Author SHA1 Message Date
Ryan ZHAO fc4b349d36 add delay on permission chain for calls 2 weeks ago
Ryan ZHAO 3c3fbec6b4 Merge branch 'dev' into call-detailed-info 3 weeks ago
Morgan Pretty 82b315ccb1
Merge pull request #383 from mpretty-cyro/fix/poller-and-background-processing-bugs
Poller and background processing fixes
3 weeks ago
Morgan Pretty 6017a992ce Merge remote-tracking branch 'upstream/dev' into fix/poller-and-background-processing-bugs 3 weeks ago
Morgan Pretty bb6e78dc27 Merge remote-tracking branch 'upstream/dev' into fix/logging-issues-and-improvements
# Conflicts:
#	Session/Home/GlobalSearch/GlobalSearchViewController.swift
3 weeks ago
Morgan Pretty fdcdd070a1 Merge remote-tracking branch 'upstream/dev' into fix/logging-issues-and-improvements
# Conflicts:
#	SessionMessagingKit/LibSession/LibSession+SessionMessagingKit.swift
#	SessionMessagingKitTests/_TestUtilities/MockLibSessionCache.swift
3 weeks ago
Morgan Pretty b12a5282bb
Merge pull request #392 from mpretty-cyro/fix/grdb-assertion
Fix GRDB Assertion
3 weeks ago
Morgan Pretty 43952c8386
Merge pull request #377 from mpretty-cyro/feature/refactor-screen-lock
Cleaned up some of the Screen Lock behaviours
3 weeks ago
Morgan Pretty a524a265a5 Merge remote-tracking branch 'upstream/dev' into feature/refactor-screen-lock
# Conflicts:
#	Session.xcodeproj/project.pbxproj
3 weeks ago
Morgan Pretty 231a3f882a
Merge pull request #391 from mpretty-cyro/fix/dependency-access-crash
Dependency access crash fix
3 weeks ago
Morgan Pretty 88a242b39f
Merge pull request #380 from mpretty-cyro/fix/read-status-not-appearing
Fixed an issue where the read receipt wouldn't show while the conversation was open
3 weeks ago
Morgan Pretty 69c60b0090 Track current db tasks and cancel when suspending 3 weeks ago
Morgan Pretty 846aa695c2 Updated searching to use a publisher and cancel it (instead of db interrupt) 3 weeks ago
Morgan Pretty e29758e401 Updated GRDB and refactored internal Storage operations
• Updated to GRDB 7.3.0 (from 6.29.3)
• Updated the ConfigMessageReceiveJob and MessageReceiveJob to use the `writeAsync` function (instead of the blocking `write` function) so that they aren't subject to the `Storage.transactionDeadlockTimeoutSeconds`
• Refactored the `Storage.performOperation` and `Storage.performPublisherOperation` to rely on the new cancellable async/await `Task` logic that GRDB 7 supports (as apparently the other async methods don't support cancellation...)
• Cleaned up some "Sendable" related warnings
• Minor tweaks to `Log.assertOnMainThread` to make it a little more readable
3 weeks ago
Morgan Pretty e1f38f3761 Wrap the `getValue` logic in a `performMap` to ensure thread safety 3 weeks ago
Ryan ZHAO 77d31d7817 Merge branch 'dev' into call-detailed-info 4 weeks ago
Morgan Pretty 04b3a64f6b Updated LibSession to be sourced via Swift Package Manager
• Using a pre-built version of libSession as a SPM dependency for default builds
• Added a new scheme which will try to build libSession from source (update the `LIB_SESSION_SOURCE_DIR` User-Defined build setting to change the location - currently set to '${SRC_ROOT}/../LibSession-Util')
• Removed the libSession submodule
4 weeks ago
Ryan ZHAO b9f44a6998 Merge branch 'dev' into call-detailed-info 1 month ago
Ryan ZHAO ec0d950844 Merge branch 'feature/groups-rebuild' of https://github.com/mpretty-cyro/session-ios into call-detailed-info 1 month ago
Morgan Pretty 7c4249b082 Cleaned up some of the ScreenLock logic 1 month ago
Morgan Pretty 1e4072420d Merge remote-tracking branch 'upstream/dev' into fix/read-status-not-appearing 1 month ago
Morgan Pretty 3577cb9dbe Merge remote-tracking branch 'upstream/dev' into fix/poller-and-background-processing-bugs 1 month ago
Morgan Pretty 8f0aa51491 Merge remote-tracking branch 'upstream/dev' into fix/logging-issues-and-improvements 1 month ago
Morgan Pretty 14ec056e4a Reset the feature flags and added the release timestamps 1 month ago
Morgan Pretty cd919284f0 Updated the invalid config errors to include the pubkey for debugging 1 month ago
Morgan Pretty a080d67618 Fixed a couple of bugs and logging tweaks
• Refactored the remaining `SNLog` calls
• Added support for a 'customSuffix' to the log categories (similar to the 'customPrefix' it allows category name manipulation whilst keeping the existing log level settings)
• Improved logging in the PN extension
• Fixed an issue where the PN extension would end up with duplicate logs every time a new PN was received
• Fixed an issue where the PN extension would needlessly dispatch it's setup to the main thread
• Fixed an issue where the PN extension would try to read from the database after suspending it
• Fixed an issue where the PN extension could try to complete on a non-main thread (eg. db threads) which _might_ cause odd behaviours
1 month ago
Morgan Pretty 4435240d2b Fixed a number of background processing and polling issues
• Tweaked some background poller logs
• Refactored the `BackgroundFetch` handling to use a `DispatchSourceTimer` instead of `NSTimer` and use a specific `DispatchQueue` to avoid race conditions
• Refactored the BackgroundTaskManager to use `DispatchQueue` and `DispatchSourceTimer` and removed unused code (was seeing background tasks incorrectly running too long so wanted to clean it up)
• Fixed an issue where pollers would incorrectly be released during background polling
• Fixed an issue where the background poller wouldn't update the app notification badge count
• Fixed an issue where the community pollers 'timeSinceLastPoll' was incorrectly being given both an epoch timestamp as well as a duration since the last poll (resulting in always just refetching recent messages)
• Fixed an issue where the community poller wasn't updating the last poll timestamp (also renamed some functions to make them clearer)
• Fixed an issue where pollers could incorrectly be started in the background (eg. when receiving a PN)
1 month ago
Morgan Pretty f67c754088 Fixed an issue where the read receipt wouldn't show 1 month ago
Morgan Pretty a049d87b11 Fixed a few bugs which came up during testing
• Added a 'requireAllRequestsSucceed' flag to the ConfigurationSyncJob (so it'll report a failure if any individual request fails)
• Fixed an issue where a number of 'response' types weren't encoding correctly (only impacted unit tests)
• Fixed an issue where the logger wasn't correctly respecting the log level settings
• Fixed an issue where the path status indicator wouldn't default to unknown
• Fixed an issue where the generic database error didn't replace the 'app_name' variable
• Fixed an issue where notification content might not be shown correctly
• Fixed an issue where a group could be partially created due to one of it's configs failing to be stored (we now consider that a failure so the user can try again)
• Fixed an issue where processing a config message in the BackgroundPoller could result in attempting to fetch from communities after the process completed
• Fixed a crash where a database query could incorrectly be interrupted after it completed if both happened at just the right time
• Fixed broken unit tests
1 month ago
Morgan Pretty 25f3e836ef Debug dis message durations on for tests, uregister PNs on clear acct
• Turned on debug disappearing message settings by default for tests
• Unregister from PNs when clearing the account
1 month ago
Ryan ZHAO a2d7be369c Merge branch 'call-permission-improvements' into call-detailed-info 1 month ago
Ryan ZHAO 35fdce7272 add steps details 1 month ago
Morgan Pretty 4399a5a5bb Fixed a few issues that came up when testing
• Attempt to fix an issue where the CI couldn't find a test simulator because it didn't exist (now try to grab the latest)
• Refactored the notification service extension logging to be more helpful and allow for better tracking
• Fixed a minor layout issue on devices with a home button
• Fixed an issue where display pictures could be given the wrong file extension because we were assuming jpeg
• Fixed an issue where disabling the "Auto dark-mode" setting may not correctly trigger a theme update
• Fixed an issue where returning to the settings screen from a child screen would result in the screen jumping
• Fixed an issue where migrating the community display picture would fail
• Fixed an issue where failing to decrypt a config message push notification would incorrectly result in the fallback notification being shown
1 month ago
Morgan Pretty ad821dcbf1 Fixed some string issues
• Updated the string linter logic to error when incorrect parameter names are given (or missed)
• Updated the code based on the latest string changes
• Fixed an issue where the string linter wasn't working
2 months ago
Morgan Pretty d91af1b5b6 Fixed a few bugs
• Updated to the latest libSession
• Fixed some warnings
• Fixed a compilation issue on non-debug builds
• Fixed an issue with the dev settings data importer when ignoring hidden files from old exports (wouldn't move the inputStream forward correctly resulting in a crash)
• Fixed an issue where the swarm poller wasn't included synchronously processed messages in it's publisher output
2 months ago
Morgan Pretty 28c06d0e2b Removed more unused code, tweak to speed up test compilation 2 months ago
Morgan Pretty bdbfe6c28e Refactored the remaining DB queries to avoid using type-based queries 2 months ago
Ryan ZHAO 46f82fd557 WIP: add permission chain for voice and video calls 2 months ago
Morgan Pretty 1f3f7ba7c6 Fixed QA issues
• Refactored the 'performOperation' function to have cleaner control flow and resolve another EXC_BAD_ACCESS edge case
• Updated the code to allow legacy groups to be unpinned after they are deprecated
• Fixed an issue where the default state of the global search screen wouldn't be populated if you had a contact with no SessionThread record
• Fixed an issue with display picture placeholder generation
• Fixed an issue where the edit group screen would show the group display picture back to front
2 months ago
Morgan Pretty c99ee90ca6 Fixed a QA issue, a couple edge-cases and cleaned up some logic
• Added the "expired group" banner for when the first poll of an updated group doesn't retrieve config messages
• Removed a redundant base64 encode/decode
• Removed messy extra message validation function
• Fixed an edge-case where a member granted supplemental access to the group could end up incorrectly kicked under the right conditions
• Fixed an issue where the copy for deleting a deprecated legacy group wasn't accurate
2 months ago
Morgan Pretty 3f3d4dde26 Fixed a number of issues found during general testing
• Added a 'forceSlowDatabaseQueries' dev setting to help track down main thread database queries
• Updated the unit tests to use a NoopNetworkCache by default when running unit tests
• Updated the custom debug sync query timer to poll more frequently for the first few iterations
• Fixed the broken unit tests
• Fixed the bad memory issue again (wasn't properly fixed...)
• Fixed an issue where the keyboard wouldn't reappear after deleting a message
• Fixed an issue where the toast shown after deleting a message could do a weird appearance animation
• Fixed an issue where legacy group invites were incorrectly still being handled once legacy groups were deprecated
• Fixed an issue where control messages could incorrectly leave a deletion artifact when triggering "delete before now"
• Fixed an issue where the typing indicator logic could run on the main thread (was also overly complex)
• Fixed an issue where we were clearing the incoming typing indicator too quickly (5s vs 15s like other platforms)
• Fixed an issue where the GroupPoller could incorrectly wait for longer than it should between polls if a message was deleted (there will be a better approach we should use in the future when we have an `active_at` flag for the conversation)
2 months ago
Morgan Pretty 8bb51968f0 Fixed some issues found during debugging & QA issues
• Added code to schedule any missing recurring jobs (so we no longer need to worry that the jobs have been lost or the migrations that added them ran correctly in their final state)
• Added the 'FailedGroupInvitesAndPromotionsJob' to flag invites/promotions which weren't sent before the app closed as failed
• Updated to the latest libweb
• Updated to the latest libSession
• Updated the config sync job to delay marking itself as failed if the network is not connected (it'll now observer the network status and trigger the failure callback when reconnected, which will result in another sync attempt shortly after - this will prevent a disabled network from building up the failure count excessively causing sync delays)
• Fixed a bad memory race condition which could occur with the new `Storage.performOperation` logic
2 months ago
Morgan Pretty 44b1d69551 Fixed a number of issues found during testing, and some QA issues
• Updated the SyncPushTokensJob to wait for a bit for paths to build before failing
• Updated the PushNotification service to be selectable via the dev settings
• Updated the database timeout code to be a little more developer friendly
• Updated the code to stop blocked contacts from appearing in the main conversation list
• Removed the invalid "push-testnet" push server
• Removed the logic to configure the APNS push service based on the service network (was incorrect)
• Removed the 'Int' raw type constraint for the 'FeatureOption'
• Fixed an issue where the initial conversation query for groups would fail due to an invalid join
• Fixed an issue where the initial conversation query wouldn't include the 'markedUnread' flag (meaning the conversation wouldn't correctly get marked as read)
• Fixed a rare bad memory crash
• Fixed an issue where the modal wouldn't be dismissed after updating the group display name
• Fixed an issue where the "Recreate Group" button was the wrong height
2 months ago
Morgan Pretty c414e1b5fc Fixed build issues from the merge 2 months ago
Morgan Pretty 7b9f8cb45e Merge remote-tracking branch 'upstream/dev' into feature/groups-rebuild 2 months ago
Morgan Pretty e1f093edd4 Fixed up a couple of issues with the debug import/export process
• Updated the ConfirmationModal explanation to be automatically scrollable by default
• Updated the DirectoryArchiver to ignore hidden files (based on the '.' prefix) by default as they wouldn't have been created by Session
2 months ago
Morgan Pretty 45a9586318 Updated the code to use the localised copy for the deprecation UI 2 months ago
Morgan Pretty 6830c68c31 Merge remote-tracking branch 'upstream/dev' into feature/groups-rebuild
# Conflicts:
#	Session/Calls/Call Management/SessionCall.swift
#	Session/Conversations/ConversationVC+Interaction.swift
#	Session/Conversations/ConversationVC.swift
#	Session/Meta/AppDelegate.swift
#	Session/Meta/MainAppContext.swift
#	Session/Notifications/PushRegistrationManager.swift
#	SessionMessagingKit/Jobs/GarbageCollectionJob.swift
#	SessionMessagingKit/Jobs/Types/UpdateProfilePictureJob.swift
#	SessionMessagingKit/LibSession/Config Handling/LibSession+Shared.swift
#	SessionMessagingKit/Sending & Receiving/MessageSender.swift
#	SessionMessagingKit/Utilities/ProfileManager.swift
#	SessionUtilitiesKit/Database/Storage.swift
#	SessionUtilitiesKit/JobRunner/JobRunner.swift
#	_SharedTestUtilities/SynchronousStorage.swift
2 months ago
Morgan Pretty d5add5bb79 Fixed a few more issues
• Minor tweak to config load order
• Pulled across reentrancy PR fixes
• Fixed an issue where some UI changes were occurring on background threads (causing crashes)
• Fixed an issue where editing a group name/description was performing a blocking action but not showing a loading indicator
• Fixed an issue where the group display picture modal would have it's "save" button enabled even when the picture hadn't been changed
2 months ago
Morgan Pretty 18d0488056 Missed a code path to signal the semaphore 2 months ago