Davide
e8d5f2477b
Prepare interactive login for paywall ( #663 )
...
See #662
2024-10-02 16:05:40 +02:00
Davide
3ab80cd076
Fix incorrect VPN status in some cases ( #661 )
...
Regression following #636
2024-10-02 13:40:44 +02:00
Davide
3fbf803518
Ignore unmappable Core Data entities ( #660 )
...
But implement .discard for testing.
2024-10-02 13:35:49 +02:00
Davide De Rosa
f602655568
Link TODOs to issues
2024-10-01 15:50:12 +02:00
Davide De Rosa
bef1d36aa4
Fix annoying singleton warning
2024-10-01 15:45:53 +02:00
Davide
51dbc3f246
Add App Intents extension stub ( #655 )
...
Just the Xcode metadata, no actual content.
2024-10-01 10:17:20 +02:00
Davide De Rosa
087f177bd7
Omit storage section in release
2024-10-01 09:57:45 +02:00
Davide De Rosa
2191d2c946
Update library
2024-10-01 08:04:42 +02:00
Davide De Rosa
635708695e
Retain last used profile beyond disconnection
...
Fixes #650
Fixes #651
2024-10-01 00:08:36 +02:00
Davide De Rosa
51cb1d2d38
Fix library about previous commit
2024-09-30 21:08:45 +02:00
Davide
4b1f6e547b
Fix some on-demand behavior ( #646 )
...
Fixes #644
Fixes #645
2024-09-30 19:35:41 +02:00
Davide De Rosa
3f60dee9a2
Add missing Info.plist document key
2024-09-30 19:00:09 +02:00
Davide De Rosa
cf3fe7449e
Fix missing CFBundleTypeName
2024-09-30 18:08:29 +02:00
Davide
0e4dd086ef
Import profiles with on-demand disabled ( #641 )
...
Make it friendly to Shortcuts automation by default.
2024-09-30 17:40:24 +02:00
Davide
aead866275
Open app with multiple files ( #640 )
...
onOpenURL cannot handle multiple URLs on macOS, whereas
NSApplicationDelegate can.
Fixes #637
2024-09-30 17:22:16 +02:00
Davide
4877c2bd20
Restrict paywall to on-demand rules ( #639 )
...
Rather than whole module.
Closes #638
2024-09-30 15:56:32 +02:00
Davide
a9fa6a2f62
Maintain one configuration per profile ( #636 )
...
Helps with automation. Install the VPN configuration before persisting a
profile, so that the 1:1 reference with OS settings is maintained.
Likewise, uninstall the VPN configuration after removing a profile.
This before-save hook also resolves a problem with multiple imports,
where multiple VPN permission alerts coalesce if no VPN configuration is
installed. Now the first import waits for the permission synchronously.
Fixes #618
2024-09-30 14:56:20 +02:00
Davide
a29495a69c
Decouple Constants from BundleConfiguration ( #635 )
...
Fixes #619
2024-09-28 19:05:47 +02:00
Davide
28a2017da2
Confirm quit on macOS ( #634 )
...
To do so, must prevent window from closing.
Fixes #223
2024-09-28 17:58:48 +02:00
Davide
5deb8ec763
Prepare for macOS settings ( #629 )
2024-09-28 12:47:33 +02:00
Davide De Rosa
c0234b07a8
Fix missing Window on iOS
...
Broken by 9e6e59276b
2024-09-28 11:56:35 +02:00
Davide
9e6e59276b
Associate and handle imported files ( #628 )
2024-09-28 11:43:57 +02:00
Davide
95c09f4353
Prefix group ID with team ID on macOS ( #626 )
...
Fixes #624
2024-09-28 11:13:32 +02:00
Davide
989886c434
Fix description of parsing errors on import ( #623 )
...
Fixes #607
2024-09-28 00:01:01 +02:00
Davide
fbc6ece59d
Reorganize library into AppUI ( #621 )
...
Closes #611
2024-09-26 23:13:55 +02:00
Davide
4124ff5cae
Lock app with FaceID ( #609 )
...
Restore feature as-is from v2.
Closes #606
2024-09-25 19:32:07 +02:00
Davide
752dc6229f
Associate with ovpn/conf/zip files ( #605 )
...
Closes #604
2024-09-25 18:14:26 +02:00
Davide
a665670cf7
Add job for public beta deployment ( #600 )
...
Closes #599
2024-09-24 11:17:52 +02:00
Davide
6cc86e8668
Import v3 code ( #597 )
...
Closes #565
2024-09-23 15:02:26 +02:00
Davide De Rosa
6bfda3487b
Attempt release
2024-09-22 16:29:08 +02:00
Davide De Rosa
ea4028d33c
Attempt release
2024-09-22 16:20:20 +02:00
Davide De Rosa
d1d66dcbb3
Attempt release
2024-09-22 16:16:26 +02:00
Davide De Rosa
a98cedfd7d
Attempt release
2024-09-22 16:02:40 +02:00
Davide De Rosa
1a6c5fd303
Attempt release
2024-09-22 15:58:52 +02:00
Davide De Rosa
10cfc8e54a
Attempt release
2024-09-22 15:55:50 +02:00
Davide De Rosa
9e2b757ec5
Attempt release
2024-09-22 15:43:34 +02:00
Davide De Rosa
5587b9902a
Allow deletion of TV profiles
...
Fixes #480
2024-09-22 15:41:53 +02:00
Davide De Rosa
18b933d36e
Respect global macOS accent ( #490 )
2024-02-03 11:52:29 +01:00
Davide De Rosa
7f5b84c72b
Override profile list selection color ( #486 )
...
Both List and Toggle use accent color for their tint. Instead:
- Set grayish .tint on List to customize selection color
- Retain global accent in VPNToggle
Fixes #458
2024-01-27 15:59:40 +01:00
Davide De Rosa
7b30d48ea4
Bump version
2024-01-20 00:21:14 +01:00
Davide De Rosa
24b08c4b50
Update restricted profile except expiration ( #481 )
...
TV profiles were not updated until expiration.
2024-01-19 08:39:38 +01:00
Davide De Rosa
e3f4443cc0
Attempt release
2024-01-19 00:07:12 +01:00
Davide De Rosa
5fe9d7405f
Attempt release
2024-01-14 15:14:42 +01:00
Davide De Rosa
64d1131fdd
Update copyright
...
Closes #473
2024-01-14 14:36:55 +01:00
Davide De Rosa
cdd33c881d
Attempt release
2024-01-14 14:04:39 +01:00
Davide De Rosa
0299466a8f
Unintended sensitive data in issue reports ( #471 )
2024-01-14 14:01:54 +01:00
Davide De Rosa
ea0fd51362
Attempt release
2024-01-11 18:18:23 +01:00
Davide De Rosa
4b909ebf8a
Attempt release
2024-01-11 17:52:31 +01:00
Davide De Rosa
3fb521a584
Split Apple TV purchase ( #467 )
...
Full version features were listed when purchasing the Apple TV feature,
and this was very misleading.
2024-01-11 17:52:05 +01:00
Davide De Rosa
917e712510
Attempt release
2024-01-11 16:47:40 +01:00
Davide De Rosa
e21e11b022
Rework how purchasable products are presented ( #465 )
...
Fixes #464
2024-01-11 16:46:52 +01:00
Davide De Rosa
63cbf39a8a
Attempt release
2024-01-11 00:16:47 +01:00
Davide De Rosa
328e2bafd6
Attempt release
2024-01-11 00:15:49 +01:00
Davide De Rosa
92d5008d1c
Drop trailing dot in some strings
2024-01-10 20:14:20 +01:00
Davide De Rosa
e8d8f27750
Attempt release
2024-01-10 18:51:03 +01:00
Davide De Rosa
2e989fd127
Rewrite wrong refund logic ( #462 )
...
So, if both a purchase and a refund of feature `.foobar` existed,
whatever the dates, the purchase was incorrectly discarded.
Fixes #459 , fixes #461
2024-01-10 18:48:38 +01:00
Davide De Rosa
821d4c79f4
Attempt release
2024-01-09 18:18:53 +01:00
Davide De Rosa
bf4dc6c920
Add tvOS build to beta/review CI jobs ( #453 )
...
_Should_ work out of the box.
Closes #450
2024-01-07 12:17:46 +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
60ed10e45e
Attempt release
2024-01-06 00:10:22 +01:00
Davide De Rosa
87804e89d8
Attempt release
2024-01-06 00:07:26 +01:00
Davide De Rosa
978c74ad6e
Attempt release
2024-01-05 23:55:19 +01:00
Davide De Rosa
4836bbac18
Restore proper OpenVPN connectivity ( #447 )
2024-01-05 23:54:16 +01:00
Dmytro Chyrkin
0b7b82129b
fix: added missing uk translation ( #445 )
...
Co-authored-by: Davide De Rosa <keeshux@gmail.com>
2024-01-05 16:38:16 +01:00
Davide De Rosa
7295249cb8
Attempt release
2023-12-31 01:24:28 +01:00
Davide De Rosa
5c5697762b
Add minimal TV app
...
Closes #315
2023-12-31 01:21:38 +01:00
Davide De Rosa
47c6b02c4d
Use FeatureModel in paywall ( #442 )
...
Rather than anonymous tuples.
2023-12-23 12:38:00 +01:00
Davide De Rosa
7d7aaa8b0c
Update paywall ( #441 )
...
Group features and drop platform purchases.
2023-12-23 12:10:34 +01:00
Davide De Rosa
239d3e6853
Fix in-app eligibility in VPN ( #440 )
2023-12-23 07:59:23 +01:00
Davide De Rosa
4c4876c5f7
Incorrect handling of receipt purchases ( #439 )
2023-12-21 08:54:00 +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
2d57c4ad8a
Sendable warning in credits view ( #433 )
...
Extension of a View apparently does not run on MainActor.
2023-12-17 07:47:45 +01:00
Davide De Rosa
5cfa32dbb7
Add data count to WireGuard connections ( #430 )
...
Closes #312
2023-12-14 22:18:20 +01:00
Davide De Rosa
4a92acbeb9
Attempt release
2023-10-14 19:50:24 +02:00
Davide De Rosa
7ceec3f322
Bump event count for review
2023-10-14 19:48:52 +02:00
Davide De Rosa
cc6c8a90d7
Bump version
...
Drop stale version in project.
2023-10-14 16:06:17 +02:00
Davide De Rosa
2596622a43
Attempt release
2023-10-10 23:01:19 +02:00
Davide De Rosa
12c08c132c
Update metadata and translations ( #365 )
2023-10-10 23:00:19 +02:00
Davide De Rosa
7de000148f
Level up to strict Concurrency ( #361 )
...
Trigger and resolve some additional Concurrency issues.
2023-09-10 20:36:52 +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
27266a6d47
Fix stupid compile error
2023-09-10 18:40:24 +02:00
Davide De Rosa
d02da0bad8
Fill missing descriptions for some errors ( #359 )
...
Fixes #358
2023-09-10 17:15:40 +02:00
Davide De Rosa
9d72dc43a2
Attempt release
2023-09-10 11:21:59 +02:00
Davide De Rosa
f32c6f8fde
Retain persistence objects in manager ( #357 )
...
Relying on Core Data for context retention is fragile, better to keep a
reference of the *Persistence objects ourselves.
Also, remove any CloudKit reference from CoreContext.
2023-09-10 11:20:56 +02:00
Davide De Rosa
0b755c1c77
Attempt release
2023-09-10 10:35:22 +02:00
Davide De Rosa
0872c27fce
Move CloudKit logic to PersistenceManager ( #355 )
...
Observe updates rather than execute operations imperatively. Also refine
responsibilities of AppContext and CoreContext.
2023-09-10 10:34:42 +02:00
Davide De Rosa
c645f39254
Fix SandboxChecker actor ( #356 )
...
Mac function was still running on main actor. Only constrain to main
actor on public API.
2023-09-10 10:27:11 +02:00
Davide De Rosa
3891723356
Attempt release
2023-09-10 08:09:05 +02:00
Davide De Rosa
6b0a08a189
Attempt release
...
Fix sed syntax on Mac.
2023-09-10 01:08:07 +02:00
Davide De Rosa
a38e3fed7a
Look up TestFlight flag asynchronously ( #352 )
...
Xcode has been quite obnoxious recently with this issue. Start the app
with the most restrictive type (.undefined), relax restrictions after
looking up sandbox and app receipt.
2023-09-10 00:52:39 +02:00
Davide De Rosa
33d9e05907
Drop < 2.2.0 key after migration ( #353 )
...
Otherwise, iCloud is being constantly reinforced to true.
2023-09-10 00:50:12 +02:00
Davide De Rosa
791b6be7d5
Allow erasing remote iCloud store ( #351 )
...
Convenient for those with privacy concerns.
2023-09-09 21:52:32 +02:00
Davide De Rosa
a4ca8cc996
Support iCloud sync as an option ( #350 )
...
Sync will be enabled on upgrade for consistency with current behavior,
and disabled for new installs.
Fixes #227
2023-09-09 20:29:04 +02:00
Davide De Rosa
2d046181b0
Only migrate if current version is higher ( #349 )
2023-09-08 22:45:04 +02:00
Davide De Rosa
a3cfde1950
Drop v2 migrations ( #348 )
2023-09-08 22:18:41 +02:00
Davide De Rosa
0f84859354
Do some housekeeping ( #347 )
...
- Be consistent with on-demand rules
- Use shortcut reduce(into:)
2023-09-08 16:20:42 +02:00
Davide De Rosa
c80d17ceb4
Fix .locksInBackground AppStorage key ( #346 )
2023-09-08 16:20:24 +02:00
Davide De Rosa
b4b2db176c
Fix .sink retain cycles ( #345 )
2023-09-08 16:20:01 +02:00
Davide De Rosa
f159252e24
Replicate Diagnostics in Settings ( #342 )
...
As the only link to "Diagnostics" appears in the profile screen, when
there are no profiles the screen is unreachable. Replicate the same
entry in Settings.
2023-08-06 20:27:16 +02:00