Commit Graph

141 Commits

Author SHA1 Message Date
Max Radermacher
857f930551
Don’t log every failure from a label sizing test 2024-01-09 14:50:42 -06:00
Pete Walters
e1d8b4063c
Add error handling for various iDEAL flows 2023-12-18 17:33:03 -06:00
Max Radermacher
6b3397b936
Remove confusing “Subscription” prefix 2023-12-12 12:30:31 -06:00
Sasha Weiss
bbf8f5ce0b
Present sheet when subscriptions fail to renew, rather than badges expire 2023-11-15 15:47:14 -08:00
Sasha Weiss
4e4cb470a2
Block donations above a maximum amount via SEPA 2023-11-13 14:24:18 -08:00
Sasha Weiss
65c977f2e7
SEPA donation fixes and charge failure codes in error sheets 2023-11-08 19:33:11 -06:00
Sasha Weiss
a39bb9f208
Make the 'subscription renewal charge failure' text static 2023-11-06 16:04:03 -08:00
Sasha Weiss
7f41ecaa8b
Support SEPA bank transfer donations 2023-11-06 13:49:40 -08:00
Elaine
5c6e63720e
Redesign donation payment details input 2023-11-02 13:01:53 -06:00
Sasha Weiss
43256c85e8
Add extension for sqliteRowId 2023-10-13 15:17:54 -07:00
Max Radermacher
3f522fa57a
[ServiceId] Update StoryMessage 2023-08-15 12:45:20 -05:00
Marissa Le Coz
52bf8a41fc
React to remote changes of hidden recipient state 2023-07-19 19:25:54 -04:00
Harry
f14b18d3f0
Fix underline of links in messages 2023-07-10 15:51:21 -07:00
Harry
ef1dfc1316
Add messageBody as a type of DisplayableText 2023-07-07 13:41:24 -07:00
Max Radermacher
3664cafe88
Simplify and fix issues with chat colors 2023-07-07 13:15:21 -05:00
Igor Solomennikov
0e9d511d1d
SignalUI cleanup.
• convert ObjC code from UIView+SignalUI to Swift.
• separate code from UIView+SignalUI to smaller files by functionality.
2023-06-23 14:36:21 -07:00
Igor Solomennikov
52f0015dfe
New set of icons. 2023-06-22 17:38:01 -07:00
Igor Solomennikov
20c55e7dec
Add necessary imports to Swift files.
Necessary for converting ChatListVC to Swift.
2023-06-05 16:04:48 -07:00
Igor Solomennikov
8f6fbdf827
Convert SignalBaseTest to Swift. 2023-06-02 21:24:50 -07:00
Igor Solomennikov
c0b01db156
Convert Environment from SignalMessaging to Swift as SMEnvironment. 2023-06-02 20:53:07 -07:00
Max Radermacher
279c518f32
Improve conversation view load performance
Co-authored-by: Harry <109690906+harry-signal@users.noreply.github.com>
2023-05-18 18:38:06 -07:00
Harry
e7f2c3b059
Show text formatting styles in media gallery 2023-05-05 09:06:03 -07:00
Harry
4d3eca887c
Text formatting support in Message detail, long text, and quoted reply views 2023-05-04 09:16:18 -07:00
Harry
b3700d07ce
Refactor mention/style/search result attribute application 2023-05-01 13:57:07 -07:00
Igor Solomennikov
6dd3d9a6f2
Convert all convenience methods in UIFont+OWS to Swift. 2023-04-18 17:14:51 -07:00
Max Radermacher
94a9c8cd65 Improve the performance of some tests 2023-04-17 14:14:57 -07:00
Max Radermacher
fa7f0e98fa
Clear “display badge” when your last badge expires
Also, explicitly track “old badges” vs. “new badges” when redeeming.
2023-03-23 00:32:42 -07:00
george-signal
45186034d6
Bring order to index paths in All Media 2023-03-06 14:55:17 -08:00
george-signal
ce18ac8d29
[All media] Add filtering to prerelease builds. 2023-03-03 15:55:13 -08:00
george-signal
242d949439
Race condition fixes in MediaGallerySections 2023-01-23 15:45:24 -08:00
Evan Hahn
f387afb745
Clean up badge expiration sheet tests
This test-only change should have no user impact.

I wrote these tests last year (in
c5bdf6c094). They test every single
string, which proves annoying to update and offers little value. This
updates the tests in an effort to make them more useful.
2023-01-20 18:30:17 -08:00
Sasha Weiss
bcbf52101e
PayPal recurring donations
Co-Authored-By: Evan Hahn <evanhahn@signal.org>
2023-01-18 14:48:50 -08:00
Evan Hahn
46b4cb7fae Update gift badge copy on badge expiration sheet 2023-01-11 09:44:59 -06:00
Evan Hahn
f3b8ded89f
Show "choose payment method" sheet for gift badges
We plan to support PayPal and credit/debit cards for gift badges. This
change, invisible to external users, is a step towards that.

