Davide De Rosa
edc7cdf045
Merge List into OrganizerView
...
- Restore wrapping Section as it seems to fix multitasking
- Hide profiles section if empty
2022-05-01 19:19:31 +02:00
Davide De Rosa
8003b4a92d
Observe currentProfile in ProfileView
...
ProfileView is not interested in changes in other profiles
notified by ProfileManager. Set isLoading inside
ObservableObject for observable to be self-contained.
Loses observation of profile deletion, but dismiss on removal is
actually handled by OrganizerView, not ProfileView.
Also drop unused presentationMode.
2022-05-01 19:14:34 +02:00
Davide De Rosa
107de2d843
Update packages
2022-04-30 00:14:52 +02:00
Davide De Rosa
9af67e12ce
Drop profiles Section wrapper
2022-04-29 19:51:18 +02:00
Davide De Rosa
0047d095fb
Adjust navigation style to all devices
...
- Mac
- Drop all styles
- Tweak hide title bar
- Hide navigation bar
- Restore single section for all profiles
- Allows using NavigationLink safely
- Indirectly fixes multitasking
- Retains selection on profile activation
- Clean up presentActiveProfile
- Leave active profile in its position
- Fixes Mac flashing row selection on profile activation
- Unify profile row appearance
- Use fixed .headline font
- Add subtitles to inactive profiles
- Use padding rather than fixed row height
CAVEATS:
- Do not preselect active profile on iPad launch, as doing so
seems to present two ProfileView on top of each other, one from
MainView and one from the NavigationLink.
- Do not touch .listStyle() of master view, as it seems to break
navigation esp. in iPad multitasking.
2022-04-29 19:29:47 +02:00
Davide De Rosa
4d13d8bf6b
Do not observe AppManager, just use for migrations
2022-04-29 18:58:07 +02:00
Davide De Rosa
7ba41a0e73
Skip irrelevant notifications for VPN protocol
...
Based on tunnel bundle identifier in notification.
2022-04-29 15:26:10 +02:00
Davide De Rosa
17198e53eb
Fix cannot duplicate same profile more than once
2022-04-29 00:40:56 +02:00
Davide De Rosa
fc784ffeb1
Import new translations
...
3 phrases still missing.
2022-04-28 22:47:07 +02:00
Davide De Rosa
1afd227f02
Do not update current profile on activation
2022-04-28 22:36:31 +02:00
Davide De Rosa
2c2e794b00
Revert async loadCurrentProfile()
...
Make action sync, but internally async (makeProfileReady). If not
doing so, UI on launch will not be able to show active profile
immediately. WelcomeView would appear for a moment.
Observe isReloadingCurrentProfile.
See 2b1efb8fec
2022-04-28 19:00:36 +02:00
Davide De Rosa
1ef2b8c7a7
Set activeProfileId immediately
...
Otherwise on app launch, active profile is rendered in 2 steps.
2022-04-28 17:56:28 +02:00
Davide De Rosa
56fa161e92
Save current profile one way
...
Skip updating currentProfile.value when intentionally saving
current profile.
2022-04-28 17:56:28 +02:00
Davide De Rosa
03cb05da7e
Do not disable providers while updating index
2022-04-27 23:08:46 +02:00
Davide De Rosa
2aa4008a08
Animate profile removal
...
Could only notice difference on iPad.
2022-04-27 18:32:44 +02:00
Davide De Rosa
d4484f3307
Simplify layout of in-app products
2022-04-27 18:32:44 +02:00
Davide De Rosa
2b1efb8fec
Make load*Profile() async
...
- Handle Task in consumers
- Drop makeReady, always make loaded profile ready
- Rename misleading loadProfile() to profileEx()
2022-04-27 17:13:03 +02:00
Davide De Rosa
02b2e3194e
Add duplicate to profile menu
...
Contextually switch current profile to duplicate.
2022-04-27 16:59:33 +02:00
Davide De Rosa
496abc6c89
Move Siri on top of menu
2022-04-27 16:54:07 +02:00
Davide De Rosa
c0cc65b7ea
Try move BUILD_NUMBER to global workflow env
2022-04-27 15:59:41 +02:00
Davide De Rosa
49a1f1b55c
Address VPN toggle losing sync with internal state
...
- Update TunnelKit
- Receive TunnelKit notifications on main queue
- Bind VPN toggle to VPNManager directly (implicit animations)
- Update state on VPN didFail
- Set isEnabled = false after uninstalling VPN (not notified)
2022-04-27 15:53:31 +02:00
Davide De Rosa
a7258b3a94
Tag private beta after upload
2022-04-27 13:40:58 +02:00
Davide De Rosa
e77d78526b
Use non-filled icons
2022-04-27 13:40:58 +02:00
Davide De Rosa
cd854f8ebf
Group profile actions into menus
...
- Organizer
- Duplicate
- Profile
- Rename
- Siri
- Uninstall (+ confirmation)
- Delete (+ confirmation)
2022-04-27 09:53:42 +02:00
Davide De Rosa
1c047b9ce2
Retain profile name (disabled) after importing
...
Works around a crash in iPadOS 14 portrait when removing section
containing first responder (profile name TextField). It happened
when submitting profile name via keyboard rather than "Save".
2022-04-26 22:56:41 +02:00
Davide De Rosa
4a0245d757
Rename AddHostView to .NameView
...
In preparation of future additions to flow.
2022-04-26 22:44:34 +02:00
Davide De Rosa
03fdab4833
Duplicate profile from context menu
2022-04-26 22:39:47 +02:00
Davide De Rosa
1ea380312a
Update providers index on add provider appearance
2022-04-26 22:15:39 +02:00
Davide De Rosa
6bff878952
Fix repeating "Default" servers in some providers
...
Disambiguate by apiId.
2022-04-26 22:12:22 +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
99e48119f7
Encapsulate calculation of former products
...
Use an interface (BuildProducts) that makes understandable and
easily extensibile how some in-app products are inferred by build
number.
2022-04-26 20:55:18 +02:00
Davide De Rosa
ed81e374aa
Update profile screenshot
2022-04-26 19:03:46 +02:00
Davide De Rosa
f4714dec58
Fix VPN toggle enabling despite errors
2022-04-26 19:02:12 +02:00
Davide De Rosa
e10f33717d
Test update/delete on merge provider index
2022-04-26 18:56:55 +02:00
Davide De Rosa
259a7e18ca
Fix old provider server query parameter
...
serverId was renamed to apiId.
2022-04-26 18:49:34 +02:00
Davide De Rosa
4973a19fda
Drop unused method
2022-04-26 10:59:48 +02:00
Davide De Rosa
1ff19b331f
Move VPNToggle to standalone view
2022-04-26 10:40:46 +02:00
Davide De Rosa
ccde6a30cf
Fix issues with VPN toggle
...
- Move rate limit to UI only
- Keep caption constant to "Enabled"
2022-04-25 23:12:45 +02:00
Davide De Rosa
92b9c4cd9a
Skip setting data count if unavailable
2022-04-25 22:59:20 +02:00
Davide De Rosa
58cf401883
Share prefix for validating theme methods
2022-04-25 22:44:24 +02:00
Davide De Rosa
5c0e053e7d
Review requirements of DNS over TLS (DoT)
...
- Make DNS servers optional in TunnelKit
- Allow IP address as DoT server name
2022-04-25 22:40:09 +02:00
Davide De Rosa
efb9760d6b
Redo VPN toggle properly
...
- Use local @State for appearance
- On binding set, control VPNManager
2022-04-25 16:36:07 +02:00
Davide De Rosa
6434008ebd
Make destructive buttons standalone
...
- Uninstall VPN
- Remove profile (add to ProfileView)
Create DestructiveButton with iOS 15 .role when available.
2022-04-25 16:34:22 +02:00
Davide De Rosa
ac1239daa8
Add headers to active/inactive profile sections
...
Hide inactive section if empty.
2022-04-25 16:34:13 +02:00
Davide De Rosa
339183c156
Fix phrase wording
2022-04-25 16:30:03 +02:00
Davide De Rosa
29629c5147
Use lighter font for non-active profiles
2022-04-25 15:35:21 +02:00
Davide De Rosa
84790080be
Disable autocorrection on profile name
2022-04-25 15:28:55 +02:00
Davide De Rosa
deac70359f
Reorganize and fix platform-specific fastlane data
...
Reuse all iOS metadata in macOS, except the app icon.
2022-04-25 11:21:19 +02:00
Davide De Rosa
886d0271ea
Restore 'Add' button in NetworkSettings
...
Makes it clear that added fields must be submitted in order to
be saved.
2022-04-23 15:47:02 +02:00
Davide De Rosa
c63a39081b
Notify private beta testers based on env
2022-04-23 12:26:46 +02:00