Davide De Rosa
cc681dfeab
Refine profile icons and animate if connected
...
Assume 3 different profile states:
- Active and connected
- Active
- Inactive
2022-05-02 10:48:12 +02:00
Davide De Rosa
576eb1512a
Fix slow active profile selection on launch
...
Regression due to missing .stack navigation style basically.
Restore .onAppear() on NavigationLink.
2022-05-02 09:53:18 +02:00
Davide De Rosa
acbc1980f9
Ignore non-existing active profile
2022-05-01 20:40:20 +02:00
Davide De Rosa
14dd920ef1
Drop unused animate on appear delay
2022-05-01 19:52:33 +02:00
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
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
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
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
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
03fdab4833
Duplicate profile from context menu
2022-04-26 22:39:47 +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
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
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
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
84790080be
Disable autocorrection on profile name
2022-04-25 15:28:55 +02:00
Davide De Rosa
0b1e465143
Share animation type in theme
2022-04-23 12:11:01 +02:00
Davide De Rosa
7eb2b3bd0e
Drop button accent on Organizer rows
2022-04-23 11:48:43 +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
2432f0d97a
Rewrite ProfileView as a view of currentProfile
...
Do not load profile in View, instead:
- Load active profile on app launch
- Load selected profile on organizer selection
2022-04-23 10:25:31 +02:00
Davide De Rosa
d8e47cb7c0
Refactor strings and add new ones
...
- Move Localizable.strings above to share *.lproj folders
- Reorg menus into contextual/system
- Shorten titles of contextual menus
- Update sharing message with WireGuard
- Drop AlternativeTo
7 phrases left to translate into 9 languages.
2022-04-22 13:12:42 +02:00
Davide De Rosa
fff391702d
Use 'Save' in profile renaming
...
Drop 'Done' label (unused).
2022-04-20 11:50:10 +02:00
Davide De Rosa
1cfe6167e0
Use .cancellationAction placement for close button
2022-04-19 23:11:04 +02:00
Davide De Rosa
063f0621c1
Unify metadata
...
- Fix fastlane env variables
- Use single CHANGELOG.md in project root
- Retain old 1.x changelogs
2022-04-19 16:17:13 +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