Commit Graph

222 Commits

Author SHA1 Message Date
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 400cea0f7b Show EKU and random endpoint in configuration 2019-03-27 17:07:29 +01:00
Davide De Rosa 250c3399da Reuse enabled/disabled strings in configuration 2019-03-27 17:04:06 +01:00
Davide De Rosa baff0435e8 Mask encryption passphrase input 2019-03-26 11:23:49 +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 34fc10eef8 Split guidance and referral footers
Handle tap per footer.
2019-03-25 20:26:03 +01:00
Davide De Rosa 54f7779c45 Add Mullvad provider 2019-03-22 19:29:55 +01:00
Davide De Rosa 8a855bf538 Show app version in About cell 2019-03-22 19:29:15 +01:00
Davide De Rosa 3b5207dc8f Better reconnect than disconnect 2019-03-22 19:25:12 +01:00
Davide De Rosa c45e741750 Disconnect on masking change
To ensure that the stale log is erased immediately.
2019-03-22 19:23:32 +01:00
Davide De Rosa fdc3869d29 Move baseVPNConfiguration to TransientStore
Simplifies configuration update.
2019-03-22 19:09:52 +01:00
Davide De Rosa c391663d11 Persist masking flag 2019-03-22 19:09:52 +01:00
Davide De Rosa e4c1ea4def Delete log on masking change
It may contain stale and either sensitive or irrelevant data.
2019-03-22 18:54:54 +01:00
Davide De Rosa 96f5210c7c Control debug masking via diagnostics
Be clear about NOT logging any sensitive data. In fact, the
variable name masksPrivateData is potentially misleading.
2019-03-22 18:54:54 +01:00
Davide De Rosa fa6f9b9ff9 Bump minor version 2019-03-22 18:46:04 +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 3eb9c6ae98 Localize Pool via country code + area 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 fbbd0b33f2 Reorganize compression section
- Show algorithm.
- Make framing readonly.

Easy way to prevent combination of LZO with new framing.
2019-03-19 15:23:45 +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 1ea85ff32e Move shortcuts to separate storyboard 2019-03-18 21:18:40 +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 43b75a1029 Add completion handler to intent dispatcher 2019-03-18 17:18:57 +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 cf499739f7 Export SwiftGen strings as public
Required as part of an external framework.
2019-03-18 11:19:24 +01:00
Davide De Rosa 1eca19e96f Update whole views when back from backgorund 2019-03-11 09:55:25 +01:00
Davide De Rosa 1dd3ad18aa Use updateViewsIfNeeded() for consistency 2019-03-11 09:55:25 +01:00
Davide De Rosa f50cf44bab Switch to active profile on intent update
Better user experience.
2019-03-11 09:55:25 +01:00
Davide De Rosa 439c9c0b0f Set profile directly in GracefulVPN
No need to pass through prepare(). Couple with setProfile() for
robustness.
2019-03-11 09:55:25 +01:00
Davide De Rosa ba0d3a8010 Use consistent intent logging 2019-03-10 14:14:14 +01:00
Davide De Rosa c8be5d0de6 Donate enable+disable on VPN on/off 2019-03-10 14:14:07 +01:00
Davide De Rosa ab500cccb0 Add EnableVPN intent 2019-03-10 14:14:02 +01:00
Davide De Rosa 9dcd6de873 Always donate a MoveTo when provider 2019-03-10 14:13:30 +01:00
Davide De Rosa b841552121 Do not necessarily reconnect on intent
Trust intents just reinstall VPN profile.
2019-03-10 14:13:30 +01:00
Davide De Rosa 670139d807 Reuse reconnection code 2019-03-10 14:12:34 +01:00
Davide De Rosa 1dc659dbe1 Localize intents definition
And drop redundant ConnectVPN intent subtitle.
2019-03-10 14:11:59 +01:00
Davide De Rosa 7a21338042 Update copyright 2019-03-09 11:44:44 +01:00
Davide De Rosa e3a0a10753 Drop another redundant import 2019-03-09 11:30:36 +01:00
Davide De Rosa fb5cd52eea Drop redundant import 2019-03-09 11:24:04 +01:00
Davide De Rosa 77c40cb169 Notify intent updates to ServiceVC
Postpone notification until VPN updates.

Fixes the following scenario:

1. Use <foo> profile
2. Send to background
3. Connect to <foo> via shortcut
4. Toggle stays disabled (too early)
2019-03-09 11:24:03 +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 f01027bca5 Add Siri capability 2019-03-09 08:45:48 +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 7774143e17 Activate profile before any action
Otherwise GracefulVPN.vpn will always return nil.

Fixes #38
2019-03-08 12:32:45 +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 c5c670b086 Add TunnelBear provider 2019-03-05 23:02:22 +01:00
Davide De Rosa aba91df3fe Bump minor version 2019-03-05 23:01:25 +01:00
Davide De Rosa c0fcb59233 Set account fields content type 2019-03-05 23:01:25 +01:00
Davide De Rosa 4eeca4c63c Forgive a nil statusIndexPath
Also drop a few unused and potentially dangerous similar methods.

Fixes #36
2019-03-05 10:32:13 +01:00
Davide De Rosa c4495f6715 Revert "Bump version further (minor)"
This reverts commit 14fac17f24.
2019-03-05 10:00:07 +01:00
Davide De Rosa 14fac17f24 Bump version further (minor) 2019-03-04 21:34:35 +01:00
Davide De Rosa fd9306b1dc Bump version 2019-03-04 17:21:49 +01:00
Davide De Rosa 0b7bd41636 Add provider referrals 2019-03-03 14:17:09 +01:00
Davide De Rosa 3ddfa87b58 Disconnect before switching active profile
Make sure that completionHandler is ALWAYS called, despite vpn
object being nil.
2019-03-03 13:04:27 +01:00
Davide De Rosa a9e16c5335 Show custom DNS addresses in configuration UI 2019-03-03 10:40:12 +01:00
Davide De Rosa 1f722198e9 Shut down if server uses compression at all.
- Announcement in PUSH_REPLY
- Header in data packets

Bump to 1.0.2.
2019-02-28 17:20:36 +01:00
Davide De Rosa f335440800 Shut down if server pushes a compression directive 2019-02-25 23:13:12 +01:00
Davide De Rosa fedea91087 Add FAQ in About 2019-02-03 22:08:24 +01:00
Davide De Rosa 67036435c2 Bump version 2019-01-17 09:59:39 +01:00
Davide De Rosa 323807cfbf Configure reviewer event count in AppConstants 2018-12-10 12:53:15 +01:00
Davide De Rosa d2186678de Report reviewer event on successful connection 2018-12-10 12:47:53 +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 2dafe9f1f2 Invert caption/logic about trusted network policy
Looks more intuitive (default ON).
2018-11-04 12:02:02 +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 1522774c98 Temporarily remove "Test connectivity"
The action does an HTTP GET to a random well-known home page
among the following:

- Google
- Facebook
- Twitter
- Instagram
- Amazon

This was acceptable for development and beta testing. Not so much
for a release. Omit the option until more transparent.
2018-11-04 10:52:43 +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 2525467fe9 Hide "Edit" in provider profiles 2018-11-03 22:23:26 +01:00
Davide De Rosa 860750332f Handle keyboard return in rename alert 2018-11-02 16:23:34 +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 0d49d1abc8 Upgrade SwiftGen 2018-10-28 14:50:12 +01:00
Davide De Rosa c6d632ede4 Add title to configuration parameter selector 2018-10-27 22:21:20 +02:00