Davide De Rosa
64d1131fdd
Update copyright
...
Closes #473
2024-01-14 14:36:55 +01:00
Davide De Rosa
5c5697762b
Add minimal TV app
...
Closes #315
2023-12-31 01:21:38 +01: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
1c3cbe02e5
Improve OpenVPN Endpoint UX ( #332 )
...
- Make selection linear by address
- Do not hide endpoints when automatic, show disabled
- Suggest manual endpoint required
- Pre-expand selected endpoint address
- Do not dismiss on selection, because selected value is not visible in
ProfileView
2023-07-22 17:10:16 +02:00
Davide De Rosa
4173c7aa6c
Externalize complex bindings ( #329 )
...
Some bindings are too convoluted, move them out of initializers.
2023-07-17 21:44:18 +02:00
Davide De Rosa
98e5e4cdde
Share common protocols across localized strings ( #324 )
2023-07-05 17:18:33 +02:00
Davide De Rosa
d7ebcb23ba
Split views into extensions ( #321 )
...
Nothing but moving code around to reorganize views into the following
sections (MARK):
- Properties/Body
- Subviews
- Actions
2023-07-03 16:54:43 +02:00
Davide De Rosa
b4ad8dea0d
Do some code clean up
...
- Use guard in validators
- Rename URL.openURL() to URL.open()
- Sort imports (SwiftLint)
- Drop unused VPNProtocolType.allTypes
- Drop unused imports
2023-05-21 11:48:03 +02:00
Davide De Rosa
1e0d522010
Drop #available condition on iOS 15 ( #274 )
2023-03-25 17:05:53 +01:00
Davide De Rosa
fbd32d8b26
Fine-tune SwiftLint ( #265 )
2023-03-19 14:41:53 +01:00
Davide De Rosa
17ae9793df
Randomize provider server ( #263 )
...
* Pick random server within location
* Add toggle to provider section in profile
2023-03-19 08:19:32 +01:00
Davide De Rosa
f06f097f27
Add SwiftLint phase ( #262 )
2023-03-17 21:55:47 +01:00
Davide De Rosa
37354d1b87
Update copyright
2023-03-17 16:56:19 +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
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
9a8477225e
Refactor library into domain + impl
2022-06-23 23:31:01 +02:00
Davide De Rosa
14b42fbea5
Persist managers state to generic key-value store
...
Move all persisted state out of AppManager to where it really
belongs. To do that, inject a shared KeyValueStore object into
managers that need to persist part of their state in a strongly
typed manner.
Below are persisted states:
- PersistenceManager
- persistenceAuthor
- ProfileManager
- activeProfileId
- UpgradeManager (formerly AppManager)
- didMigrateToV2 (migrate former value)
- VPNManager
- tunnelLogFormat
- masksPrivateData
A similar approach is used for app-specific preferences, by using
a strongly typed enum (AppPreference) together with SwiftUI
@AppStorage property wrapper.
Worth moving logging logic into a specific LogManager.
Finally, drop any former view dependency on AppManager, as states
are now accessed through specific managers.
2022-06-16 13:42:37 +02:00
Davide De Rosa
48d499569b
Use block versions of Section header/footer
2022-05-01 19:48:24 +02:00
Davide De Rosa
4b8cff1bb3
Disable padding around LongContentView
...
It should actually be an inset. Do it later.
2022-04-26 21:39:21 +02:00
Davide De Rosa
6aee88e69a
Refactor theme styles
...
- Hide colors behind styles
- Add "Style" suffix
2022-04-23 11:48:43 +02:00
Davide De Rosa
992178bcd6
Move toolbar content inline
...
For consistency, can search with "toolbar {".
2022-04-21 16:24:08 +02:00
Davide De Rosa
23d184ae08
Restore pre-scrolling in provider location
...
Artifacts are caused by translucent navigation bar, also in other
views. Will fix later.
2022-04-21 16:03:40 +02:00
Davide De Rosa
bf65f76401
Merge project into iOS + macOS
...
Share views with both platforms initially. Will split specific
views step by step.
2022-04-19 16:14:23 +02:00