* Add readOnboardingStory to AccountRecord
* Add onboarding story read state to SystemStoryManager
* Sync onboarding story read state with storage service
* fix incorrect delete of unviewed system stories
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
* Add first send story privacy field to AccountRecord proto
* Store hasSetMyStoriesPrivacyKey on StoryManager
* sync hasSetMyStoriesPrivacy state
* Reuse MyStorySettingsViewController in a sheet view controller
* Show my story privacy settings from conversation picker if unset when selecting my story destination
* reload my story row to change subtitle
* pr feedback
* add hasViewedOnboardingStory to account record
* Post notifications for TSAccountManager onboarding state
* fix bug with local addressing when updating profile key data
* sync onboarding story view status with accountRecord
* do the bare minimum to keep tests working
* use asVoid
* update contactRecord and groupv2 protos to add hideStory flag
* sync contactRecord and groupv2Record with local storyHidden state on ThreadAssociatedData
Also, re-run protobuf generation with swift-protobuf-1.8.0 to reduce a
bunch of diff noise. If we decide to migrate, we should do that in a
separate commit.
After some discussion, it was determined that we'd need to keep this
around to ensure that we'll eventually resolve any unknown fields.
Leaving around an unregistered flag will permanently leave us with an
unknown proto field.