Commit Graph

183 Commits

Author SHA1 Message Date
Davide De Rosa f543b0d753 Do not delete imported host on error
Could be an app bug or something to be implemented in the future.
2019-07-08 08:44:54 +02:00
Davide De Rosa 41ed10e76e Fall back to mailto URL when no email account
Useful with third party mail apps.
2019-07-05 11:11:22 +02:00
Davide De Rosa 60b60646d4 Move available providers to Core 2019-06-28 19:10:42 +02:00
Davide De Rosa 40a7ac56f7 Move some strings to Core 2019-06-23 10:33:43 +02:00
Davide De Rosa 282728ae1e Move app-related strings in
Move Core strings to app target.

SwiftGen uses same bundle by default. No problem because Core
does not (and should not) any string internally.
2019-06-23 00:11:56 +02:00
Davide De Rosa 84eb9d09c4 Rename Core targets
Fix import in Core umbrella header.
2019-05-27 00:13:33 +02:00
Davide De Rosa 60b967ee3a Make provisioning ids dynamic via .xcconfig 2019-05-25 18:29:10 +02:00
Davide De Rosa 87527ed290 Upgrade to TunnelKit 2.0
Major reorganization. No changes in logic.

Rename by_* to pod_*.
2019-05-25 18:29:10 +02:00
Davide De Rosa a6745ceec7 Move feedback section to main screen 2019-04-15 14:40:16 +02:00
Davide De Rosa 60259a2fb9 Base profile selection on ConnectionProfile
Rather than cells, which relies on cell visibility. Drop ugly
selection segue.

Fixes #63
2019-04-11 15:52:24 +02:00
Davide De Rosa 5aadde5065 Enter active profile on VPN status selection
Rename selectedIndexPath to activeIndexPath.
2019-04-10 16:51:05 +02:00
Davide De Rosa 91b4992790 Show VPN status on top of organizer 2019-04-10 16:49:49 +02:00
Davide De Rosa c598011abc Skip scrolling to active profile 2019-04-10 16:49:43 +02:00
Davide De Rosa ff8d57e9f0 Fix selectedIndexPath with generic section indexes 2019-04-10 16:49:32 +02:00
Davide De Rosa 3309fd747f Lock donation controller if no payment method 2019-04-09 11:17:31 +02:00
Davide De Rosa db6aa10590 Show activity when purchasing donation 2019-04-08 23:05:26 +02:00
Davide De Rosa 1a7f2d745b Show activity when loading donations 2019-04-08 22:59:24 +02:00
Davide De Rosa 84c5493348 Remap donations to local RowType
Allow different cells easily.
2019-04-08 22:59:24 +02:00
Davide De Rosa f2841827fc Say "Thank you" in donation success alert title 2019-04-07 17:13:39 +02:00
Davide De Rosa e68c46d729 Set email subjects statically
App name is constant.
2019-04-07 16:56:38 +02:00
Davide De Rosa 77ce52ac33 Do not localize email templates
Risk is not understanding them!
2019-04-07 16:30:38 +02:00
Davide De Rosa d13f813236 Add email template to offer as translator 2019-04-07 16:20:15 +02:00
Davide De Rosa e926290abf Interpose HUD while loading products 2019-04-07 15:29:10 +02:00
Davide De Rosa 2bf070650d Purchase on donation selection 2019-04-07 15:29:10 +02:00
Davide De Rosa ff1c83dd3d Show headers in donation table 2019-04-07 15:29:10 +02:00
Davide De Rosa 724a4bc10a Request products in separate class 2019-04-07 15:29:10 +02:00
Davide De Rosa 26453f9612 Add donation view controller 2019-04-07 15:29:10 +02:00
Davide De Rosa 6f57d3503a Add donation cell in organizer 2019-04-07 15:29:10 +02:00
Davide De Rosa 561307568e Add Patreon link in new Support section 2019-04-07 15:29:10 +02:00
Davide De Rosa c542722f47 Regroup storyboard implementations 2019-04-07 08:52:16 +02:00
Davide De Rosa 8db2b70e65 Set current pool atomically with pools 2019-04-06 16:45:46 +02:00
Davide De Rosa 8d3a5d747d Convert table model to PoolGroup 2019-04-06 16:20:01 +02:00
Davide De Rosa a4a82fbd03 Fix table pre-scrolling to selection
iOS is broken, must wrap in a DispatchQueue.main.async
2019-04-05 12:46:50 +02:00
Davide De Rosa f97b8447d9 Show provider logos in Organizer and Wizard 2019-04-05 00:52:36 +02:00
Davide De Rosa ab5517dcba Rename ParsingResult to Result
From ConfigurationParser in TunnelKit.
2019-04-04 19:26:08 +02:00
Davide De Rosa 1904687a22 Upgrade to TunnelKit 1.6.0
- Make cipher/digest/compressionFraming optional
- Move endpointProtocols inside SessionProxy.Configuration
- Rename OptionsError to ConfigurationError
2019-04-04 19:03:53 +02:00
Davide De Rosa 487b0c07ca Present add shortcut modally 2019-03-28 08:28:50 +01:00
Davide De Rosa e2cd0bc7e1 Reuse intent creation code from IntentDispatcher 2019-03-27 23:47:35 +01:00
Davide De Rosa d24295295a Drop unnecessary downcast 2019-03-27 23:03:19 +01:00
Davide De Rosa 77658e5cc6 Show shortcut add on viewDidAppear 2019-03-27 22:36:23 +01:00
Davide De Rosa c9d170768a Create shortcuts from manager
Delegate Intents callbacks to a single place.
2019-03-27 22:22:32 +01:00
Davide De Rosa ae88fdfad6 Rename shortcut manager vc 2019-03-27 22:09:08 +01:00
Davide De Rosa d29aafe08e Propagate addShortcut delegation in ConnectTo 2019-03-27 21:08:51 +01:00
Davide De Rosa 05ba654b2f Reload in the background on edit 2019-03-27 21:08:51 +01:00
Davide De Rosa f0d0eb5ed3 Sort shortcuts by phrase 2019-03-27 21:08:51 +01:00
Davide De Rosa 5ee18071b0 Add shortcut and delegate to manager 2019-03-27 21:08:51 +01:00
Davide De Rosa 0d619ffd62 Pack Siri controllers to simplify @available 2019-03-27 21:08:51 +01:00
Davide De Rosa e1638d1c73 Link add shortcut to manager 2019-03-27 21:08:51 +01:00
Davide De Rosa d5b7a1e576 Show existing Siri shortcuts as first controller 2019-03-27 21:08:51 +01:00
Davide De Rosa b459495e90 Reuse controller title 2019-03-27 21:08:36 +01:00
Davide De Rosa f3e6c34bd1 Customize block on passphrase input cancellation
Do not delete .ovpn file when importing from iTunes.
2019-03-25 20:33:17 +01:00
Davide De Rosa 8f0e28e315 Forward input passphrase to parser 2019-03-25 20:33:17 +01:00
Davide De Rosa dc81356b31 Retry import after passphrase input
Isolate .ovpn parsing routines.

