Commit Graph

18 Commits

Author SHA1 Message Date
Davide
6cc86e8668
Import v3 code (#597)
Closes #565
2024-09-23 15:02:26 +02:00
Davide De Rosa
4b909ebf8a
Attempt release 2024-01-11 17:52:31 +01:00
Davide De Rosa
dde2d22eed
Revisit submission of OpenVPN diagnostic report (#452)
Some improvements:

- Suggest replacing the template with the description of the issue
- Attach app log
- Append purchased features

Also reuse the same body for `mailto:` reports, as metadata were not
being attached in that case.

Closes #377
2024-01-07 12:11:16 +01:00
Davide De Rosa
5c5697762b
Add minimal TV app
Closes #315
2023-12-31 01:21:38 +01:00
Davide De Rosa
1551b59f21
Use async in ProductManager (#438)
Drop legacy completion handlers. Push `Task` to the views.

Also:

- Group library tests in a test plan
- Fix a broken library dependency
2023-12-21 08:09:52 +01:00
Davide De Rosa
a0da930d98
Refactor and test ProductManager (#437)
Carefully drop the StoreKit and Kvitto dependencies for ProductManager
to be testable.

Rebuild test target completely to start writing meaningful tests in
general.
2023-12-20 20:43:39 +01:00
Davide De Rosa
12c08c132c
Update metadata and translations (#365) 2023-10-10 23:00:19 +02:00
Davide De Rosa
c5cf0ca1d2
Shift async responsibility to ProductManager (#360)
SandboxChecker should not care about what actor is running on.

Better than #356
2023-09-10 19:08:31 +02:00
Davide De Rosa
0b755c1c77 Attempt release 2023-09-10 10:35:22 +02:00
Davide De Rosa
de7e574fec Do some housekeeping
- Upgrade Xcode project

- Fix Twitter link in README
2023-07-03 12:30:26 +01:00
Davide De Rosa
7ccb10febc
Rethink library architecture (#301) 2023-05-24 18:19:47 +02:00
Davide De Rosa
33e0ceec04
Lock in background (#275)
There are plenty of situations where the app kind of stays in the
foreground, but goes to .inactive state. Lock screen could be
annoying in those cases.
2023-03-31 23:47:29 +02:00
Davide De Rosa
dad6d820e9 Upgrade project to Xcode 14 2022-10-29 22:18:02 +02:00
Davide De Rosa
cd854f8ebf Group profile actions into menus
- Organizer
    - Duplicate

- Profile
    - Rename
    - Siri
    - Uninstall (+ confirmation)
    - Delete (+ confirmation)
2022-04-27 09:53:42 +02:00
Davide De Rosa
d1c98006d3 Replace ReloadingContent with implicit animations
Infinite loop on init(), but horrible practice in general.

- DonateView
- PaywallView+Purchase

Also show a ProgressView while rows are loading.

DO NOT animate on .products value because animation won't work
if products are empty and stay empty after refresh. Instead,
observe .isRefreshingProducts.

Lastly, to avoid annoying animation when products are actually
available, do not refresh products if non-empty. They certainly
do not change during the application lifecycle.
2022-04-21 11:22:07 +02:00
Davide De Rosa
ab0a2c8cb4 Reuse provider availability idea from 5d85699 2022-04-19 09:03:41 +02:00
Davide De Rosa
2565b9f3d0 Lock network settings for builds >= 3000 2022-04-13 21:25:24 +02:00
Davide De Rosa
4aba5f46aa Rewrite app in SwiftUI 2022-04-12 15:12:45 +02:00