Commit Graph

78 Commits

Author SHA1 Message Date
Davide De Rosa ac071cf6ec Move "Reconnect" string to Core 2019-07-04 10:50:14 +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 03c0931190 Remove redundant community link 2019-06-13 10:33:36 +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 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 a4cbbbc1aa Pick preset from pool supported presets only
Fixes #78
2019-05-02 13:08:24 +02:00
Davide De Rosa c6fbdca342 Move network settings to ad-hoc screen
Can now set gateway/DNS/proxy settings explicitly.

- Read from .ovpn (hosts only)
- Pull from server (PUSH_REPLY)
- Set manually
2019-05-01 23:00:28 +02:00
Davide De Rosa 6329c32903 Reuse shared cell values globally 2019-05-01 22:59:05 +02:00
Davide De Rosa d9a0ebd923 Upgrade API to v2 (entities) 2019-04-25 21:30:43 +02:00
Davide De Rosa 458ef496fd Unlocalize some strings 2019-04-23 15:47:24 +02:00
Davide De Rosa a6745ceec7 Move feedback section to main screen 2019-04-15 14:40:16 +02:00
Davide De Rosa cf8f0984a3 Cache pool models, do not rebuild each time
Invalidate on new infrastructure.
2019-04-11 23:38:16 +02:00
Davide De Rosa 8203bc99f8 Import downloaded resources into provider cache
Show message in HUD while extracting files
2019-04-11 19:01:59 +02:00
Davide De Rosa 35605ba89f Download resource with progress HUD 2019-04-11 19:01:59 +02:00
Davide De Rosa 2f09a41d06 Stop to download additional provider resources 2019-04-11 19:01:55 +02:00
Davide De Rosa 5bb3a49a84 Disclose if poolGroup is > 1
List pool server numbers and pop to delegate.
2019-04-06 16:46:38 +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 8fd5a74dc4 Show AreaID (Area + Num) in pool selector
Rename localizedCountryArea to localizedId.
2019-04-06 16:19:34 +02:00
Davide De Rosa 451ab07796 Use subtitle cell in pools 2019-04-05 12:06:26 +02:00
Davide De Rosa 97db759242 Drop empty space between Account sections
Reuse code for heightForHeader.
2019-04-04 19:53:41 +02:00
Davide De Rosa fe669bb3e0 Migrate to Configuration optionals
- cipher
- digest
- compressionFraming
2019-04-04 19:03:55 +02:00
Davide De Rosa 3197f49368 Add down/up indication of data count
Other improvements:

- TunnelKit reports 0 rather than nil upon connection.
- Fall back to "Unavailable" rather than empty string.
2019-03-30 23:38:06 +01:00
Davide De Rosa 921e57557d Render data count with closest unit
Set a 10% boundary (e.g. 100MB = 0.1GB).
2019-03-30 20:10:04 +01:00
Davide De Rosa 2e142680c3 Fetch current data count on VPN status update 2019-03-30 20:10:04 +01:00
Davide De Rosa bc0a0d40dc Observe tunnel data count periodically (5s)
Use Timer as KVO is not possible on App Group defaults.

Be tolerant about missing sections, return type is optional.

Also reword data count cell caption.
2019-03-30 20:10:04 +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 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 03c8e43ce7 Tweak intent donations
- Activate -> EnableVPN
- Connect -> ConnectVPN/MoveToLocation
- Disconnect -> DisableVPN
2019-03-19 18:01:15 +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 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 c8be5d0de6 Donate enable+disable on VPN on/off 2019-03-10 14:14:07 +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 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 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 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 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