- AppDelegate (external URL)
- ImportedHosts

Only delete URL if error is not encryption passphrase.
2019-03-25 20:33:07 +01:00
Davide De Rosa 8a855bf538 Show app version in About cell 2019-03-22 19:29:15 +01:00
Davide De Rosa fdc3869d29 Move baseVPNConfiguration to TransientStore
Simplifies configuration update.
2019-03-22 19:09:52 +01:00
Davide De Rosa 15f23dd448 Retain Pool.name internally but show .localizedName
Use name from API if available (XXX: not localized).

Make it private to avoid unintended use in app.
2019-03-21 22:21:42 +01:00
Davide De Rosa af51911536 Replace Cancel with X to exit shortcuts
Misleading!
2019-03-19 18:01:15 +01:00
Davide De Rosa 63d74b6feb Reorganize shortcut sections 2019-03-19 18:01:15 +01:00
Davide De Rosa c0be33dacc Add descriptive footer to Siri section 2019-03-19 18:01:15 +01:00
Davide De Rosa 03c8e43ce7 Tweak intent donations
- Activate -> EnableVPN
- Connect -> ConnectVPN/MoveToLocation
- Disconnect -> DisableVPN
2019-03-19 18:01:15 +01:00
Davide De Rosa 88a1e39a6e Add a Done button to exit connect shortcuts 2019-03-18 22:40:06 +01:00
Davide De Rosa 15602f7dc9 Pick profile/location for connection intent
- Host: ConnectVPN intent
- Provider: requires Pool selection
2019-03-18 22:13:36 +01:00
Davide De Rosa 98160fdccb Split shortcuts into VPN and Trust 2019-03-18 21:00:07 +01:00
Davide De Rosa 8f3d2f0b15 Add basic cells for any possible shortcut 2019-03-18 20:54:47 +01:00
Davide De Rosa 1c103c639d Add shortcuts view controller stub 2019-03-18 20:54:47 +01:00
Davide De Rosa c3e6e1ecd5 Move intents to Core target
Suppress responses for consistency.
2019-03-18 17:06:35 +01:00
Davide De Rosa 5237aa3916 Import Core framework into iOS target 2019-03-18 11:52:19 +01:00
Davide De Rosa 9dcd6de873 Always donate a MoveTo when provider 2019-03-10 14:13:30 +01:00
Davide De Rosa 7a21338042 Update copyright 2019-03-09 11:44:44 +01:00
Davide De Rosa 5d2450b985 Donate interactions
- Connect on add profile (covers first profile)
- Connect on activate profile
- Disable on connect to VPN
- Trust on add current Wi-Fi
- Trust on cellular network
- MoveTo on first connected location (if provider)
- MoveTo on location change (if provider)
2019-03-09 11:23:50 +01:00
Davide De Rosa 2e4d2162ac Define custom intents
- Connect
- Disable
- (Un)Trust current network
- (Un)Trust cellular network
- Move to location
2019-03-09 11:23:47 +01:00
Davide De Rosa 5ccdece72b Do not reload views on profile renaming
Use explicit accessor, implicit didSet is worrisome.

