Commit Graph

2860 Commits

Author SHA1 Message Date
Davide
87c7d63678
Redo provider managers lifecycle (#732)
Update library with more efficient choices for interacting with the
providers API.

Fixes #731
2024-10-13 11:36:34 +02:00
Davide
a5d4f6aee5
Unify library iOS target to 15 2024-10-12 15:51:00 +02:00
Davide
9769a151db
Provider configuration is persisted into module (#730)
When e.g. a OpenVPNModule is created without a configuration and a
provider/server is then selected, the ProfileProcessor class serializes
the profile with the provider configuration injected. When the module is
re-edited, we can see the provider server configuration in the module
after selecting "None" as provider.

Instead, validate the provider modules in ProfileProcessor, but generate the provider configuration on the fly in the tunnel.
2024-10-12 13:19:46 +02:00
Davide
2517c4b39b
Revert CHANGELOG on cancel 2024-10-11 19:54:42 +02:00
Davide
8c76f33d48
Fix copy UUID in correct format 2024-10-11 19:45:58 +02:00
Davide
208198c3f8
Create OpenVPN module without a configuration (#729)
Update library to allow optional VPN configurations. This in turn allows
a module to be used with a provider, where the configuration is
generated on the fly.
2024-10-11 19:11:42 +02:00
Davide
c96e7e9d6e
Define NE configuration title format in Constants 2024-10-11 17:57:31 +02:00
Davide
619ff807fd
Drop unused code in AppContext 2024-10-11 17:53:41 +02:00
Davide
f2a141a189
Purge stale NetworkExtension/keychain data (#728)
- [x] NE managers were not deleted when unable to be decoded to a
profile
- [x] Keychain items were not deleted on profile removal
- [x] Perform clean-up on app launch
- [x] Perform clean-up on app active

Prematurely merged as #727 then reverted, this is the complete PR.
2024-10-11 17:48:37 +02:00
Davide
1aa393ee02
Move feature mapping to a single file (#726)
Do not scatter sensitive data.
2024-10-11 04:17:17 +02:00
Davide
8f6192c2b6
Fix extra team prefix in keychain group (#721)
Team ID already included in .xcconfig

Fixes #720
2024-10-11 03:45:20 +02:00
Davide
9449a02b77
Add meaningful prefix to keychain entries (#724)
Hard to find in keychain, add "Passepartout: " prefix to profile name.
2024-10-11 00:31:32 +02:00
Davide
a0b9529870
Delete keychain entry on profile deletion 2024-10-11 00:25:26 +02:00
Davide
da87ca698a
Add initial support for providers (#723)
Initial integration of providers via API:

- Generic views and modifiers for provider/server selection
- Add in OpenVPNView
- Prepare in WireGuardView

Also:

- Introduce ProfileProcessor, move IAP processing there
- Move .asModuleView() to ModuleViewModifier for proper animation
- Use .themeModal() rather than .sheet()
2024-10-11 00:24:06 +02:00
Davide
5c91eb4bf1
Review Constants
- Move container names out of Bundle
- Add API web services timeout
2024-10-10 19:29:38 +02:00
Davide De Rosa
6d6eef43c9
Rename 2024-10-10 16:24:09 +02:00
Davide
d589f1162d
Reorganize shared objects (#716)
Mainly:

- Aggregate shared/mock entities in less scattered files
- Review package dependencies

Also:

- Decouple ProfileRepository from Core Data Repository in UtilsLibrary
(filters done by ProfileManager)
2024-10-10 16:20:36 +02:00
Davide
0aac8cd9f3
In-place NetworkExtension profiles (#715)
Profiles are being maintained in two places:

- Core Data
- NetworkExtension

Core Data is redundant for local profiles, so make NetworkExtension the
only source of truth.
2024-10-10 16:03:02 +02:00
Davide
6d479a7059
Render multiple translators in Credits (#701) 2024-10-09 21:42:42 +02:00
Davide
df2fc54044
Render profile UUID as quartets (#700)
Easier to read.
2024-10-09 21:40:56 +02:00
Davide De Rosa
635700c195
Revisit OpenVPN view
- Move pull section below
- Add IPv6 to preview
2024-10-06 19:22:45 +02:00
Davide De Rosa
7078e5c435
Unrestrict previews 2024-10-06 19:22:44 +02:00
Davide
504bcbdbd2
Refactor and move entities around (#698)
Do some housekeeping in AppLibrary/AppUI.
2024-10-06 19:19:16 +02:00
Davide
f4505d0efd
Refactor ProfileEditor to leverage ProfileType (#689)
Closes #688
2024-10-06 13:41:02 +02:00
Davide De Rosa
17f1331de0
Bump version 2024-10-05 12:29:32 +02:00
Davide De Rosa
8b5096ab69
Make copiable text multiline by default 2024-10-05 00:17:08 +02:00
Davide De Rosa
d2f44d3ee2
Fix new profiles not being saved
Broken in #685
2024-10-04 21:28:56 +02:00
Davide De Rosa
38aa83760f
Reword on-demand 2024-10-04 21:06:03 +02:00
Davide
f66193cf78
Several fixes in ProfileManager (#685)
- [x] Search not accounted for when reloading profiles
- [x] Remote profile being saved twice
- [x] Add some logging
2024-10-04 20:58:11 +02:00
Davide
d14f22d4a1
Use gear icon for iOS About (#684)
Resolve a discrepancy between iPhone and iPad. Leave the info icon on
macOS, where Settings are separate.
2024-10-04 18:27:09 +02:00
Davide De Rosa
a306d61a84
Bump version 2024-10-04 15:54:41 +02:00
Davide De Rosa
671dc7f77c
Do not import remote profiles on first load 2024-10-04 15:50:45 +02:00
Davide De Rosa
eea5486563
Fix crash on "Report issue" 2024-10-04 15:48:13 +02:00
Davide De Rosa
1b5e123fa6
Use .compact style in list based on size class 2024-10-04 11:39:50 +02:00
Davide De Rosa
e75c264258
Go multiline rather than truncate copiable
Fixes #682
2024-10-04 10:40:18 +02:00
Davide De Rosa
71149e87d3
TODO -> FIXME 2024-10-04 10:30:14 +02:00
Davide De Rosa
c461fe27be
Bump version 2024-10-04 10:02:43 +02:00
Davide
5fb6f4f4d2
Refactor static functions/entities in Library (#679)
Reduce the impact of hidden dependencies on BundleConfiguration and
Constants.shared

Fixes #656
2024-10-04 09:58:42 +02:00
Davide De Rosa
4b0bc7f064
Reword confirm quit 2024-10-04 02:59:03 +02:00
Davide De Rosa
00bf415056
Move modules tip to +/- 2024-10-04 02:57:09 +02:00
Davide De Rosa
7070661c3b
Group row components and make icons bigger
Fixes #678
2024-10-04 02:52:02 +02:00
Davide De Rosa
fe8fa93230
Fix SwiftGen warning 2024-10-04 02:44:19 +02:00
Davide De Rosa
2d32e099b7
Rename repositories 2024-10-04 02:43:18 +02:00
Davide
edb4d127e9
Delete remote profiles on local removal (#677)
Remote profiles were never deleted. Now, when removing a profile:

- The profile is deleted from the local store
- The profile is deleted from the remote store
- Other synced devices receive the update and delete the profile from
their remote store
- However, they retain a local copy of the profile
- The copy doesn't appear as "Shared on iCloud" anymore
2024-10-04 01:26:52 +02:00
Davide De Rosa
27b7e62376
Add hint about iCloud sharing 2024-10-04 00:52:25 +02:00
Davide De Rosa
b660c499af
Use static 'Profile' in editor title 2024-10-04 00:47:28 +02:00
Davide De Rosa
07703fda9c
Fix some things about IP module
- Reword module description to "Routing"
- Make route modal title .inline
2024-10-04 00:44:31 +02:00
Davide De Rosa
ca03d057fc
Fix iCloud icon and move to the right 2024-10-04 00:39:41 +02:00
Davide De Rosa
fc834ab367
Replace Section with .themeSection
Closes #676
2024-10-03 23:32:31 +02:00
Davide
211b3b83d3
Erase iCloud store from Settings (#675)
Also, fix SwiftUI not refreshing when remote profiles are updated. There
was no objectWillChange nor Published around
ProfileManager.allRemoteProfiles, and ProfileRowView was not treating it
as ObservedObject.

Closes #673
2024-10-03 23:25:51 +02:00