Commit Graph

3271 Commits

Author SHA1 Message Date
Davide
cf2dc4178d
Bump version 2025-02-18 09:21:21 +01:00
Davide
4e1ba7727d
iOS: Set appearance the earliest
Fix slight gap on launch.
2025-02-18 09:17:54 +01:00
Davide
5c92120c6a
Add script to push release 2025-02-18 09:17:38 +01:00
Davide
ae3a786ef5
Bump version 2025-02-18 08:56:57 +01:00
Davide
f033d21301
iOS: Fix appearance not applied on app launch 2025-02-18 08:52:19 +01:00
Davide
c9d21e5f21
Bump version 2025-02-18 08:28:36 +01:00
Davide
2137dd5a7e
Bump version 2025-02-18 08:26:37 +01:00
Davide
8caf92a48f
Describe complete products better in paywall (#1201)
- Append the complete list of features
- Specify that future features are included in subscriptions/lifetime
2025-02-18 08:24:48 +01:00
Davide
3bd1707b0f
OpenVPN: Fix presentation of provider remotes (#1202) 2025-02-18 08:24:34 +01:00
Davide
f6b39ff90d
Bump version 2025-02-18 01:16:59 +01:00
Davide
42a1861029
Apply system appearance via UIKit/AppKit (#1200)
SwiftUI implementation is fragile, system appearance with
`preferredColorScheme(nil)` is buggy.

Instead, rely on:

- iOS: UIKit → UIWindow.overrideUserInterfaceStyle
- macOS: AppKit → NSApp.appearance

Amends #1077 

Fixes #1199
2025-02-18 01:16:08 +01:00
Davide
637956610c
Update screenshots 2025-02-17 23:27:05 +01:00
Davide
821c394876
Fix remote import disabled in UI tests 2025-02-17 23:15:56 +01:00
Davide
3b168b6c62
Revert "Overwrite screenshots in deliver"
Do not submit screenshots on review, do it manually.

This reverts commit d032d2a60c.
2025-02-17 23:09:04 +01:00
Davide
c22a5e8043
Bump version 2025-02-17 22:51:13 +01:00
Davide
b96ec73449
Add translations 2025-02-17 22:50:29 +01:00
Davide
0c49c02e5a
Bump version 2025-02-17 22:42:26 +01:00
Davide
2142a77fe7
Fix empty products condition 2025-02-17 21:39:27 +01:00
Davide
c8f25afb95
Report "DNS failed" when DNS is the culprit
Fixes #1100
2025-02-17 21:03:37 +01:00
Davide
4020ffa281
Override light/dark appearance (#1198)
Fixes #1077
2025-02-17 20:17:30 +01:00
Davide
06161ffaeb
Drop redundant await 2025-02-17 19:17:45 +01:00
Davide
71f6153471
Drop fake macOS EditButton 2025-02-17 17:19:43 +01:00
Davide
a402097c9b
Use pending color when inactive due to on-demand (#1191) 2025-02-17 15:00:14 +01:00
Davide
7f47db5777
Relist "Forever" purchase (#1189)
Only subscriptions were being offered.

Also, fix "Apple TV" not properly suggested on macOS when iCloud is
required.
2025-02-17 13:11:19 +01:00
Davide
0681d7c801
OpenVPN: Edit remotes in place (#1188)
Fixes #1172
2025-02-17 12:47:43 +01:00
Davide
d032d2a60c
Overwrite screenshots in deliver 2025-02-17 09:43:42 +01:00
Davide
f84044f82b
Fix cut top area in grid layout
Fixes #1127
2025-02-15 19:26:51 +01:00
Davide
0d411a390f
Fix launch screen background in dark mode 2025-02-15 08:06:30 +01:00
Davide
0c154bb098
Update API 2025-02-14 15:01:03 +01:00
Davide
d8a1053dfd
Bump version 2025-02-13 16:14:28 +01:00
Davide
959555afb1
Regroup module extensions
Move OpenVPNView.Subroute to OpenVPNModule for explicit prefix.
2025-02-13 16:14:18 +01:00
Davide
8e5141f03e
Drop unused and conflicting PrimaryColor 2025-02-13 16:14:06 +01:00
Davide
c5a86505b6
Bump version 2025-02-13 15:58:00 +01:00
Davide
3d652a2c6e
Restore subscriptions in paywall (#1171)
Make sure to only suggest them to free users.
2025-02-13 10:18:32 +01:00
Davide
8491ca8eed
Update screenshots 2025-02-13 09:33:05 +01:00
Davide
565d6d0189
Use comma to separate country and region 2025-02-13 09:23:12 +01:00
Davide
be524aaf68
iOS: Add dark and tinted icons (#1170)
For consistency:

- Restore v2 accent
- Adjust background in launch, lock, and version screens

Fixes #603
2025-02-13 09:17:55 +01:00
Davide
c5912c89b6
Use a single navigation destination for ProfileEditor (#1169)
The recursive modifiers are overkill. Instead:

- Wrap module routes into a static route type (ProfileRoute)
- Iterate over ModuleDestinationProviding looking for the module that
handles the route
- Return destination views from that module

This way, only `navigationDestination(for: ProfileRoute.self)` is needed
on the parent.
2025-02-13 08:30:26 +01:00
Davide
afee4037e2
Fix UI tests for screenshots (#1168)
Outdated after reworking the UI. Some fixes were also needed because:

- [WireGuardModule requires a
configuration](https://github.com/passepartoutvpn/passepartout/pull/1164)
- [OpenVPNModule is interactive when no credentials are
set](https://github.com/passepartoutvpn/passepartout/pull/1104)
- Mock profile had a wrong category ("" → "default")
2025-02-13 08:20:56 +01:00
Davide
e4333965bd
macOS: Fix broken subroute navigation in modules 2025-02-12 15:58:23 +01:00
Davide
ecf37558ec
Revert provider name in shortcuts 2025-02-12 15:56:43 +01:00
Davide
e6edeae3d4
Hide interactive section on tvOS 2025-02-12 15:56:43 +01:00
Davide
0f108fa83d
Add provider name in shortcuts 2025-02-12 14:36:48 +01:00
Davide
205a005f95
Bump version 2025-02-12 14:09:31 +01:00
Davide
969b844eca
Drop unused preferences 2025-02-12 14:07:46 +01:00
Davide
9974ca6667
OpenVPN: Add shortcuts in main profile view (#1167)
Some useful shortcuts can be replicated in the main profile screen.

Requirements:

- Modules implementing `ModuleDestinationProviding` return a
`navigationDestination()` to navigate to module-specific routes (e.g.
OpenVPN credentials). This was done in #1166
- In order to navigate to the module routes from the main
`ProfileCoordinator` view, it must have a `navigationDestination()`
attached for each of the modules, without knowing the concrete route
types

Here is how this is accomplished in a generic fashion:

1. `ProfileEditor.navigationDestinations()` iterates over each
`ModuleDestinationProviding` to return a list of
`navigationDestination()`, [implemented as a
`ViewModifier`](https://github.com/passepartoutvpn/passepartout/pull/1167/files#diff-11dfcbc4f6c173b133fe8eb4c54710f2ac7161cd38126735c655a8c56a62b8c0R29)
2. With this in place, module routes can be pushed with a
`NavigationLink` from the main profile view
3. Lastly, in the profile view, we add a section for each module
implementing `ModuleShortcutsProviding`, where the module may return a
list of convenient shortcuts, e.g. in the form of the `NavigationLink`
in 2

Start with some OpenVPN entries:

- Provider server
- Credentials (if needed)

Some refactoring was necessary:

- Load ModulePreferences in the module destinations via
ModulePreferencesModifier, rather than in the module view (may revisit
later)
- Due to the above, move "Remote endpoints" from "Configuration" to a
separate destination (also less messy)
- Group complex module views (OpenVPN/WireGuard) into folders
- Reuse `ProviderServerRow` for consistency across modules/shortcuts
2025-02-12 14:06:23 +01:00
Davide
67bfe3c53c
Fix on-demand paywall on .any policy 2025-02-12 11:42:42 +01:00
Davide
afe66dad34
Omit included features from donation products 2025-02-12 11:42:42 +01:00
Davide
717a3492bf
Fix primary/accent colors
- Version screen
- Lock screen
2025-02-12 11:42:35 +01:00
Davide
5059423bf3
Move module destinations to standalone entities (#1166)
Decouple destinations from the module view so that one can navigate to
them from any point of the app. Affects only OpenVPN for now.

Preparation for "profile shortcuts".
2025-02-12 11:03:14 +01:00