Commit Graph

2797 Commits

Author SHA1 Message Date
Davide De Rosa
f1aa192c9c Make App/Core iOS/Catalyst only
- Drop macOS target from Package.swift

- Drop @available attributes
    - UI idiom
    - Intents API
    - Swipe actions in ProviderLocationView

- Review os(iOS)
    - DebugLog, append idiom to tell Mac from iPad

- Drop redundant canImport
2022-04-19 15:56:41 +02:00
Davide De Rosa
a6c7305528 Hack around missing .ethernet on Catalyst
Enum seems to be mapped correctly. Make sure matching works on
real device though.

Also noticed that @available on iOS implies availability on
Catalyst as well, making it ineffective e.g. in this case, where
mobile and ethernet network matching should be only available on
iOS and macOS respectively.
2022-04-19 15:56:41 +02:00
Davide De Rosa
2af28c158d Merge 'Views' folder 2022-04-19 10:12:52 +02:00
Davide De Rosa
20ec8d472f Add close button to modals
Swipe down only works on iOS portrait and iPadOS.
2022-04-19 10:10:08 +02:00
Davide De Rosa
991a283de9 Drop black title from VersionView
Clashes with dark background.
2022-04-19 09:52:23 +02:00
Davide De Rosa
12c6f40416 Remove ScrollViewReader preventing favorites reload
Content inside ScrollViewReader does not seem to be reload on
favorites toggle, for reasons I will review later. No big deal as
scrolling was already disabled.
2022-04-19 09:16:04 +02:00
Davide De Rosa
ab0a2c8cb4 Reuse provider availability idea from 5d85699 2022-04-19 09:03:41 +02:00
Davide De Rosa
480738d126 Make shortcuts contextual in ProfileView
- Add toolbar item

- Target current profile

- Only list relevant shortcuts to profile
2022-04-19 08:41:07 +02:00
Davide De Rosa
b1882dcf80 Preselect profile on NavigationLink appearance
More accurate than ForEach and maybe the only right place.
2022-04-19 08:39:34 +02:00
Davide De Rosa
5d85699ce4 Delete profile from Organizer
Swipe to delete. Address a couple things on iPad though:

1. Also check provider availability before showing view

fatalError hit on iPad when navigating from a ready provider
profile to a non-ready one. Similar to when navigating between
different VPN protocols.

2. Suppress assertion on deleted profile

Deleting current profile via swipe seems to re-render a new
NavigationLink with the deleted profile, which results in
loading a deleted profile and hitting the assertion. Not sure if
this is a programming error or a glitch in ForEach.
2022-04-19 08:38:10 +02:00
Davide De Rosa
18161ed1f1 Group Organizer modals into toolbar menus
- Drop status / navigation bars colors

- Restore large title on iPad

- Overlay organizer with "No profiles" when empty

- Uninstall VPN from ProfileView
2022-04-19 08:38:10 +02:00
Davide De Rosa
6533a6beae Disable pre-scrolling in location
May reveal artifacts in translucent navigation bar.
2022-04-18 19:51:50 +02:00
Davide De Rosa
017182fe81 Rewrite ReloadingSection to be semantic only
Use Group instead of Section. Also fix elements not loading if
initially empty.
2022-04-18 19:51:28 +02:00
Davide De Rosa
f5c87d43c2 Better observe updates explicitly after init 2022-04-18 19:51:07 +02:00
Davide De Rosa
5cafd9794d Review a bit about duplicates handling
- Read profile(withId:) without fetcher

- Refine redundant log about duplicated profiles
2022-04-16 11:27:31 +02:00
Davide De Rosa
c0f105fedb Update network snapshot 2022-04-14 08:02:00 +02:00
Davide De Rosa
0db3e36bf4 Make network settings consistent
- Group DNS "Enabled" and protocol into configuration

- Make DNS servers / search domains optional

- Make proxy bypass domains optional

Also refine a comment about future on-demand.
2022-04-14 07:43:44 +02:00
Davide De Rosa
d5340b0457 Fix another import issue in TunnelKit 2022-04-13 22:57:00 +02:00
Davide De Rosa
14edc7491e Fix syntax -_- 2022-04-13 22:46:35 +02:00
Davide De Rosa
f064c02b04 Disable macOS in private beta for now 2022-04-13 22:45:08 +02:00
Davide De Rosa
dfebb60796 Fix an import issue in TunnelKit 2022-04-13 22:41:12 +02:00
Davide De Rosa
57a041ca7c Add manual workflow for private beta
Tolerate dirty repo (for tweaking Info.plist).

