aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/app/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* ConfigStore: Add a rename method and implement itSamuel Holland2018-01-102-0/+19
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* FileConfigStore: Simplify error handlingSamuel Holland2018-01-091-8/+4
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* WgQuickBackend: properly report exception so alert showsJason A. Donenfeld2018-01-102-10/+18
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* Tunnel: ifname has max len 15Jason A. Donenfeld2018-01-101-2/+2
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* TunnelEditorFragment: do not pass null localConfigJason A. Donenfeld2018-01-101-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Otherwise we might dereference it, per this play store gathered trace: Xiaomi Redmi 3S (land), 2048MB RAM, Android 7.1 java.lang.NullPointerException: at com.wireguard.android.model.Tunnel.setConfig (Tunnel.java:118) at com.wireguard.android.fragment.TunnelEditorFragment.onOptionsItemSelected (TunnelEditorFragment.java:160) at android.app.Fragment.performOptionsItemSelected (Fragment.java:2478) at android.app.FragmentManagerImpl.dispatchOptionsItemSelected (FragmentManager.java:2182) at android.app.FragmentController.dispatchOptionsItemSelected (FragmentController.java:336) at android.app.Activity.onMenuItemSelected (Activity.java:3211) at com.android.internal.policy.PhoneWindow.onMenuItemSelected (PhoneWindow.java:1219) at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected (MenuBuilder.java:761) at com.android.internal.view.menu.MenuItemImpl.invoke (MenuItemImpl.java:152) at com.android.internal.view.menu.MenuBuilder.performItemAction (MenuBuilder.java:904) at com.android.internal.view.menu.MenuBuilder.performItemAction (MenuBuilder.java:894) at android.widget.ActionMenuView.invokeItem (ActionMenuView.java:616) at com.android.internal.view.menu.ActionMenuItemView.onClick (ActionMenuItemView.java:152) at android.view.View.performClick (View.java:5637) at android.view.View$PerformClick.run (View.java:22433) at android.os.Handler.handleCallback (Handler.java:751) at android.os.Handler.dispatchMessage (Handler.java:95) at android.os.Looper.loop (Looper.java:153) at android.app.ActivityThread.main (ActivityThread.java:6244) at java.lang.reflect.Method.invoke (Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:891) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:781) Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* QuickTileService: sometimes tile is nullJason A. Donenfeld2018-01-101-0/+2
| | | | | | | | | | | | | | | | | | According to play store reports, such as: wt88047, 0MB RAM, Android 8.1 java.lang.NullPointerException: at com.wireguard.android.QuickTileService.updateTile (QuickTileService.java:97) at com.wireguard.android.QuickTileService.onStartListening (QuickTileService.java:56) at android.service.quicksettings.TileService$H.handleMessage (TileService.java:407) at android.os.Handler.dispatchMessage (Handler.java:106) at android.os.Looper.loop (Looper.java:164) at android.app.ActivityThread.main (ActivityThread.java:6520) at java.lang.reflect.Method.invoke (Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:442) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807) Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* WgQuickBackend: Finish the implementationSamuel Holland2018-01-091-7/+29
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* model: Chain completions to avoid race conditionsSamuel Holland2018-01-092-23/+18
| | | | | | | | Otherwise getConfigAsync().thenCompose(x -> setState()) would be unsafe. This reverts commit a6595a273afd50524cc66765c6bfbdcc34cb12e4. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* global: Clean up error loggingSamuel Holland2018-01-095-10/+13
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* WgQuickBackend: Log when tunnels can't be enumeratedSamuel Holland2018-01-091-1/+2
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* RootShell: Improve shell start error handlingSamuel Holland2018-01-091-9/+14
| | | | | | | No need to catch and re-throw exceptions before starting the process. If running `su` itself fails, there's no (functional) root, so report that. Signed-off-by: Samuel Holland <samuel@sholland.org>
* RootShell: Be stricter about command delimitersSamuel Holland2018-01-091-13/+24
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* RootShell: stop if we can't startJason A. Donenfeld2018-01-091-31/+36
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* RootShell: hoist out synchronizationJason A. Donenfeld2018-01-091-11/+7
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* ToolsInstaller: Propagate NoRootException properlySamuel Holland2018-01-092-32/+34
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* RootShell: Simplify, synchronize, clean upSamuel Holland2018-01-092-128/+89
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* TunnelListFragment: Remove useless keywordSamuel Holland2018-01-091-1/+1
| | | | | | final doesn't do anything in try-with-resources (it's always final). Signed-off-by: Samuel Holland <samuel@sholland.org>
* ToolsInstaller: terminators are better than seperatorsJason A. Donenfeld2018-01-091-7/+7
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* RootShell: synchronize accesses to single shellJason A. Donenfeld2018-01-091-1/+1
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* RootShell: Simplify constructorSamuel Holland2018-01-081-19/+6
| | | | | | ToolsInstaller now takes care of installing the tools. Signed-off-by: Samuel Holland <samuel@sholland.org>
* WgQuickBackend: Ensure tools are available before useSamuel Holland2018-01-082-3/+10
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* ToolsInstaller: Add a method to ensure tool availabilitySamuel Holland2018-01-081-0/+28
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* WgQuickBackend: Inline resolveState()Samuel Holland2018-01-081-10/+5
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* ToolsInstaller: Add methods to check/make symlinksSamuel Holland2018-01-081-0/+35
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* ToolsInstallerPreference: Examine current state on loadSamuel Holland2018-01-081-0/+7
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* ToolsInstaller: Add method to check installation statusSamuel Holland2018-01-081-14/+24
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* TunnelEditorFragment: Fix dismissing creator activitySamuel Holland2018-01-081-0/+1
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* global: Fix or suppress most lints/warningsSamuel Holland2018-01-0817-39/+47
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* project: Remove currently-unused librarySamuel Holland2018-01-081-2/+0
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* Fragment/Tile: Make success/error messages translatableSamuel Holland2018-01-088-74/+102
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* layout: never use suggestionsJason A. Donenfeld2018-01-092-8/+8
| | | | | | | | | IP addresses and key material could be potentially sensitive. We also don't want any interactions with the suggestive text APIs. So, we mark it as both a visible password and we turn off suggestions. This will fix the length limit, too, in Android 8. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* TunnelListFragment: fix plural grammarJason A. Donenfeld2018-01-091-3/+4
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* RootShell: fix off by oneJason A. Donenfeld2018-01-081-7/+2
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* QuickTileService: show toast for longer and use right messagesJason A. Donenfeld2018-01-082-2/+7
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* global: Prefix tags with WireGuard/Jason A. Donenfeld2018-01-0811-11/+11
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* RootShell: multiplex commandsJason A. Donenfeld2018-01-085-47/+150
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* Port over remaining error handlingSamuel Holland2018-01-081-0/+12
| | | | | | | This doesn't really belong here, but there's no sense in throwing it away--even here, it's a minor optimization. Signed-off-by: Samuel Holland <samuel@sholland.org>
* Handle tunnel state change errors appropriatelySamuel Holland2018-01-084-3/+77
| | | | | | | This class should probably be renamed and moved, but I don't know to what or where. Signed-off-by: Samuel Holland <samuel@sholland.org>
* TunnelListFragment: Fix crash on deleting multiple tunnelsSamuel Holland2018-01-081-1/+8
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* ToggleSwitch: Improve reliabilitySamuel Holland2018-01-082-23/+9
| | | | | | It's not great, but it's better than it was. Signed-off-by: Samuel Holland <samuel@sholland.org>
* WgQuickBackend: Improve error handlingSamuel Holland2018-01-081-6/+15
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* Tunnel: Add a State factory methodSamuel Holland2018-01-081-1/+5
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* project: Global cleanupSamuel Holland2018-01-0822-144/+112
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* Application: Remove unneeded exported componentSamuel Holland2018-01-081-2/+0
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* ToolsInstaller: Extract to its own classesSamuel Holland2018-01-086-82/+171
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* TunnelManager: Simplify save/resume methodsSamuel Holland2018-01-072-10/+9
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* BaseActivity: Make variable names consistentSamuel Holland2018-01-071-2/+2
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* TunnelManager/QuickTileService: Remember last used tunnelSamuel Holland2018-01-072-101/+110
| | | | | | | This is actually a bit simpler than having a manually-selected "primary" tunnel, and is hopefully easier for the user. Signed-off-by: Samuel Holland <samuel@sholland.org>
* Remove primary configuration preferenceSamuel Holland2018-01-074-60/+1
| | | | | | It is no longer used. Signed-off-by: Samuel Holland <samuel@sholland.org>
* FileConfigStore: Move function returns outside try blocksSamuel Holland2018-01-071-2/+2
| | | | | | | This makes more clear what things can throw exceptions, and the functions' control flow. Signed-off-by: Samuel Holland <samuel@sholland.org>