* Pause animated image stories like video stories
* calculated YYAnimatedImage duration for story viewer length calculations
* fix play/pause and getting stuck when swiping between story contexts
* Allow pausing story contexts before the media view gets created
* update caption truncation when reusing story media view
Files are supposed to start with a line like this:
// Copyright 20XX Signal Messenger, LLC
However, the IDE template macro looked like this:
// Copyright (c) 20XX Signal Messenger, LLC
That caused our linter at `Scripts/lint/lint-license-headers` to
complain. This fixes that, and a violation of it.
I introduced this recently in 370ff654e7.
If you register on another phone, `isRegistered` will remain true, but
`isRegisteredAndReady` won’t. Since we can’t upload push tokens unless
we’re fully registered, use the latter check instead of the former.
This dims the button:
let button = OWSButton()
button.dimsWhenHighlighted = true
button.isHighlighted = true
This did not, and I think it should (last 2 lines are switched):
let button = OWSButton()
button.isHighlighted = true
button.dimsWhenHighlighted = true
This also removes an unnecessary `@objc` annotation.
I think this is a useful change on its own but I expect it to make an
upcoming change easier, too.
_This change should have no user impact._
- `SubscriptionReadMoreSheet` is now
`DonationReadMoreSheetViewController`, because it's not just shown on
subscriber screens
- Moved some files out of `AppSettings/` because you can reach them in
other ways, not just app settings
I think this is a useful change on its own but I expect it to make an
upcoming change easier, too.
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
• text story composer now has three options: colored text with no background,
colored text on white background, white text on colored background.
• text/background color is switched to black if user chooses background/text
color close to white, to avoid white on white look.
• photo editor has three options from above + white text with colored underline.
We don't need a separate dedicated singleton for initiating calls. And
as part of this, there's no reason why only individual calls should be
supported; group calls can be "initiated" by opening their lobbies.
This will be useful when we put group calls in the iOS call log, but
also simplifies existing code in the conversation header.
While most of these helper functions only apply to individual calls,
we don't really need to encode that in the type system, and by
switching to SignalCall we make it easier to share logic for group
calls (see later commits).
We don't rotate the incoming videos, which is expected for 1:1 calls
but starts looking weird in group calls. Best not to support any kind
of rotation (on a phone) until we can do something more complete.
The `attemptToMigrateByCreatingOnService` method has a single caller,
and that caller also calls `tryToPrepareMembersForMigration` first. The
former is called when `migrationMode`’s `canMigrateToService` is true,
and the latter does a CDS lookup & profile key fetches if
`migrationMode`’s `isOnlyUpdatingIfAlreadyMigrated` is false; these two
conditions are true in the same situations. As a result, these CDS
lookups and profile key fetches aren’t necessary.
(This also removes an extra `firstly` block. I’d recommend ignoring
whitespace while reviewing the change.)
In 33d3f35d18, the switch in the real UI
was enabled for internal builds, so there’s no need to use a custom flow
to enable/disable this via the Debug UI.
* Support scale aspect fill in MediaMessageView
* show image/video previews on conversation picker when in stories only send flow
* show text story previews in conversation picker
* fix media preview border color
* update rotation for RTL
* PR feedback
* Hide story video duration tooltip when changing selection
* update story row swipe action title font
* Update tab bar icons
* Fix ghost safe area shown when cancelling an interactive dismiss of a chat view
* Use forced dark theme background color for cell selection in story info sheet
* Exclude hidden story contexts from conversation picker
* remove unused asset
* pr feedback
• Constrain text styling toolbar width to the width of the story card.
• Align Add Link and Background buttons with the leading edge of text story card.
PhotoLibrary was loading the entire contents of all asset collections just to
check if a collection was empty or not. For some reason that became extremely
slow on iOS 16.
The fix is to use `estimatedAssetCount` property on `PHAssetCollection` instead.
The only place we call this in production code ensures that all members
already support gv2. As a result, there’s no reason to try and enable
gv2 -- it’s already enabled by the time we reach this code.
There are a few places in the Debug UI that may be relying on these CDS
lookups. I’ve removed one of them since there are existing “clone as v1”
and “clone as v2” options that do nearly the same thing. In another
case, I’ve dropped a reference to a live, non-test account. The other
places in the Debug UI that use this method either construct invalid
phone numbers that will never pass a CDS lookup, or they explicitly
provide UUIDs, which would exclude them from performing a lookup.
* Disable view once media in stories send flow
* Remove stories from picker if sending a view once media
* dont show view once button if sending to stories from sharesheet