Roopesh Chander
23618f994f
UI: When saving on-demand rules, deactivate if reqd and then save
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-09-28 00:16:35 +05:30
Roopesh Chander
ba644415c7
UI: When saving on-demand rules on a config, enable on-demand if active
...
When a user saves on-demand rules on the configuration, set
onDemandEnabled to true if the tunnel is active, and false if it isn't.
Then deactivate the tunnel.
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-09-24 01:01:10 +05:30
Roopesh Chander and Jason A. Donenfeld
ba4d1e7b21
MacAppStoreUpdateDetector: Detect StoreAEService correctly
...
In macOS 10.15 and macOS 11, the quit Apple event is sent by:
com.apple.AppStoreDaemon.StoreAEService
In some earlier macOS release, the quit Apple event was sent by:
com.apple.CommerceKit.StoreAEService
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-09-22 06:58:14 +02:00
Roopesh Chander and Jason A. Donenfeld
f5a14b8434
MacAppStoreUpdateDetector: Add pid to the log
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-09-22 06:58:14 +02:00
Roopesh Chander and Jason A. Donenfeld
a8226b35d2
build: Fix swiftlint warnings
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-09-22 06:58:14 +02:00
Roopesh Chander and Jason A. Donenfeld
73c708d902
build: Fix swift warnings
...
Use 'AnyObject' instead of 'class' to restrict protocol inheritance
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-09-22 06:58:14 +02:00
Roopesh Chander and Jason A. Donenfeld
3668f3af9f
build: Include 'swiftlint' location in the PATH before invoking it
...
In macOS 11, HomeBrew installs swiftlint under /opt/homebrew, which is not
in the default path that Xcode seems to use. So we include the PATH
to contain:
- /usr/local/bin:
Where HomeBrew installs 'swiftlint' in macOS 10.15 and earlier
- /opt/homebrew/bin:
Where HomeBrew installs 'swiftlint' in macOS 11
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-09-22 06:58:14 +02:00
Roopesh Chander
cfd1b16801
UI: Consider on-demand to be enabled iff the tunnel provider is enabled
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-08-03 16:35:18 +05:30
Roopesh Chander
ca70fe9ddc
UI: When setting on-demand, avoid a second saveToPreferences() call
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-08-03 16:34:57 +05:30
Roopesh Chander
55c587b443
UI: When saving on-demand rules, don't set isOnDemandEnabled
...
When adding or modifying a config, when on-demand options are set by a
user, the rules are saved, but isOnDemandEnabled is left unset (and can
be set by the appropriate control in the detail view (switch in iOS /
button in macOS)).
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-08-02 23:25:53 +05:30
Roopesh Chander
b6831c1aca
UI: macOS: Incorporate on-demand-ness in status menu
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-07-30 13:29:38 +05:30
Roopesh Chander
2ac17da7cb
UI: macOS: Tunnel detail: Incorporate on-demand-ness in toggle button
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-07-30 13:29:33 +05:30
Roopesh Chander
274c4cd092
UI: macOS: Tunnel detail: Incorporate on-demand-ness in the status row
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-07-30 13:29:28 +05:30
Roopesh Chander
95e1409bfb
UI: macOS: Tunnel list: Incorporate on-demand-ness in the status circle
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-07-30 13:29:25 +05:30
Roopesh Chander
2c2c53b1f8
UI: macOS: Add yellow circle image
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-07-30 13:29:09 +05:30
Roopesh Chander
9cbfec99df
UI: Localizations: Remove alertTunnelActivationFailureOnDemandAddendum
...
It's not used anymore.
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-07-28 15:55:17 +05:30
Roopesh Chander
1bd6dcb7e7
UI: Remove addendum on on-demand from error on tunnel activation
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-07-28 11:52:54 +05:30
Roopesh Chander
c1fe8b0162
UI: When setting on-demand, enable the tunnel if required
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-07-28 11:52:54 +05:30
Roopesh Chander
64c2fb337d
UI: iOS: Tunnels list: Move the "On Demand" label to the right
...
Having that at the bottom makes it harder for iOS to get
the row height correctly.
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-07-28 03:35:05 +05:30
Roopesh Chander
147ac02f0d
UI: iOS: Show on-demand state in 'Status' if there are on-demand rules
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-07-28 03:35:05 +05:30
Roopesh Chander
03ef79c0fd
UI: When reloading tunnels, preserve '.waiting' state
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-07-28 03:35:05 +05:30
Roopesh Chander
a261d84fc6
UI: When deactivating for activating another tunnel, disable on-demand
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-07-28 03:35:05 +05:30
Roopesh Chander
abaf1f1454
UI: Keep on-demand rules even if on-demand is disabled
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-07-28 03:34:36 +05:30
Roopesh Chander
1e9e21bacf
UI: iOS: Tunnel detail: Incorporate on-demand-ness in 'Status'
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-07-28 03:18:02 +05:30
Roopesh Chander
a115dd3bd9
UI: iOS: Tunnels list: Incorporate on-demand-ness in the switch
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-07-28 03:18:01 +05:30
Roopesh Chander
df9934a4b8
UI: TunnelsManager: Add setOnDemandEnabled() instance method
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-07-28 03:18:01 +05:30
Roopesh Chander
40f18de4d2
UI: TunnelsManager: Add TunnelContainer.hasOnDemandRules
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-07-28 03:18:01 +05:30
Roopesh Chander
78e6ecc4bc
Localization: macOS: Add translations for 'Edit' button
...
By copying the 'macMenuEdit' entries to 'macButtonEdit'.
Signed-off-by: Roopesh Chander <roop@roopc.net >
2020-04-11 16:57:51 +05:30
Roopesh Chander
174a6e8e32
Localization: macOS: Fix localization for 'Edit' button
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2020-04-11 16:56:54 +05:30
Roopesh Chander
20bcabbca4
Localization: Add German translation
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2020-04-11 16:41:45 +05:30
Roopesh Chander
0a3554cedd
Localization: Add Italian translation
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2020-04-11 16:41:45 +05:30
Roopesh Chander
2acc7db63d
Localization: Wire up Japanese translation
...
By adding the translated Localizable.strings to the Xcode project
Signed-off-by: Roopesh Chander <roop@roopc.net >
2020-04-11 16:41:45 +05:30
Roopesh Chander and Jason A. Donenfeld
028e76eb3f
[REVERT ME SOON] TunnelsManager: Workaround for macOS Catalina deleting tunnels arbitrarily
...
In macOS Catalina, for some users, the tunnels get deleted arbitrarily
by the OS. It's not clear what triggers that.
As a workaround, in macOS Catalina, when we realize that tunnels have
been deleted outside the app, we reinstate those tunnels using the
information in the keychain.
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-11-05 17:25:21 +08:00
Roopesh Chander
b286ede3c6
iOS: Importing: If tunnelsManager isn't ready yet, we should wait for it
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-06-13 23:02:54 +05:30
Roopesh Chander
4ef7afe3ca
macOS: Tunnel detail: Handle deletion outside app, again
...
This was previously done in commit f281b93, but the changes in commit
1507a97 for handling deletion of multiple tunnels undid this capability.
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-06-13 22:21:31 +05:30
Roopesh Chander
6a6be9edde
on-demand: iOS: Fix crash on selecting Any SSID when already selected
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-06-09 23:55:44 +05:30
Roopesh Chander
37f8500fe6
on-demand: Don't crash on encountering unexpected on-demand rules
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-06-09 23:55:39 +05:30
Roopesh Chander and Jason A. Donenfeld
207f82dd9d
macOS: Remove unused strings
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-06-09 11:39:06 +02:00
Roopesh Chander and Jason A. Donenfeld
4d6692548c
macOS: App menu > Quit shall show a prompt to quit or close window
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-06-06 10:27:11 +02:00
Roopesh Chander
1dccd39818
macOS: Save/restore the log window's size
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-06-04 20:34:37 +05:30
Roopesh Chander
4cb775c72f
macOS: Log view: Allow resizing horizontally
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-06-04 15:48:42 +05:30
Roopesh Chander and Jason A. Donenfeld
714d6a41bd
macOS: Dismiss modals correctly
...
Previously, the presented vc were leaking when discarding edits
or when closing the log view controller.
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-31 17:29:29 +02:00
Roopesh Chander and Jason A. Donenfeld
9b92a8f933
macOS: Update app icon
...
Reduce the size and add a drop shadow
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-31 17:29:29 +02:00
Roopesh Chander
5e9780ef8f
iOS: Should be able to re-show tunnel detail
...
Fixes a bug introduced in the refactoring in
commit 7322fb084087774e8b58e347902f6d7036cbde5c
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-27 15:36:39 +05:30
Roopesh Chander
9faf814e8b
macOS: Tunnel detail: No need to update runtime info on tunnelSaved()
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-27 14:43:41 +05:30
Roopesh Chander
30da10a0e9
macOS: Start refreshing runtime info in viewWillAppear(), not init()
...
Because when the window is closed and reopened, we should start
refreshing runtime info again.
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-27 14:38:17 +05:30
Roopesh Chander
a18614d6b3
macOS: Fix residual menu highlight on reopen
...
If we close the window with Cmd+W or Cmd+Q and then re-launch the app,
the main menu shows residual highlight from the close action. This
commit fixes that.
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-26 00:12:47 +05:30
Roopesh Chander
c30d491edc
iOS: Should be able to call showTunnelDetail multiple times
...
And the detail views should not stack up.
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-26 00:12:42 +05:30
Roopesh Chander and Jason A. Donenfeld
88c80d6694
iOS: Refactor showing of the tunnel detail
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-25 13:24:01 +02:00
Roopesh Chander and Jason A. Donenfeld
393718dfaf
iOS: Show Home screen quick actions for recent tunnels
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-25 13:24:01 +02:00
Roopesh Chander and Jason A. Donenfeld
f852b6f919
iOS: Keep track of most-recently-activated tunnels
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-25 13:24:01 +02:00
Roopesh Chander
8926434682
macOS: Workaround for unresponsive main menu when launched from Xcode
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-22 19:52:21 +05:30
Roopesh Chander
493c7b102e
macOS: Ignore bogus reopen because of login item helper
...
The bogus reopen occurs because the SMLoginItemSetEnabled actually runs
the helper app immediately. The helper app attempts to launch the main
app, causing a reopen Apple event (rapp) to be sent.
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-22 19:52:21 +05:30
Roopesh Chander
717bc8a26f
macOS: Workaround for unresponsive main menu after reopen
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-22 19:52:12 +05:30
Roopesh Chander
e582155a10
macOS: Ensure window is shown on app reopening
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-22 15:19:57 +05:30
Roopesh Chander
70d19691a7
macOS: Simplify detecting the type of an Apple event
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-20 16:42:28 +05:30
Roopesh Chander
40b1f0bac8
macOS: Don't show manage window when launched at login
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-20 16:42:28 +05:30
Roopesh Chander
52ac9b82c2
macOS: Login item: Get helper app version from xcconfig
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-20 16:42:27 +05:30
Roopesh Chander
fc1fdbbcdb
macOS: Login item: Fix Info.plist path
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-20 16:42:27 +05:30
Roopesh Chander
300268daa0
macOS: Show Manage Tunnels window on startup
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-20 16:42:27 +05:30
Roopesh Chander
9bf304a9ac
macOS: Minor refactor of StatusMenuWindowDelegate
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-20 16:42:27 +05:30
Roopesh Chander
586a592b68
macOS: Disable 'Delete Selected' when nothing is selected
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-20 16:42:27 +05:30
Roopesh Chander
c0526d2efb
macOS: Some menu item titles are automatically inferred
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-20 16:42:27 +05:30
Roopesh Chander
fdbd4f875e
macOS: Use title-style capitalization for menu items
...
As per https://developer.apple.com/design/human-interface-guidelines/macos/menus/menu-anatomy/
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-20 16:42:27 +05:30
Roopesh Chander
4a037cc706
macOS: Make it clear that status menu Quit quits the app
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-20 16:42:27 +05:30
Roopesh Chander
5190fc2249
macOS: Quit in main menu shall just close the window
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-20 16:42:27 +05:30
Roopesh Chander
3f25d54dcc
macOS: Get back removing tunnel using the Delete key
...
This now works only when the list view has focus
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-20 16:42:27 +05:30
Roopesh Chander
f9880907a2
macOS: Both list and detail main menu items should be always enabled
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-20 16:42:27 +05:30
Roopesh Chander
404fa741e8
macOS: swiftlint: Suppress incorrect warnings
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-20 16:42:27 +05:30
Roopesh Chander
6e1f03e41c
macOS: Set a main menu for the app
...
The main menu would be shown only when the manage tunnels window
is visible.
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-20 16:42:27 +05:30
Roopesh Chander
6d8965e97d
macOS: Remove custom key event handling
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-20 16:42:27 +05:30
Roopesh Chander
5e5481b69b
macOS: Show app in dock when showing the manage tunnels window
...
This way, the app can participate in Cmd+Tab
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-20 16:42:27 +05:30
Roopesh Chander
69b33c0fad
macOS: Edit view: Save on Cmd+S
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-12 15:45:26 +05:30
Roopesh Chander
167e4f0bf2
macOS: Edit view: Dismiss on Esc
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-12 13:23:52 +05:30
Roopesh Chander
6e3b28852a
macOS: Log view: Dismiss on Esc
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-05-12 13:21:42 +05:30
Roopesh Chander
5914e868ab
iOS: Log view: Improve the look
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-04-28 14:29:22 +05:30
Roopesh Chander
76894fba68
Xcode: Use dwarf for debug and dwarf-with-dsym for release
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-04-21 18:22:31 +05:30
Roopesh Chander
89a564ce62
Swift 5 migration: Make use of Result type
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-04-21 17:51:42 +05:30
Roopesh Chander
178fe86d36
macOS: Detect when updating from the App Store
...
And show an alert when tunnels are active during updation -- that
might cause the update to not work correctly.
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-04-21 15:43:10 +05:30
Roopesh Chander
98ebd55208
Log view: Don't use a global array to store log entries
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-04-10 17:57:36 +05:30
Roopesh Chander
83d0d34411
macOS: Log view: Stop updating the log once the log view is dismissed
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-04-10 15:42:39 +05:30
Roopesh Chander
cef3957875
Swift 5 migration: Handle changes in Data's pointer interface
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-04-09 11:25:04 +05:30
Roopesh Chander
d9e88c51bd
Swift 5 migration: Fix switch warnings
...
We now get a warning when switching over enums from system
frameworks even when we handle all public cases because
there can be future cases that aren't handled.
When such a future case is introduced, we'll get a warning.
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-04-09 11:25:04 +05:30
Roopesh Chander
90eb45e287
Xcode: Move to Swift 5.0
...
No code changes were necessary
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-04-07 16:42:36 +05:30
Roopesh Chander
9f3d86723a
macOS: Minor fix to export panel texts
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-04-06 17:59:42 +05:30
Roopesh Chander
11063d0f88
macOS: Tunnels list: Suppress alert buttons when removing tunnels is in progress
...
Also refactor the deletion alert into a separate helper class
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-04-06 17:53:41 +05:30
Roopesh Chander
557ee4390b
TunnelsManager: When setting a config, also set isAvailable cache
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-04-06 00:26:06 +05:30
Roopesh Chander
9ce42d152d
macOS: Tunnels list: Show the confirmation alert till removal completes
...
Fix tunnel selection during deletion
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-04-06 00:08:45 +05:30
Roopesh Chander
4c1b2e1258
TunnelsManager: Fix comparing tunnels with tunnelProviders in reload()
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-04-05 13:43:08 +05:30
Roopesh Chander
3bd611aa7c
TunnelsManager: Cache isTunnelConfigurationAvailableInKeychain
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-04-05 13:29:17 +05:30
Roopesh Chander
adbe0b065e
macOS: Attempt to remove keychain item only if verified
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-04-04 15:29:25 +05:30
Roopesh Chander
6015661beb
macOS: Simplify reusing of the detail VC when applicable
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-04-04 12:24:32 +05:30
Roopesh Chander
6e6a6b88fb
macOS: Hide other-user tunnels in the status menu
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-04-03 19:18:53 +05:30
Roopesh Chander
9690365dd4
macOS: Better handling of tunnels created by another user
...
Previously, the tunnels just got deleted.
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-04-03 19:04:12 +05:30
Roopesh Chander
0299c3929e
iOS: Log view: Make log text selectable
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-04-01 23:29:15 +05:30
Roopesh Chander
0043233872
macOS: Log view: Fix autoscroll to end of log
...
Looks like the tableview doesn't know how much to scroll to get to the
end when we use usesAutomaticRowHeights. So we wait for the tableview
to realize its frame has changed and then scroll to the bottom of the
frame explicitly.
Also, we keep track of whether the scroll view is scrolled to the end or
not every time scrolling happens, not just when we add log entries to
the table.
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-04-01 23:07:48 +05:30
Roopesh Chander
a74dd24578
macOS: Bring app to front before 'exiting with an active tunnel' alert
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-03-29 00:17:37 +05:30
Roopesh Chander
dd9506ecee
macOS: If a sheet is being shown, ignore quit and bring window to front
...
Otherwise, the 'exiting with an active tunnel' alert could get queued up
to be shown after the current sheet is dismissed.
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-03-29 00:17:37 +05:30
Roopesh Chander
f83f159f97
macOS: Log view: No need to disable Close button
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-03-28 19:32:58 +05:30
Roopesh Chander
6175de0438
iOS: Ability to view the log
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2019-03-28 19:28:27 +05:30