Jason A. Donenfeld
7b59353910
VersionPreference: account for checking state and move away from tools installer
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-07 03:27:06 +02:00
Harsh Shandilya
ab95ac83c9
MainActivity: Fix style
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-06-06 02:07:26 +02:00
Jason A. Donenfeld
51fb57433b
ToolsInstallerPreference: do not check for magisk on main thread
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-06 00:29:44 +02:00
Harsh Shandilya
d8d6e99df1
MainActivity: Silence useless warning
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-06-05 19:52:08 +05:30
Harsh Shandilya
3c3de065c6
MainActivity: collapse action menu on toolbar touch
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-06-05 15:22:40 +02:00
Jason A. Donenfeld
a17ec6b1f7
ToolsInstaller: allow installing as Magisk module
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-05 06:17:00 +02:00
Jason A. Donenfeld
db53e17e58
TunnelListFragment: hide menu when going to settings
...
Really the menu should be hidden when clicking on the action bar, too.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-05 03:05:58 +02:00
Jason A. Donenfeld
f0a3e63743
MainActivity: style
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-05 02:47:59 +02:00
Jason A. Donenfeld
d636e13717
fab: properly get theme color
...
Harsh changed this before, but my original way is what the support
library does internally.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-05 02:44:32 +02:00
Harsh Shandilya
40a30d997d
fab: Remove useless override
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-06-05 02:05:35 +02:00
Harsh Shandilya
dba8d0305e
fab: Use themed context to set style
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-06-05 02:05:23 +02:00
Jason A. Donenfeld
27072972ab
DarkMode: move to shared preferences listener
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-05 02:02:09 +02:00
Jason A. Donenfeld
d56e95c576
MainActivity: style
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-04 19:55:27 +02:00
Jason A. Donenfeld
d0ef2c43d9
FloatingActionsMenu: remove unused imports
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-04 19:12:12 +02:00
Jason A. Donenfeld
0c0c1acc3b
BaseActivity: support android 5 and 6 when clearing drawable cache
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-04 18:35:18 +02:00
Jason A. Donenfeld
48f796c463
LogExporterPreference: get all past processes
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-04 17:57:02 +02:00
Jason A. Donenfeld
8aab35a70d
BaseActivity: invalidate icon cache on Android P
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-04 17:57:02 +02:00
Jason A. Donenfeld
c4e32328fc
TunnelManager: disable dangerous intents for now
...
We need to think about how to allow this securely. It's not okay for all
apps to be allowed to twiddle with VPN settings.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-04 07:06:28 +02:00
Jason A. Donenfeld
a2ccbf003c
TunnelManager: new intents
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-04 07:06:28 +02:00
Jason A. Donenfeld
567503abc7
Backends: print versions somewhere in log
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-02 19:26:33 +02:00
Harsh Shandilya
4671f59c67
android: Cleanup classes
...
- Use final modifer wherever possible
- Use try-with-resources for input/output streams
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-06-02 19:14:56 +02:00
Harsh Shandilya
4986d92f3d
crypto: KeyEncoding: Fix style
...
- Replace python style variable names with camel case
- Don't declare multiple variables in the same line
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-06-02 19:12:30 +02:00
Jason A. Donenfeld
0b1c7cc35f
Topic: John does things differently
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-02 18:44:35 +02:00
Jason A. Donenfeld
9e278c88e6
ExporterPreferences: disable control immediately
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-02 18:38:56 +02:00
Jason A. Donenfeld
c3246060f5
Preferences: add log exporter
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-02 18:35:09 +02:00
Jason A. Donenfeld
65292aaa79
Topic: make reentrant
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-01 17:34:59 +02:00
Jason A. Donenfeld
3d57eb633e
BaseActivity: flush themed icon cache on theme change
...
The most terrible hack you have ever seen.
The drawable cache isn't properly flushed when changing the theme -- a
frameworks bug, evidently -- so we work around it by digging deep into
the mud.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-01 16:48:08 +02:00
Jason A. Donenfeld
1e45898d70
Settings: add version
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-01 16:06:56 +02:00
Harsh Shandilya
d5df0c10ab
TunnelListFragment: Dejank action mode title
...
When unselecting items, the toolbar briefly says
'0 items selected' before it reverts back to the
non-action mode toolbar which feels janky at best.
To mitigate this, just set a blank title to the action
mode toolbar when item count is 0, to facilitate the
smoothness of the transition to non-action mode toolbar.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-06-01 18:42:20 +05:30
Harsh Shandilya
a54a03aa2f
FloatingActionButton: Cleanup declaration of TranslucentLayerDrawable class
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-06-01 18:42:20 +05:30
Harsh Shandilya
4edfdd8f3b
FloatingActionButton: Make attribute grabbing not be terrible
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-06-01 18:42:19 +05:30
Jason A. Donenfeld
32d669a661
theme: add dark theme with toggle
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-01 14:57:25 +02:00
Jason A. Donenfeld
918076a670
global: fix theme situation and clean up cruft while adding more cruft
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-01 14:57:25 +02:00
Harsh Shandilya
752e61d1c7
fab: default to app theme colors
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-06-01 03:19:26 +02:00
Harsh Shandilya
125f725a03
fab: use AppCompatTextView for label
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-06-01 03:17:29 +02:00
Harsh Shandilya
3c84b48f08
fab: cleanup
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-06-01 03:16:32 +02:00
Jason A. Donenfeld
8c32c32c2b
wg-quick: don't break push notifications
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-31 16:40:50 +02:00
Jason A. Donenfeld
e664a05d4b
KeyEncoding: more constant time
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-30 23:31:20 +02:00
Jason A. Donenfeld
09833a1ba5
FloatingActionButton: import cleaned up getbase code
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-29 19:03:47 +02:00
Jason A. Donenfeld
ded0191aae
SharedLibraryLoader: introduce to work around Samsung PackageManager bugs
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-29 05:09:37 +02:00
Jason A. Donenfeld
292df12175
Support always-on-vpn
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-27 18:57:52 +02:00
Jason A. Donenfeld
64ce6cd5a2
EditorFragment: show toast on creation too
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-27 04:08:23 +02:00
Jason A. Donenfeld
7120ef9ffd
libwg-go: try no stickiness and no roaming
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-26 03:03:15 +02:00
Jason A. Donenfeld
23c4174fcd
libwg-go: reenable sticky sockets, just slightly less sticky
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-24 18:39:29 +02:00
Jason A. Donenfeld
694577b9b4
ExceptionLoggers: never have a null message
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-16 17:36:25 +02:00
Harsh Shandilya
9c3091456d
android: Directly use views for snackbars
...
There should be no need to deference an extra variable.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-05-16 17:31:31 +02:00
Harsh Shandilya
0b9bcf0f9e
global: Cleanup line lengths and misc lint warnings
...
I know we decided to ditch the idea of shutting up "Exception
thrown with empty param" warnings but this pesters me too
much and we can instead just treat this as a weird future proofing
thing if and when we end up needing the exception messages.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-05-09 18:16:14 +02:00
Harsh Shandilya
e2ab2210cd
MainActivity: Nip out as early as possible when moving to same fragment
...
Save the useless logging and fragment manager object creation.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-05-09 18:16:09 +02:00
Harsh Shandilya
fd571c53ce
TunnelEditor: Add toast messages to success events
...
Letting the user know that the operation went successfully
via visual cues is a nice UX touch.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-05-05 10:08:14 -05:00
Harsh Shandilya
37413f2fb4
TunnelEditor: Remove unused parameter
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-05-03 23:49:14 -05:00
Jason A. Donenfeld
b276833b33
config: loosen parser to match reality
...
Mid-line comments, mixed case.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-03 19:15:09 -05:00
Jason A. Donenfeld
f77eac6796
global: fix up copyrights
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-03 19:15:09 -05:00
Samuel Holland
e8d8d5dc29
Keypair: Minimize the scope of warning suppression
...
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-05-02 10:31:25 -05:00
Samuel Holland
3e8d457501
KeyEncoding: Address lints/warnings and match line length
...
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-05-02 10:31:25 -05:00
Samuel Holland
aa92c4a9d5
global: Add or update copyright headers in Java code
...
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-05-02 10:31:25 -05:00
Harsh Shandilya
24572aa861
global: Some more lint cleanup
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-05-02 17:14:35 +02:00
Jason A. Donenfeld
ba1b6c7095
ZipExporterPreference: account for directory already existing
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-30 19:55:06 +02:00
Samuel Holland
843003f436
global: Clean up Java
...
Address Java and Android lints.
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-04-30 11:50:21 -05:00
Samuel Holland
8e4fb91a28
global: Clean up XML
...
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-04-30 11:39:23 -05:00
Samuel Holland
7eedf08d4b
global: Automatic code formatting
...
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-04-30 11:39:12 -05:00
Jason A. Donenfeld
05b4e395a9
Tunnel importer: stricter file filters
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-30 17:37:34 +02:00
Jason A. Donenfeld
a47ddf57d1
ZipExporterPreference: requireNonNull is redundant
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-30 15:12:49 +02:00
Harsh Shandilya
f9d68185e2
wg: Collapse fab when pressing back before exiting
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-04-30 17:33:24 +05:30
Harsh Shandilya
f1fa46829d
SettingsActivity: Migrate permissions check to AppCompat
...
Pretty straightforward, I was clearly overthinking this.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-04-30 17:30:25 +05:30
Harsh Shandilya
a6e530049c
ZipExporterPreference: Correctly get preference activity
...
In AppCompat based preferences, this#getContext returns an
object of android.view.ContextThemeWrapper class from where
we can safely extract a reference to our parent activity.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-04-30 17:30:25 +05:30
Harsh Shandilya
77c0d4dfa6
TunnelListFragment: Use Collections methods in place of Arrays
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-04-30 17:30:25 +05:30
Harsh Shandilya
7e415a62c7
wg: Break out crossport dependency
...
Replace all crossport uses with upstream design
support library components.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-04-30 17:30:25 +05:30
Harsh Shandilya
fe4cc22ca0
SettingsActivity: Gracefully exit when options menu home is pressed
...
This is an activity, so it does not join the fragment backstack, but
instead piles on top
SettingsActivity
| -> MainActivity
| -> EditorFragment
| -> DetailFragment
| -> ListFragment
Without overriding the back button in the toolbar, it simply
kills the entire state on MainActivity and causes it to reload.
By calling finish() on the activity when home is pressed from the
item menu we can silently make it die without affecting any underlying
states held by MainActivity and instead return to the exact fragment
we launched settings from.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-04-30 17:30:24 +05:30
Harsh Shandilya
4ec0b3a908
Prefer AppCompat classes
...
AppCompat is the preferred way to go for any app targetting
a wider range of SDKs.
Replace all activities and fragments with their AppCompat
variants and fixup method calls to use support variants.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-04-30 17:30:24 +05:30
Jason A. Donenfeld
596904977a
TunnelDetailFragment: rewrite and simplify
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-30 05:29:54 +02:00
Jason A. Donenfeld
73b0c4ea81
TunnelEditorFragment: rewrite and simplify
...
This should remove some null pointer dereferences and overall make the
thing more robust.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-30 05:29:54 +02:00
Jason A. Donenfeld
622f41f11f
Allow exporting to zip file
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-29 07:53:56 +02:00
Jason A. Donenfeld
f4e462fabd
Allow importing from zip file
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-28 21:55:42 +02:00
Harsh Shandilya
217ab5e17f
config: Minor cleanup
...
- Stop implicitly assuming locales in String.format
- Cleanup method visibilities
- Improve uses of Integer methods
- Remove unused getToken method
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-04-28 06:07:48 +02:00
Harsh Shandilya
ba862b166b
Quick cleanup across the board
...
- Clean up imports
- Adjust method visibility
- Drop in NonNull annotations where needed
- Prevent potential NPEs from nulled getActivity calls
- Remove unused methods
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2018-04-28 06:07:48 +02:00
Jason A. Donenfeld
63071f57b7
Use validation instead of two-way binding
...
This is insane, but it appears to be working. We essentially store
things in a separate class for editing, and then commit it back at a
given time.
This business with onViewStateRestored in both TunnelEditorFragment and
in TunnelDetailFragment is buggy and likely wrong.
In general TunnelEditorFragment should probably be rewritten. The
relationship with the changed name is not clear.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-28 04:51:43 +02:00
Jason A. Donenfeld
693228985d
Do not do DNS lookups for IPs
...
This involves reflection, which is a bummer, but it's better than doing
unnecessary DNS lookups.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-27 18:34:52 +02:00
Jason A. Donenfeld
9ee976823d
Throw IllegalArgumentExceptions when arguments are bad
...
This will make the two way data binding crash more, but it will improve
the robustness of the config file parser, which deals with exceptions
gracefully, and when we move to one way data binding, it will help with
that too.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-27 05:43:07 +02:00
Jason A. Donenfeld
31101f2418
WgQuickBackend: always create configuration file
...
It might be removed on an update.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-26 19:42:55 +02:00
Jason A. Donenfeld
532edf774a
GoBackend: bring down tunnels when revoked or disconnected
...
This synchronizes the OS's connection state with ours, such as when the
user disconnects using the system UI.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-25 18:27:18 +02:00
Jason A. Donenfeld
2c9e11f4f2
Curve25519: fix up spacing
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-25 14:36:51 +02:00
Jason A. Donenfeld
88cf839c90
Update application state based on wg-quick
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-23 17:04:17 +02:00
Jason A. Donenfeld
80f22e6c3d
Determine MTU automatically
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-18 16:44:05 +02:00
Jason A. Donenfeld
53d29b312f
More javafication
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-18 05:28:31 +02:00
Jason A. Donenfeld
140fb395dc
GoBackend: default MTU is 1280
...
This sucks, but it works with mobile networks. Later we can do something
sophisticated like we do with wg-quick.c, but not now.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-17 05:59:23 +02:00
Jason A. Donenfeld
b5360871e8
Remove sloppy java with enterprise java horrors
...
Since the amount of mind numbing boiler plate has been increased, this
must be the proper way to do things.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-17 05:27:05 +02:00
Aurélien Chabot
4c9143c835
GoBackend: Handle vpn service expiration
...
After a timeout the android system is destroying the vpn service when it
is not used. By using a completable future we can wait for the service
to be relaunch on demand.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-17 02:15:24 +02:00
Aurélien Chabot
74eae55c87
Config: Handle multiple address or dns in config file
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-17 02:15:24 +02:00
Aurélien Chabot
44698bb000
GoBackend: Add support for multiple address and dns as a comma separated list
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-17 02:15:24 +02:00
Aurélien Chabot
175f7e16dd
GoBackend: parse allowed ips
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-17 02:15:24 +02:00
Aurélien Chabot
c6d311923a
GoBackend: Parse the dns address
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-17 02:15:24 +02:00
Aurélien Chabot
6878aba911
GoBackend: IPv6 handling
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-17 02:15:24 +02:00
Aurélien Chabot
d97312b96a
GoBackend: Resolve endpoint before passing it to the go lib
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-17 02:15:24 +02:00
Aurélien Chabot
9dfab4d60f
GoBackend: Use the android VpnService to encapsulate the go backend
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-17 02:15:24 +02:00
Jason A. Donenfeld
0ea6f73332
GoBackend: integrate into app
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-02-17 21:14:09 +01:00
Jason A. Donenfeld
d1c863b16e
KeyEncoding: add constant time hex implementation
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-02-13 19:47:31 +01:00
Samuel Holland
c683d23125
FileConfigStore: Warn for deletion failure in exception path
...
There's nothing we can do about it at this point; we're already rolling
back changes.
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-01-18 04:12:54 -06:00
Samuel Holland
23535c0577
WgQuickBackend: Always pass the full path to wg-quick
...
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-01-18 04:10:58 -06:00
Samuel Holland
8dde6c3c0f
fragments: Be extra paranoid about the binding getting destroyed
...
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-01-18 04:10:58 -06:00
Samuel Holland
54f201174d
TunnelManager: Use constants directly where appropriate
...
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-01-17 14:35:39 -06:00