Davide De Rosa
e17224e61e
Refactor stale library entities
...
- Move VPNConfiguration* to VPN implementation
- Drop old model protocols
2023-03-17 16:53:13 +01:00
Davide De Rosa
2e10aab039
Extend authentication methods ( #259 )
...
* Add profile authentication method
- Persistent (default, fallback)
- Interactive (may expire through reconnections)
- TOTP (seed-based) - currently disabled
* Disable on-demand if login is interactive
* Present interactive prompt on VPN toggle
2023-03-17 16:49:35 +01:00
Davide De Rosa
44ccd21536
Fetch full profiles from Core Data ( #258 )
...
* Fetch full profiles
* Manage full profiles in organizer
2023-03-16 16:49:09 +01:00
Davide De Rosa
092d4f5de2
Drop return in one-line functions
2022-09-04 20:30:55 +02:00
Davide De Rosa
4c4b3ee0c9
Revert to concrete-only managers
...
Abstraction was overcomplicated. Strategy pattern is enough.
2022-09-03 12:47:40 +02:00
Davide De Rosa
92ffc382cb
Reconnect VPN without disabling it
...
Retain on-demand flag to avoid leaks during reconnection.
2022-08-05 07:40:43 +02:00
Davide De Rosa
9458c4f3a3
Fix server description and sorting
...
- Name (countries, area)
- Index
- Tags
Also use short description in menu (without country prefix).
2022-07-16 17:39:42 +02:00
Davide De Rosa
3f4b55a003
Implement Mac bundle with system menu
...
Use bundle as a means to provide Mac APIs to Catalyst app.
In order to cross the @objc wall set by the Mac Bundle mechanism,
Swift structures cannot be used directly and must be bridged
through ObjC facades.
Create NSMenu in MVVM style and install it on app launch. Make
sure to do it in AppDelegate.applicationDidFinishLaunching(),
because doing it as early as in PassepartoutApp.init() would
crash Mac code.
Use .representedObject to own view models.
With menu in place, app can be sent to background when main window
is closed. Requires multiple documents support for app not to die
instantly.
2022-07-16 17:39:42 +02:00
Davide De Rosa
7d5f3e63c8
Add 'didUpdate' subjects in managers
...
objectWillChange may not work outside SwiftUI.
- ProfileManager.didUpdateProfiles
- ProviderManager.didUpdateProviders
2022-07-15 08:59:29 +02:00
Davide De Rosa
7771b50b56
Add ProfileManager methods to return full profiles
2022-07-14 17:07:30 +02:00
Davide De Rosa
9d9dc2b2f6
Rename activeProfileId publisher for consistency
2022-07-14 17:07:30 +02:00
Davide De Rosa
0a2d1e9d37
Mitigate fatalError() in properties, fail gracefully
...
Do not trigger fatalError() on properties too much because
SwiftUI may read them at any unpredictable time.
2022-07-08 20:01:53 +02:00
Davide De Rosa
9a8477225e
Refactor library into domain + impl
2022-06-23 23:31:01 +02:00