* Set hidden state from stories view controller context menu
* fix toasts when shown on controllers with UIScrollViews as their root views
* delete when hiding the onboarding story
* run translations script
* respond to pr feedback
* add hidden state to systemStoryManager
* use hidden state from SystemStoryManager for onboarding story
* remove unused method
* increase system story duration
* omit timestamp for system stories
* sort system stories at the top
* Add checkmark to signal author name display
* pr feedback
* update contactRecord and groupv2 protos to add hideStory flag
* sync contactRecord and groupv2Record with local storyHidden state on ThreadAssociatedData
This will be the interface used for storing IDs of group calls in the
future; for now there should be no functionality change, except if
there's an address mentioned with no associated thread. Previously
that thread would be created if needed; now the call action will fail.
This seems reasonable given that threads only go away if the user
explicitly deletes them.
While here, we don't need to save both the UUID and phone number of a
user's address; the UUID always wins anyway. Only worry about phone
numbers if there's no UUID.
(unless preferences say we shouldn't)
Previously we only gave the callee's phone number to CallKit, which is
fine...when the callee is in your system contacts. Now we match the
behavior of incoming calls and always provide Signal's name for the
callee, though in the system call log a system contact name will
always win.
This should have no user impact.
A pretty mechanical change.
Most notably, I stopped getting a global queue by priority (because it's
deprecated) and switched to QOS. I switched from "high priority" to
"QOS: user initiated" based on [this documentation][0].
[0]: https://developer.apple.com/documentation/dispatch/dispatch_queue_priority_high
RingRTC hasn't initialized the camera right when the call starts, so
it marks the call as not having local video at the point when we
report it to CallKit. Check the offer type instead.
Previously, archived groups didn't show up in the "Add to Another Group"
view. Now, they do!
This also orders groups entirely by recency.
This view used `ThreadViewHelper`, which (1) omitted archived groups
(2) had a bunch of dormant database observation code. I removed this
class and replaced it with some inline code that fetches groups.
Group calls don't normally have stable IDs, but we need an opaque ID
to represent a particular ring for CallKit or notifications.
The next commit will drop the localId on IndividualCall, but right now
it's still needed for presenting notifications.
This change should have no user impact.
Neither Xcode nor `git grep isThreadPinned` yield any relevant results
for this method. At a glance, it seems like its last usage was removed
in d57bc7fe26.
This change should have no user impact.
This commit:
- Rewrites the tests in Swift
- Removes some redundant tests
- For North American phone numbers, uses `555-01XX` phone numbers
(because "only 555-0100 through 555-0199 are now specifically reserved
for fictional use; the other numbers have been reserved for actual
assignment)
* Add OnboardingStoryManager
* mark onboarding story viewed
* Add tests and fix issues that came up from testing
* up test timeout for slower CI
* rename SystemStoryManager and put into dependency injecton container
* Use viewed state on StoryMessage itself. Have SystemStoryManager observe app lifecyle events to automatically manage the onboarding story
* use iOS assets which are now in s3
* todo cleanup
* increment timestamp for uniqueness
* pr comments
* change literal delimiter
* Add ChainedPromise utility, tests, and use in SystemStoryManager
* discretionarily observe app backgrounding in SystemStoryManager
* renaming from PR comments