* Use schedulers with ChainedPromise
* Add full queue initializer redirection in Schedulers
* pass scheduler to OWSURLSession
* Use schedulers in SystemStoryManager
* make SystemStoryManagerTest synchronous
* Go to chat list view after registration
* sync system contacts during registration
* Use explicit local credentials for storage service operations during registration
* fix tests
* Quick hack to get through double pin confirmation
* Finishing touches
* lint
* fix build
* reload phone number discoverability after storage service sync
* fix tests again
* Take chat auth on account and contact record initializers
* Change around branches for clarity in OWSUserProfile
* pr comments
* Split ChatServiceAuth into the same and AuthedAccount
* fix tests
* merge woes
* Add RegistrationSession object
* Add RegistrationSessionManager protocol
* Add skeleton RegistrationSessionManagerImpl - just kvstore persistence implemented
* Issue requests in RegistrationSessionManagerImpl
* let tests access the in memory kv store
* Add TSRequestOWSURLSessionMock. Rename OWSURLSessionMock
* Add DateProvider
* Take a dateProvider in RegistrationSessionManagerImpl
* Add tests for RegistrationSessionManager
* pre-emptively update timeout for tests. will remove once promise Scheduler code is merged
* PR comments
* Use Schedulers
Right now, we create a request before we make a session for a web
socket. However, as part of the next change, we’ll start creating the
request from the session. This new type breaks the circular reference;
we can create an endpoint, then a request, then a session.
* Use read timestamp in story badge count
* Add StoryBadgeCountManager
* Manager stories tab bar badge count in StoryBadgeCountManager
* Don't mark stories read while the app is backgrounded. Mark them read when foregrounding and on the tab bar
* Only mark the latest story per context as read
* fix tests
Change license to AGPL
This commit:
- Updates the `LICENSE` file
- Start every file with something like:
// Copyright YEAR_FIRST_PUBLISHED Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
---
First, I removed existing license headers with this Ruby 3.1.2 script:
require 'set'
EXTENSIONS_TO_CHECK = Set['.h', '.hpp', '.cpp', '.m', '.mm', '.pch', '.swift']
same = 0
different = 0
all_files = `git ls-files`.lines.map { |line| line.strip }
all_files.each do |relative_path|
if relative_path == 'Pods'
next
end
unless EXTENSIONS_TO_CHECK.include? File.extname(relative_path)
next
end
path = File.expand_path(relative_path)
contents = File.read(path)
new_contents = contents.sub(/\/\/\n\/\/ Copyright .*\n\/\/\n\n/, '')
if contents == new_contents
same += 1
else
different += 1
end
File.write(path, new_contents)
end
puts "updated #{different} file(s), left #{same} untouched"
I'm sure this script could be improved, but it worked well enough.
Then, I created `Scripts/lint/lint-license-headers` and ran it to auto-
fix a lot of files. This changed the mode of some files, but I think
that's actually desirable. For example,
`SignalServiceKit/src/Util/AppContext.m` previously had a mode of
`0755/-rwxr-xr-x`, and it's now `0644/-rw-r--r--`.
Then I fixed some stragglers and updated the precommit script.
See [a similar change in the Desktop app][0].
[0]: 8bfaf598af
This fixes our remaining SwiftLint violations, which were small.
It also updates the precommit script to fail if any violations are
found, even warnings. This will cause CI to fail if you include a file
that isn't SwiftLint-compatible.