Commit Graph

18 Commits

Author SHA1 Message Date
Sasha Weiss
d267ec8305
Run swiftformat . 2025-12-30 11:34:05 -08:00
Sasha Weiss
38ef1d2099
Drop legacy donation errors 2025-10-31 12:40:04 -07:00
Sasha Weiss
f4f480d036
Modernizations to Subscription 2025-10-28 14:55:28 -07:00
Sasha Weiss
cceb974afc
Allow canceling past-due subscriptions 2024-11-21 21:28:19 -08:00
Sasha Weiss
46b5b4a9e4
Prefix donations-related types with Donations 2024-10-25 10:14:56 -07:00
Chris Eager
e7ff2cbdea
Remove deprecated LevelConfiguration#name 2024-10-10 13:34:55 -07:00
Ehren Kret
fd8e2950ea move remaining Subscriptions and Jobs code to SignalServiceKit 2024-03-12 03:35:34 -05:00
Ehren Kret
9c7078b3f8 migrate OWSContactsManager to swift
as the last remaining objective-c file, this removed direct dependency
from the SignalMessaging framework headers on SignalServiceKit and
thus required adding lots of import statements
2024-03-09 10:45:55 -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
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
7f41ecaa8b
Support SEPA bank transfer donations 2023-11-06 13:49:40 -08:00
Sasha Weiss
bcbf52101e
PayPal recurring donations
Co-Authored-By: Evan Hahn <evanhahn@signal.org>
2023-01-18 14:48:50 -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
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
Evan Hahn
198fc1784a
Consolidate one-time & monthly donation screens
Previously, one-time donations were on one screen and monthly donations
were on another. Now, they're on a single screen with a picker.

Most of the interesting changes are in `DonateViewController`.

Other things of note:

- There are some new TODOs here for existing bugs I didn't fix. For
  example, one-time donations don't do so well if there are any problems
  at all.

- Even though we only support Apple Pay, there's code that alludes to
  additional payment methods. For example,
  `DonateChoosePaymentMethodSheet`. We'll expand on this in the future.

- Users should only be able to select currencies that the server
  supports. For example, you shouldn't be able to select EUR if the
  server doesn't support euros. This wasn't working correctly before,
  but is fixed here.

  We already fixed one part, where users could change to an unsupported
  currency (see dab02f30ae). However, if
  your _default_ currency is unsupported and you didn't change it,
  that's no good. This is unlikely for most users but could happen.

  I fixed this by changing it from (effectively)
  `Locale.current.currencyCode ?? "USD"`, which might not be supported,
  to a preference list, choosing the first one the server likes.

- I skip animations if the Reduce Motion setting is enabled.

- On the donation screen, the logic for the preview badge has changed
  slightly. If you already have a badge, we'll always use that.
2022-11-08 16:27:50 -06:00