Fixes #37
2019-03-08 12:57:51 +01:00
Davide De Rosa ccf7a68ba8 Show raw debug log in beta 2019-03-07 23:00:14 +01:00
Davide De Rosa 9441a31fd1 Add button to test app termination
Might help reproducing #19
2019-03-06 17:46:06 +01:00
Davide De Rosa fedea91087 Add FAQ in About 2019-02-03 22:08:24 +01:00
Davide De Rosa afcb45c614 Cache fetched license content
And show an error message when unable to fetch license URL.
2018-12-04 10:45:12 +01:00
Davide De Rosa 534f1e2094 Show activity indicator while loading license 2018-12-04 10:34:38 +01:00
Davide De Rosa 8270c20179 Fetch license content via URL 2018-12-04 10:33:19 +01:00
Davide De Rosa a486cb4265 List licenses/notices in full table 2018-12-04 10:33:19 +01:00
Davide De Rosa 3d5c2bb8f5 Move .ovpn parser to TunnelKit 2018-11-10 11:39:36 +01:00
Davide De Rosa c7cb00f679 Move ProfileKey to separate file 2018-11-06 11:16:34 +01:00
Davide De Rosa e7d2dde972 Add/remove profile to/from filesystem immediately
Save unnecessary serialization of unaffected profiles.
2018-11-04 15:06:53 +01:00
Davide De Rosa bc0568cc38 Do not re-save profiles on (de)activate
Only service JSON is affected.
2018-11-04 14:55:25 +01:00
Davide De Rosa c1065751b6 Add method to parse configuration from [String]
With an optional original URL. Helps testing. Take the chance to
also disambiguate method overloads.
2018-11-04 11:45:19 +01:00
Davide De Rosa 9e7c4960e5 Update GitHub URL in license preamble 2018-11-04 10:53:16 +01:00
Davide De Rosa 76a3e48242 Make serialize() the very first call in delegate 2018-11-04 10:49:40 +01:00
Davide De Rosa 3f5d23a34c Drop redundant table/model updates on remove
Already done in commit row, and also breaks animation.
2018-11-04 10:49:40 +01:00
Davide De Rosa 8e445e90b3 Move profile reactions to delegate
- Activation
- Removal
2018-11-04 10:49:40 +01:00
Davide De Rosa b051f8118f Add "Edit" item to rename host profile
Disabled in network profiles. Reuse same title style/constraints
and message strings in host wizard.

For consistency, rename activate() to activateProfile(). And it's
not even an IBAction.
2018-11-02 15:52:36 +01:00
Davide De Rosa 3f1e98f8ac Delegate profile management from ConnectionService
Makes much more sense than dumb wizard notifications. Organizer is
already a ConnectionServiceDelegate.
2018-11-02 15:20:37 +01:00
Davide De Rosa 88124f5588 Replace source section with web section 2018-10-30 20:44:58 +01:00
Davide De Rosa 2564f2446d Show disclaimer from website 2018-10-29 21:25:22 +01:00
Davide De Rosa fe85677e68 Add privacy policy 2018-10-29 21:25:08 +01:00
Davide De Rosa 17ebaccbad Add title to version screen 2018-10-29 21:25:08 +01:00
Davide De Rosa fec2f02df5 Move Credits inside Version 2018-10-29 21:25:06 +01:00
Davide De Rosa cced9b018f Fix provider name ordering
Define intrinsecally with Comparable.
2018-10-29 17:48:17 +01:00
Davide De Rosa 3d62728a95 Fix detail replacement in compact mode
Do not push created profile onto presented profile or any other
screen deeper inside (e.g. Parameters).
2018-10-27 22:17:53 +02:00
Davide De Rosa 06ecd3367f Overwrite pending profile when reimporting
- Overwrite title field
- Remove old .ovpn

useSuggestedTitle() is only called on load, it will never
overwrite user input unless there's a new import.
2018-10-27 20:41:47 +02:00
Davide De Rosa 326c5b823d Observe wizard creation via notifications
Flow is too scattered to safely maintain delegation.
2018-10-27 20:11:26 +02:00
Davide De Rosa b7dc72a5e9 Sort hosts ignoring case 2018-10-27 16:56:41 +02:00