Before this change, Apple Pay was always shown as the only payment
method. Now, all supported payment methods are shown.

PayPal and card don't do anything right now—they show an error UI if
tapped.
2023-01-10 13:35:05 -06:00
george-signal
e47a9cba34
Adopt MediaGalleryCollectionViewUpdater, redux. 2023-01-04 14:26:44 -08:00
Harry
120c7ebd8e
Revert "Adopt MediaGalleryCollectionViewUpdater"
This reverts commit e8f21942d5.
2022-12-23 14:00:28 -08:00
george-signal
e8f21942d5
Adopt MediaGalleryCollectionViewUpdater 2022-12-20 17:26:30 -08:00
Evan Hahn
75cdf810cd Donation error string metadata should mention Apple Pay
This change should have no user impact.

`DONATION_PAYMENT_ERROR_*` is now `APPLE_PAY_DONATION_ERROR_*`, and
Apple Pay is now mentioned in the string comments. None of the
user-visible strings actually change.

We plan to show different errors for cards and PayPal and this will help
us get there, but I think this is a useful change on its own.
2022-12-13 15:04:06 -06:00
Sasha Weiss
6f30bd58ca Fix badge expiration test across language localizations 2022-12-01 14:39:03 -08:00
Sasha Weiss
ee4799b506 One-time donations via PayPal 2022-12-01 14:39:03 -08:00
Sasha Weiss
40e765fa4f Integrate the /v1/subscription/configuration API 2022-12-01 14:39:03 -08:00
Sasha Weiss
b143e585d9 Only allow PayPal for one-time and gift donations 2022-12-01 14:39:03 -08:00
Evan Hahn
53642df893 Format credit/debit card donation inputs
This formats the text users enter on the card donation screen. For
example, "4242424242424242" becomes "4242 4242 4242 4242".

It uses [the `textField(_:shouldChangeCharactersIn:replacementString:)`
method of `UITextFieldDelegate`][0] to accomplish this, and implements a
helper that can handle all the cases (inserting, deleting, replacing,
pasting, and so on).

Tested this in an iPhone 14 simulator and on a physical iOS 12 device.

[0]: https://developer.apple.com/documentation/uikit/uitextfielddelegate/1619599-textfield
2022-11-23 18:49:21 -06:00
george-signal
c74f30b3b6
Add MediaGalleryCollectionViewUpdater
This is the keystone commit of turning MediaTileView asynchronous.

Because updates to the collection view's datasource now happen asynchronously and out-of-order, the batch update must be computed on the main queue based on what has changed.

MediaGalleryCollectionViewUpdater combines a log of operations from JournalingOrderedDictionary with the previous state of the collection view to compute insertions/deletions/reloads of items and sections.
2022-11-23 15:20:48 -08:00
Evan Hahn
21f2a36125
Add skeleton credit/debit card donation support
This adds very basic support for donations via credit/debit card. It's
missing important features which is why it's behind an internal-only
feature flag.

At a high level, this adds a new screen with a card form. This card data
is submitted to Stripe and then uses the same "rails" as our existing
Apple Pay donations.

This change is missing a few important features, intended to be added
soon:

- [3D Secure][3DS] support
- Validation error messages
- Input formatting (e.g., "1234" becomes "12/34")
- Gift badge support (currently only supports Apple Pay)
- Various smaller UI changes

[3DS]: https://stripe.com/docs/payments/3d-secure
2022-11-22 09:07:36 -06:00
Evan Hahn
6bf554ca17
Update subscriptions without re-prompting for Apple Pay
We shouldn't ask for Apple Pay when users update their subscriptions.
The update should just happen, unless there was previously a charge
failure.

This also fixes two other bugs:

- Some race conditions around observing subscription jobs
- One-time donations used the wrong progress spinner

This makes an upcoming change easier but is also useful on its own.
2022-11-20 08:08:15 -06:00
george-signal
7a49a0fa82
Adopt JournalingOrderedDictionary. (#5405)
This change also moves mutation to the ordered
dictionary into a separate queue. There is no
change to behavior yet because the queue is only
dispatched to synchronously so far. Doing this
forces changes to how database transactions are
acquired since they must be used on the same queue
where they orignated.
2022-11-16 17:31:23 -08:00
george-signal
214229f0cb
Add JournalingOrderedDictionary
This is a wrappar around OrderedDictionary that
maintains a change log to facilitate
UICollectionView batch updates in a system with
concurrent updates to the dictionary.
2022-11-10 17:29:04 -08:00
Evan Hahn
b12d1c3d28
Update badge expiration sheet to match new designs
This updates the copy and the "Donate" button.
2022-11-10 17:08:35 -06:00
Evan Hahn
ec78cc3a0a
Hide Apple Pay UI when the server disallows your region
_I recommend reviewing this with whitespace changes disabled._

The server's `global.donations.apayDisabledRegions` is a list of regions
(phone number prefixes) where Apple Pay is disallowed. This respects
that.
2022-11-10 16:19:47 -06:00