This change should have no user impact.
We commonly pair a currency, like USD, and an amount, like 1.23. This
adds the `FiatMoney` struct. It's a simple struct with two fields.
After adding it, I tried to use it everywhere. (It's possible I missed a
spot.)
I think this is a useful change on its own, but it'll be nice for an
upcoming change, too.
See also: [Android's equivalent class][0].
[0]: cb65347bb3/core-util/src/main/java/org/signal/core/util/money/FiatMoney.java (L1)
This change should have no user impact.
`DonationViewController` is now `DonationSettingsViewController`.
I think this is a better name on its own, but it'll seem even better
after upcoming change.
* fix story views + replies sheet header update when swiping
* fix my story privacy show more off-by-one
* Disable story sends when hiding a group story. Unhide when enabling story sends to a group story.
* More consistent story tab bar badge offset
* Observe story viewed ring changes in ConversationAvatarView itself
* Manage ConversationAvatarView's story observation based on the context
* remove story state from thread view model, now unused
* pr feedback renames
* Preserve selection in text story composer after changing font size.
Fixes an issue where input cursor would jump to the end when adding/deleting
text in the beginning or middle of the text and those edits caused font size
to increase / decrease.
That unwanted behavior was caused by replacing the entire `UITextView.attributedText`.
* Ensure entire text story draft has same font after undo / redo operation.
UITextView's undo manager preserves attributes of text being cut / pasted, which
might cause text view to contain fragments with different font.
The solution is to detect when there's more than one font used in UITextView
and re-apply attributes to the entire text if when that happens.
Right now, trying to add a non-gv2 member to an existing group will
present an error when selecting the row.
When creating a new group, we allow the row to be selected, and then we
show an error on the next screen. With this change, we’ll show an error
immediately when selecting the row. (This allows us to remove a few
hundred lines of migration UI that *should* be unused.)
(Also, don’t call out recipients that don’t support New Groups.)
We try to populate this picker with users we believe are registered. Now
that GV2 is fully rolled out, all the recipients we believe are
registered should have a UUID. (If any don’t, we’ll resolve that on
launch via UUIDBackfillTask.) Since these proactive fetches *shouldn’t*
run, prevent them from running by removing them entirely.
If we hit a rare race condition where a recipient is missing a UUID,
we’ll still perform a lookup when trying to select that recipient.
In these rare edge cases where a recipient doesn’t have a UUID (which,
again, shouldn’t happen), the subtitle indicating that they don’t
support New Groups will be out of date. By removing proactive fetches,
it’ll remain out of date until the user taps the row. To avoid
confusion, defer showing an error until the user taps on the recipient.
* Hide navigation bar when searching in chats list
* Incomplete search bar layout
* apply story search filtering
* hide my stories section when searching
* Improve transitions for story tab bar search
* Show hidden stories in search results
* visual fixes to header when searching. include all unfiltered stories in viewer contexts
* delay getting the target story frame for interactive dismissal to give the view time to update after navigation bar changes
* fix strings
* pr feedback