Commit Graph

211 Commits (de41f5adca4277231c30bd6543f0f7e8bb928a0d)

Author SHA1 Message Date
Morgan Pretty a91024f0bb Separate streams for attachment upload/download and bug fixes
• Updated the code to stop sending legacy PNs outside of legacy group conversations
• Updated the logger logic to clean things up and use the local date/time (with time zone info) to ease debugging user reports
• Fixed an issue where messages in a community could incorrectly accept disappearing message settings
• Fixed an issue where duplicate messages could be sent in some cases
• Fixed an issue where the conversation might not scroll to the bottom after sending an attachment
• Fixed an issue where attachment encryption was happening in a db write thread
4 weeks ago
Morgan Pretty 6cb9294143 Changed the networking logic to suspend/resume rather than just cancel connections 1 month ago
Morgan Pretty d1a4683bc3 Worked on fixing the main libQuic crashes
• Revert logic to stop voice messages from playing when their associated message disappears
• Updated the libSession build script to pass through the build type (so we get debug libSession builds when doing debug builds)
• Fixed a couple of issues in libSession around recovering network connectivity
1 month ago
Morgan Pretty dd5716e831 Initial work on 2.6.0 issues
• Fixed an issue where voice messages wouldn't stop playing when deleting a message or leaving a conversation
• Fixed an issue where the notification extension was handling errors and finishing while within a database transaction
• Fixed an issue where the ShareExtension may not have been able to send LinkPreviews
• Fixed an issue where displaying or logging the paths weren't maintaining the correct order
• Tweaked some of the logging behaviours
2 months ago
Morgan Pretty eccaa29c4a Fixed the background crash issues
• Updated GRDB and SQLCipher
• Shifted the ThreadSettingsViewModel code into a separate function to fix a compilation issue
2 months ago
Morgan Pretty 5ee15bbc3f Moved a bunch of networking logic into libSession
• Moved the snode cache and path building into libSession (deleted associated logic)
• Moved reachability detection into libSession (remove Reachability dependency)
• Fixed a couple of crashes with using libQuic requests
• Fixed a bug where the MessageRequestFooterView would show buttons on outgoing message requests
2 months ago
Morgan Pretty c6c2881338 Reworked the libSession network to be instance based
• Fixed an issue where the DisappearingMessagesJob was getting run for every individual message process instead of just once after processing all messages from a poll
• Tweaked the polling logic to split the user, groups and community pollers into separate queues
• Tweaked the logic to restart the open group poller immediately after joining a community (to avoid an edge-case where there could be a long delay before the initial poll is made)
• Tweaked the logic for checking if PNs are susceptible to failure to only dispatch to the main thread once
• Cleaned up some warnings
• Updated the app versioning to be at the project level instead of target level
• Added the ability to define a unique hash for a job for deduplication
3 months ago
Ryan ZHAO bda1e52668 update accessibility ids 3 months ago
Ryan ZHAO e235b6059f fix an issue where the keyboard can be covering voice call buttons 4 months ago
Ryan ZHAO f5afdae646 Merge branch 'dev' into message-detail-screen 4 months ago
Morgan Pretty 661720a988 Merge remote-tracking branch 'upstream/dev' into disappearing-message-redesign
# Conflicts:
#	Session.xcodeproj/project.pbxproj
#	Session/Meta/Translations/ar.lproj/Localizable.strings
#	Session/Meta/Translations/be.lproj/Localizable.strings
#	Session/Meta/Translations/bg.lproj/Localizable.strings
#	Session/Meta/Translations/bn.lproj/Localizable.strings
#	Session/Meta/Translations/cs.lproj/Localizable.strings
#	Session/Meta/Translations/da.lproj/Localizable.strings
#	Session/Meta/Translations/de.lproj/Localizable.strings
#	Session/Meta/Translations/el.lproj/Localizable.strings
#	Session/Meta/Translations/en.lproj/Localizable.strings
#	Session/Meta/Translations/eo.lproj/Localizable.strings
#	Session/Meta/Translations/es-ES.lproj/Localizable.strings
#	Session/Meta/Translations/fa.lproj/Localizable.strings
#	Session/Meta/Translations/fi.lproj/Localizable.strings
#	Session/Meta/Translations/fil.lproj/Localizable.strings
#	Session/Meta/Translations/fr.lproj/Localizable.strings
#	Session/Meta/Translations/hi.lproj/Localizable.strings
#	Session/Meta/Translations/hr.lproj/Localizable.strings
#	Session/Meta/Translations/hu.lproj/Localizable.strings
#	Session/Meta/Translations/id.lproj/Localizable.strings
#	Session/Meta/Translations/it.lproj/Localizable.strings
#	Session/Meta/Translations/ja.lproj/Localizable.strings
#	Session/Meta/Translations/ko.lproj/Localizable.strings
#	Session/Meta/Translations/ku.lproj/Localizable.strings
#	Session/Meta/Translations/lt.lproj/Localizable.strings
#	Session/Meta/Translations/lv.lproj/Localizable.strings
#	Session/Meta/Translations/ne-NP.lproj/Localizable.strings
#	Session/Meta/Translations/nl.lproj/Localizable.strings
#	Session/Meta/Translations/no.lproj/Localizable.strings
#	Session/Meta/Translations/pl.lproj/Localizable.strings
#	Session/Meta/Translations/pt-BR.lproj/Localizable.strings
#	Session/Meta/Translations/pt-PT.lproj/Localizable.strings
#	Session/Meta/Translations/ro.lproj/Localizable.strings
#	Session/Meta/Translations/ru.lproj/Localizable.strings
#	Session/Meta/Translations/si-LK.lproj/Localizable.strings
#	Session/Meta/Translations/sk.lproj/Localizable.strings
#	Session/Meta/Translations/sl.lproj/Localizable.strings
#	Session/Meta/Translations/sv-SE.lproj/Localizable.strings
#	Session/Meta/Translations/th.lproj/Localizable.strings
#	Session/Meta/Translations/tr.lproj/Localizable.strings
#	Session/Meta/Translations/uk.lproj/Localizable.strings
#	Session/Meta/Translations/vi.lproj/Localizable.strings
#	Session/Meta/Translations/zh-CN.lproj/Localizable.strings
#	Session/Meta/Translations/zh-TW.lproj/Localizable.strings
#	SessionMessagingKit/Configuration.swift
#	SessionUtilitiesKit/Database/Storage.swift
5 months ago
Ryan ZHAO 43e2983f49 fix call messages and data extraction messages with their expiration info and refactor 6 months ago
Morgan Pretty cbcdb9b37f Refactored AppContext and AppRediness to Swift 6 months ago
Ryan ZHAO 04d734ef87 use local disappearing messages setting for call messages and data extraction notifications 7 months ago
Ryan ZHAO 810a990735 fix disappearing messages for call message 7 months ago
Ryan ZHAO e38fb400ea refactor on the way that attaching disappearing messages config to messages 7 months ago
ryanzhao f603b422b0 Merge branch 'dev' into message-detail-screen
# Conflicts:
#	Session/Media Viewing & Editing/MediaInfoVC+MediaPreviewView.swift
#	SignalUtilitiesKit/Media Viewing & Editing/OWSVideoPlayer.swift
9 months ago
Morgan Pretty 90cd3fb5e0 Merge remote-tracking branch 'upstream/dev' into disappearing-message-redesign
# Conflicts:
#	_SharedTestUtilities/MockJobRunner.swift
9 months ago
Morgan Pretty f9dc85b7ab Fixed a couple of onboarding bugs and tweaks some logs
Fixed an issue where starting and then restarting onboarding would get the app into an invalid state
Fixed an issue where newline characters could cause issues with parsing the recovery phrase
Added additional logs to better be able to understand the database state
9 months ago
Ryan Zhao 66e37cef07 Merge branch 'dev' into disappearing-message-redesign 10 months ago
ryanzhao f4b17c0f06 Merge branch 'dev' into message-detail-screen 10 months ago
Morgan Pretty a2f1f36d2c Fixed a number of issues with the Notification Service Extension
Fixed an issue where receiving a PN for outgoing messages could break the NotificationServiceExtension
Fixed an issue where the NotificationServiceExtension could startup in an invalid way resulting in subsequent PNs failing to process
Fixed an issue where you could incorrectly receive multiple generic notifications after receiving an incoming call notification
Fixed an issue where the read state syncing might not clear notifications from the notification center
Fixed an issue with parsing Bencoded data
Updated the PN subscription to subscribe to CONVO_INFO_VOLATILE notifications (update read state)
Updated the NotificationServiceExtension to use standard message processing where possible
Updated the NotificationServiceExtension to update the app badge based on a database query
10 months ago
Ryan Zhao 9fe9f19c94 Merge branch 'dev' into message-detail-screen 11 months ago
Ryan Zhao 9e1f68380a Merge branch 'dev' into disappearing-message-redesign 11 months ago
Morgan Pretty 5285d81177 Fixed a few more PN logic issues
Sorted out some more threading issues
Removed a redundant SyncPushTokensJob run
Fixed an issue where the NotificationServiceExtension could incorrectly setup the database before setting up it's context
Fixed a few warnings
Removed a bunch of legacy code
Refactored the MainAppContext from Objective C into Swift
11 months ago
Ryan Zhao 0e376d0d8a rename Environment to SessionEnvironment to avoid conflicts on SwiftUI @Environment 11 months ago
Ryan Zhao cbc8a7806d Merge branch 'dev' into disappearing-message-redesign 12 months ago
Morgan Pretty f373a989a8 Fixes for user config crashes
Added a method to determine if the database is suspended
Updated the code to show the "Failed" state if sending a message fails due to a suspended database
Prevented a crash which could occur in rare cases when accessing the Seed via the home screen prompt (direct user to share logs with session - db locked or device in an invalid state)
Prevented a crash which could occur when trying to send a message due to failing to retrieve the mnemonic (db locked or device in an invalid state)
Fixed a bug where optimistic messages could end up appearing multiple times
Fixed a crash with the QRCode scanner
Fixed a crash when trying to take a video attachment
Fixed a crash where the image picker grid could go out of bounds when selecting elements
Fixed a crash which could occur when a user provides a recovery password with a word that contains less than 3 characters
Fixed a potential issue where the dependency injection could result in a stale date being used in some places (removing the DI here, proper fix requires larger changes in another branch)
12 months ago
Ryan Zhao e78015faa1 Merge branch 'updated-user-config-handling' into disappearing-message-redesign 1 year ago
ryanzhao aace269359 WIP: make job chain of disappearing messages job, expiration update job, and config sync job 1 year ago
Morgan Pretty d0be7f786c Fixed a hang, removed redundant libs, files and code
Fixed an issue where returning the app from the background would result in the app staying permanently on the splash screen
Included a CRC32 implementation so we can drop the CryptoSwift dependenciy (using CryptoKit everywhere else)
Removed 'SocketRocket' (unused)
Removed the `xcode_14_3_workaround` post-install hook (fixed with CocoaPods 1.12.1)
Removed the `enable_fts5_support` post-install hook (enabled by default since GRDB 6.7.0 so redundant)
Removed the `enable_whole_module_optimization_for_crypto_swift` post-install hook (dropped CryptoSwift support)
Cleared out a bunch of headers from the Signal-Bridging-header file (direct imports instead to reduce incremental build sizes)
Deleted some unused code
1 year ago
Ryan Zhao d81a8743ac Merge branch 'updated-user-config-handling' into disappearing-message-redesign 1 year ago
Morgan Pretty 5e2e103ee1 Resolved the remaining known internal testing issues
Removed the 'immediatelyOnMain' extensions as they would break in some cases (eg. upstream errors with multiple 'receive(on:)' calls) resulting in logic running on unexpected threads
Updated the ReplaySubject to add subscribers in an Atomic just to be safe
Updated the code to remove the invalid open group when the user receives an error after joining
Fixed a bug with editing closed group members
Fixed broken unit tests
1 year ago
Morgan Pretty 6cf7cc42ab Fixed up the remaining reported internal testing issues
Removed the 'readPublisherFlatMap/writePublisherFlatMap' functions as they easily resulted in behaviours which held up database threads
Tweaked the logic around starting the open group pollers to avoid an unlikely atomic lock blocks
Updated some logic to avoid accessing database read threads for longer than needed
Updated the OpenGroupManager to only update the 'seqNo' value for valid messages
Cleaned up some double Atomic wrapped instances which had some weird access behaviours
Fixed an issue where a database read thread could have been started within a database write thread
Fixed an issue where the ReplaySubject might not emit values in some cases
1 year ago
ryanzhao d717828af5 remove unused objc AVAudioSession+OWS 1 year ago
Morgan Pretty 5d88db7a8a Merge remote-tracking branch 'origin/feature/tweak-profile-modal-ui' into feature/updated-user-config-handling
# Conflicts:
#	Session.xcodeproj/project.pbxproj
#	Session/Calls/Call Management/SessionCall.swift
#	Session/Conversations/ConversationVC.swift
#	Session/Conversations/Input View/MentionSelectionView.swift
#	Session/Conversations/Message Cells/VisibleMessageCell.swift
#	Session/Settings/SettingsViewModel.swift
#	Session/Shared/Views/SessionAvatarCell.swift
#	Session/Shared/Views/SessionCell+AccessoryView.swift
#	SessionUIKit/Components/ConfirmationModal.swift
#	SessionUIKit/Components/PlaceholderIcon.swift
#	SignalUtilitiesKit/Profile Pictures/ProfilePictureView.swift
1 year ago
Morgan Pretty cf2e198a64 Updated the profile picture modal
Moved the ProfilePictureView into SessionUIKit
Fixed a couple of minor ProfilePictureView bugs
1 year ago
Morgan Pretty 2d792e4e3e Updated the profile picture modal and standardised the ProfilePictureView sizes
Fixed an issue where 'CurrentAppContext().isMainAppAndActive' wasn't called on the main thread
Updated the ProfilePictureView to have the updated icon UI
1 year ago
Morgan Pretty 8c8453d922 Updated to the latest libSession, fixed remaining items
Updated to the latest libSession version
Updated the 'hidden' logic to be based on a negative 'priority' value
Added an index on the Quote table to speed up conversation query
Fixed an odd behaviour with GRDB and Combine (simplified the interface as well)
Fixed an issue where migrations could fail
1 year ago
Morgan Pretty fa39b5f61c Merge remote-tracking branch 'upstream/dev' into feature/updated-user-config-handling
# Conflicts:
#	Session.xcodeproj/project.pbxproj
#	Session/Calls/CallVC.swift
#	Session/Conversations/Message Cells/Content Views/DocumentView.swift
#	Session/Conversations/Settings/OWSMessageTimerView.m
#	SessionMessagingKit/File Server/FileServerAPI.swift
#	SessionMessagingKit/Messages/Visible Messages/VisibleMessage.swift
#	SessionMessagingKit/Open Groups/OpenGroupManager.swift
#	SessionMessagingKit/Sending & Receiving/MessageReceiver.swift
#	SessionMessagingKit/Shared Models/MessageViewModel.swift
#	SessionMessagingKit/Shared Models/SessionThreadViewModel.swift
#	SessionSnodeKit/SnodeAPI.swift
#	SessionUtilitiesKit/Networking/HTTP.swift
#	SignalUtilitiesKit/Media Viewing & Editing/Attachment Approval/AttachmentTextToolbar.swift
1 year ago
Morgan Pretty 70ce967df6 Made a few optimisations and fixes
Made a couple of DB query optimisations for the Home and Conversation screens
Removed some compiler-complex global generic functions
Increased the timeout for file uploads
Fixed a few import issues
Fixed an issue preventing calls on the simulator from working (disable CallKit on the simulator)
Fixed an issue where opening a conversation with a draft would result in a typing indicator notification being sent (if enabled)
Fixed a truncation issue on the CallVC
1 year ago
Morgan Pretty a8c4c3eb76 Updated migration numbers as a result from merge and bug fixes
Updated the CallVC to support an animated profile picture
Fixed a button layout issue with the landing screen
Fixed a bug where the input view could appear above the call UI when the app returns to the foreground
Fixed a bug where the push notification registration could incorrectly get triggered during onboarding when recovering from an onboarding crase
1 year ago
Morgan Pretty f30b383bb8 Updated to the latest version of libSession-util
Updated the SharedConfigMessage type to have a TTL of 30 days
Updated the SnodeAPI to have a 'poll' method to be more consistent with the OpenGroupAPI (it also does multiple things now so is cleaner)
Added logic to limit the number of config messages to be retrieved per poll
Added the 'ValidatableResponse' protocol to standardise SnodeAPI response validation
Added the libSession version to the logs
Fixed an issue where the user profile pic wouldn't get synced correctly due to memory going out of scope
Fixed some threading issues
Refactored the thread variants to follow the updated terminology (will think about refactoring other code areas later)
Cleaned up the Combine error handling
Started fixing broken unit tests
1 year ago
Ryan Zhao acd494c29d minor adjustment for UI/UX 1 year ago
Ryan Zhao 5a35907cd3 implement new UI/UX design 1 year ago
ryanzhao 335bfb6874 hiding video view if needed 1 year ago
ryanzhao 1b35085015 fix local video view 1 year ago
ryanzhao 0ccfdcd24d WIP: switch video view 1 year ago
Ryan Zhao 1845340582 WIP: refactor on the call UI to add switching function of caller and callee's video views 1 year ago
Morgan Pretty eb3c31d911 Fixed a few more bugs
Updated the PathStatusView to take Reachability into account for it's status indicator
Fixed an issue where a user couldn't delete their own messages sent to a community
Fixed an issue where the app didn't require a passcode to be set to use screen lock
Fixed an issue where the delivery status on a sending message might not update when on the conversation screen
Fixed an issue where read receipts weren't working
1 year ago