Should refactor later to reuse build tasks from release workflow
as local actions.
2022-04-13 22:28:00 +02:00
Davide De Rosa
2565b9f3d0 Lock network settings for builds >= 3000 2022-04-13 21:25:24 +02:00
Davide De Rosa
320513dd38 Dismiss paywall predictably with Binding<Bool> 2022-04-13 21:24:38 +02:00
Davide De Rosa
e7a5d82056 Restore purchases without refreshing receipt first
Any reason why I was doing that?

Also drop old ProductManager notification.
2022-04-13 21:24:09 +02:00
Davide De Rosa
a3202bb218 Refine again how proxy settings apply
Only set bypass domains if manual configuration.
2022-04-13 20:00:39 +02:00
Davide De Rosa
0849fe6cc7 Attempt beta release 2022-04-13 19:49:58 +02:00
Davide De Rosa
ad38ca5942 Skip bypass domains for proxy configured with PAC 2022-04-13 19:45:27 +02:00
Davide De Rosa
5874ce4b9d Attempt beta release 2022-04-13 19:40:18 +02:00
Davide De Rosa
addbc181fd Make proxy configuration a 3-state
- Manual: server, port
- PAC: set PAC URL
- Disabled

BEWARE: breaking change in Profile.
2022-04-13 19:38:36 +02:00
Davide De Rosa
9055fec394 Fix on-demand rules dropped completely
Must only ignore custom rules if ineligible.
2022-04-13 19:12:16 +02:00
Davide De Rosa
8026caa5ef Attempt beta release 2022-04-13 11:20:21 +02:00
Davide De Rosa
2273ebd8b5 Do not log duplicates renamed if there is none 2022-04-13 11:16:38 +02:00
Davide De Rosa
3a3d2460a8 Fix migration not recovering auth-user-pass option
Was looking up new UUID, not migrated one.
2022-04-13 11:13:38 +02:00
Davide De Rosa
4a047ece58 Fix OpenVPN endpoint view not handling UDP4/TCP4 2022-04-13 11:10:33 +02:00
Davide De Rosa
c7f7dd89a1 Attempt beta release
Update script.
2022-04-13 10:16:43 +02:00
Davide De Rosa
56fcee98b4 Handle long fields in OpenVPN configuration
- Use long content for IP settings

- Copy on tap DNS/proxy settings
2022-04-13 10:13:25 +02:00
Davide De Rosa
1532e8808b [ci skip] Address CI and ASC validation issues
- Skip tests until fixed wg-go issue

- Add golang step

- Set "Apple Development" at project level

- Set Catalyst platform for gym

- Drop TARGET env variable clashing with WireGuardKit

- Disable SwiftGen script phase

- Fix TunnelKit segfault on archive

- Xcode 13.2.1 compatibility
    Fix some issues with @MainActor
    Use #available instead of #unavailable

- Raise timeout from 10 to 15 minutes

- Update beta description

- Tunnel bundle ids cannot have periods

- CFBundleDisplayName required in tunnels
2022-04-13 10:00:29 +02:00
Davide De Rosa
0a2de33f0e [ci skip] Remove long-unused CocoaPods gems 2022-04-12 18:44:59 +02:00
Davide De Rosa
b62490b88b Disable tests failing due to WireGuardKit 2022-04-12 18:41:58 +02:00
Davide De Rosa
83a3c5b574 Fix missing registered mark in WireGuard 2022-04-12 18:35:34 +02:00
Davide De Rosa
e72e3ae898 Adjust README to new updates
- WireGuard
- iCloud
- Requirements
2022-04-12 18:33:32 +02:00
Davide De Rosa
926d73fc8a Refine CHANGELOG with issues references 2022-04-12 18:33:27 +02:00
Davide De Rosa
e663dbff11 Fix inverse condition in current profile deletion 2022-04-12 18:09:30 +02:00
Davide De Rosa
ec3cca05ef Fix TunnelKit package fetched locally 2022-04-12 15:25:38 +02:00
Davide De Rosa
4aba5f46aa Rewrite app in SwiftUI 2022-04-12 15:12:45 +02:00
Davide De Rosa
2c9be6334a [ci skip] Set release date 2022-02-15 09:09:28 +01:00
Davide De Rosa
3b5d5db598 Add explicit need to reach job outputs 2022-02-15 09:08:35 +01:00
Davide De Rosa
a15abe94db [ci skip] Use versioned TunnelKit 2022-02-15 08:58:03 +01:00
Davide De Rosa
23d8bb9a27 Update targets in README 2022-02-04 19:54:41 +01:00