Harsh Shandilya
183273dcf5
AddTunnelsSheet: Make behaviour nullable
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-29 11:04:59 +05:30
Harsh Shandilya
b3bb7c694b
build: Improve R8 rules and enable aggressive optimization modes
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-29 10:52:54 +05:30
Harsh Shandilya and Jason A. Donenfeld
03a838ba2d
ui: Remove unnecessary non-null assertion in TAG fields
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-28 23:07:50 -06:00
Harsh Shandilya and Jason A. Donenfeld
b00aacbc41
Fix tunnel editor theming
...
Also set textInputStyle in the base theme to avoid setting styles to all elements
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-28 22:38:04 -06:00
Harsh Shandilya and Jason A. Donenfeld
fb3fec299f
TunnelEditor: replace tunnel detail view with ConstraintLayout implementation
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-28 15:22:11 -06:00
Harsh Shandilya and Jason A. Donenfeld
d2f435b265
ClipboardUtils: Update to handle TextInputEditText
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-28 15:22:06 -06:00
Harsh Shandilya
3a163acd6d
gradle: Remove useless comment
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-28 19:50:34 +05:30
Harsh Shandilya
df4bf9b688
Disable screen capture in tunnel editor
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-28 19:49:54 +05:30
Harsh Shandilya
0f67a2f194
Upgrade streamsupport dependency
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-28 19:21:53 +05:30
Harsh Shandilya
b9b188693c
strings: Sync from Crowdin
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-28 02:55:21 +05:30
Harsh Shandilya
9fe008d407
ObservableTunnel: Don't recurse in getConfig
...
The correct way to retrieve the value inside a getter/setter is to use `field` to ensure
you don't invoke the getter while inside the getter and trigger a stack overflow
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-28 02:35:01 +05:30
Harsh Shandilya
536a6f3f83
ui: Replace ErrorMessages getter with indexing operator
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-27 15:38:04 +05:30
Harsh Shandilya
b9fd3d37f2
Convert ErrorMessages to Kotlin
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-27 15:38:04 +05:30
Harsh Shandilya and Jason A. Donenfeld
e0b87c3ff2
Convert AsyncWorker to Kotlin
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-27 03:09:24 -06:00
Harsh Shandilya and Jason A. Donenfeld
b2bbaf050c
util: Start converting to Kotlin
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-26 22:33:01 -06:00
Harsh Shandilya and Jason A. Donenfeld
63a395125a
Introduce realtime log viewer
...
This contains a share button and a save button, the former using a
custom content provider.
Co-authored-by: Jason A. Donenfeld <Jason@zx2c4.com >
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2020-03-26 00:49:01 -06:00
Harsh Shandilya
1ad0ef3f61
LogExporterPreference: Don't ask for storage permissions on Android 10 and above
...
We use the proper MediaStore implementation on Android 10 which makes it unnecessary.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-25 21:02:02 +05:30
Harsh Shandilya
c1c285db86
Upgrade to Gradle 6.3
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-25 02:05:12 +05:30
Harsh Shandilya
93f80cdc50
Resolve manifest warnings
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-24 11:30:28 +05:30
Harsh Shandilya
383659fb8a
Upgrade to Kotlin 1.3.71
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-23 22:50:04 +05:30
Harsh Shandilya and Jason A. Donenfeld
55849cad65
Replace PermissionRequestCallback with direct methods
...
These are much cleaner in Kotlin code.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-20 22:22:56 -06:00
Harsh Shandilya and Jason A. Donenfeld
edb76af820
build: Load keystore file from rootProject
...
Since the signing config is also stored in the project root it makes sense to have storeFile
path be relative to it.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-20 22:22:56 -06:00
Harsh Shandilya and Jason A. Donenfeld
04d0b819f6
Convert activity package to Kotlin
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-20 22:22:56 -06:00
Harsh Shandilya
0899b49bb3
Use more Kotlin-esque code where applicable
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-19 14:45:07 +05:30
Harsh Shandilya
fc0660ca8d
ui: Convert fragment package to Kotlin
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-19 09:24:48 +05:30
Harsh Shandilya
b2ed5dbbc8
codestyle: Require atleast 10 references before using star imports
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-19 09:24:48 +05:30
Harsh Shandilya
94c864503e
ui: Convert configStore package to Kotlin
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-19 09:24:47 +05:30
Harsh Shandilya
55c9d39c13
strings: Remove now defunct translations
...
The original strings are removed.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-18 15:18:02 +05:30
Harsh Shandilya
2b31eac1af
publish.gradle: Use non-deprecated API to prevent eager configuration of tasks
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-14 10:44:52 +05:30
Harsh Shandilya
093139bc91
tunnel: Add an initial set of unit tests
...
Includes a control set of broken configuration files that we attempt to parse and
verify that the parser fails in a predictable and consistent manner.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-14 10:32:12 +05:30
Harsh Shandilya
6c8a4a6a28
tunnel: Remove MISSING_VALUE from BadConfigException reasons
...
This is covered under SYNTAX_ERROR which feels like a reasonable choice,
so get rid of this unused field and associated resource string.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-14 10:25:57 +05:30
Harsh Shandilya
8f85e4c88f
tunnel: Codestyle cleanups
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-10 13:20:16 +05:30
Harsh Shandilya
a3b9c3b884
ui: Codestyle cleanups
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-10 13:08:28 +05:30
Harsh Shandilya
021e16959f
Upgrade to Gradle 6.2.2
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-10 12:45:06 +05:30
Harsh Shandilya
37adab76e1
BaseFragment: Always anchor Snackbars to FAB
...
This makes tunnel list fragment correctly render them above the FAB.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-10 12:32:23 +05:30
Harsh Shandilya
0db233e5c7
Use dark system bars on API 21
...
Light system bars didn't come around until API 23.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-09 22:12:14 +05:30
Harsh Shandilya
7894894610
Use AndroidX Nullable annotation everywhere
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-09 19:24:27 +05:30
Harsh Shandilya
7d48bef70a
Rename app module to ui
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-09 19:24:27 +05:30
Harsh Shandilya
6bc3e257f8
Enable nonnull generation for tunnel module
...
Also cleanup nonnull.gradle while we're at it
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-09 19:24:26 +05:30
Harsh Shandilya
adc613d801
Migrate tunnel related classes to tunnel/ Gradle module
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-09 19:24:26 +05:30
Harsh Shandilya
3c2fa15dc2
Fix tablet mode crashes and UI inconsistencies
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-09 10:50:36 +05:30
Harsh Shandilya
e8c9c20570
MainActivity: Dispatch insets to all fragments
...
Fixes tunnel list fragment rendering behind statusbar when other fragments are showing
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-09 10:32:48 +05:30
Harsh Shandilya
0db2578ca0
Switch to CoordinatorLayout for activity container
...
Snackbars use it to infer the right margins
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-09 10:32:03 +05:30
Harsh Shandilya
e71d6157f1
Add coordinatorlayout dependency and sort
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-09 10:20:14 +05:30
Harsh Shandilya
7ca2a0df18
global: Use requireContext rather than getContext in fragments
...
requireContext provides helpful error messages when it's null as opposed to getContext
which simply throws a NullPointerException.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-09 10:12:50 +05:30
Harsh Shandilya and Jason A. Donenfeld
0990430513
Upgrade AGP and Kotlin
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-03-08 14:05:45 +08:00
Harsh Shandilya
6135a1f60a
MainActivity: Remove unused imports
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-02-28 13:25:28 +05:30
Harsh Shandilya
5e94adc73a
ModuleLoader: Staticize isModuleLoaded
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-02-28 13:16:31 +05:30
Harsh Shandilya
44fc0228a9
Upgrade to build tools 29.0.3
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-02-28 12:28:02 +05:30
Harsh Shandilya
4d2bfe3ef3
Resolve some lint and build warnings
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-02-26 20:26:49 +05:30
Harsh Shandilya
75b0fed00d
ThemeChangeAwareActivity: Remove drawable cache buster
...
Shouldn't be needed anymore.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-02-25 17:14:52 +05:30
Harsh Shandilya
927cc1fcf5
Make exclusions dialog fit more items in viewport
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-02-25 14:23:28 +05:30
Harsh Shandilya
b3090e277a
MainActivity: Fix backstack bug exposed by fragment 1.2.2
...
We've been relying on implicit backstack changes to handle removing the detail fragment for a while which is now gone so let's do this properly like we should
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-02-25 14:23:28 +05:30
Harsh Shandilya
0b45151a3d
Resolve deprecation warnings
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-02-25 09:53:01 +05:30
Harsh Shandilya
eb5bfa9b5d
Cleanup inset dispatch code
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-02-25 09:53:00 +05:30
Harsh Shandilya
4267e94dcd
Replace FrameLayouts with recommended FragmentContainerView
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-02-25 08:57:29 +05:30
Harsh Shandilya
fac9e7612f
Add fragment dependency
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-02-25 08:57:28 +05:30
Harsh Shandilya
01e8e535f4
Ensure insets are dispatched to all fragments
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-02-25 08:57:28 +05:30
Harsh Shandilya
e5e2e7571f
Setup EdgeToEdge
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-02-25 08:57:27 +05:30
Harsh Shandilya
c889a8c8de
Add EdgeToEdge and coreKtx dependency
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-02-25 08:57:26 +05:30
Harsh Shandilya
cbf2ea7b48
Target JVM 1.8 from Kotlin as well
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-02-25 08:57:26 +05:30
Harsh Shandilya
8078347880
Upgrade AGP and Gradle
...
If anybody has a problem with missing or mismatched NDK, run this command to install the right version
$ANDROID_SDK_ROOT/tools/bin/sdkmanager 'ndk;20.0.5594570'
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-02-25 08:29:53 +05:30
Harsh Shandilya
dd8a802bec
Resolve format string warnings
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-02-23 18:55:09 +05:30
Harsh Shandilya
6f6602ddd1
AppListDialogFragment: Revamp toggle logic
...
Rather than always toggle all elements, elect to unselect all if any are selected. This allows
returning to a clean state in at most two clicks.
Suggested-by: Jason A. Donenfeld <Jason@zx2c4.com >
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-02-23 15:07:39 +05:30
Harsh Shandilya
33e69db436
AppListDialogFragment: Code cleanup
...
- Using the require_() methods provides helpful error messages when things are null
compared to the get_() methods which throw NPEs.
- Ensure currentlyExcludedApps is empty but never null
- Rename inner variable to silence name shadowing lint
- Make setExclusionsAndDismiss private
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-02-23 15:07:39 +05:30
Harsh Shandilya
a62bd28e1f
SharedLibraryLoader: Fix leaked Closeable warning
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-02-16 15:07:21 +05:30
Harsh Shandilya
da1188c6ee
Record StrictMode failures to logcat
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-02-16 15:07:20 +05:30
Harsh Shandilya and GitHub
02ea696070
Port tunnel creation UI from Viscerion
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2020-02-14 15:27:17 +05:30
Harsh Shandilya and Jason A. Donenfeld
d25702d99d
Implement custom theming to match Google's AOSP design
...
Closes : #4
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-02-12 15:23:53 +01:00
Harsh Shandilya
2ed2a1431d
Upgrade to Gradle 6.1
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-01-24 09:57:25 +05:30
Harsh Shandilya
3a425394ca
GoBackend: Ensure we're unmetered on API 29 as well
...
VPN apps targetting Android 10 are treated as metered by default.
Source: https://developer.android.com/reference/android/net/VpnService.Builder.html#setMetered(boolean)
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2020-01-24 09:51:48 +05:30
Harsh Shandilya and Jason A. Donenfeld
4d3043c041
Introduce TunnelToggleActivity
...
On Android 10, apps cannot start services when they're in the
background. This means that starting VpnService from within
QuickTileService when the app is not active ends badly. To mitigate this
situation, we introduce a proxy activity of sorts that will handle
starting VpnService for us. The activity is completely transparent and
invisible, and does only four things:
- Toggle the tunnel state
- Request the Tile bound by QuickTileService to refresh its state
- Handle any error that might have been thrown during toggle
- Call finishAffinity() and go away
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2019-12-20 11:26:33 +01:00
Harsh Shandilya
a9f04c0bf4
Update AGP to 3.5.3
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2019-12-15 11:08:00 +05:30
Harsh Shandilya
84334a6bc9
Update Gradle to 6.0.1
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2019-12-15 11:07:59 +05:30
Harsh Shandilya and Jason A. Donenfeld
d2b9de740d
Migrate to Android 10
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2019-09-30 19:45:11 +02:00
Harsh Shandilya
c545b5e65f
FragmentUtils: Directly cast context as SettingsActivity
...
ContextThemeWrapper#getContext seems to be an instance of ContextImpl now which
is not public API and also not what we want. Directly cast context as SettingsActivity
which seems to work exactly how we need this to.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2019-09-27 17:26:56 +05:30
Harsh Shandilya
992b6486a1
Update runtime dependencies
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2019-09-27 13:27:51 +05:30
Harsh Shandilya
421b1f889b
Add LeakCanary to debug builds
...
LeakCanary is an advanced memory leak detection library for Android designed by the fine folks
at Square.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2019-09-27 13:18:27 +05:30
Harsh Shandilya
1ee1368e18
Fix activity leak on Android Q
...
This workaround was discussed at https://twitter.com/Piwai/status/1169274622614704129 after
Google had closed the issuetracker with a WONTFIX at https://issuetracker.google.com/issues/139738913 .
The situation has since changed with Google promising a fix on October's ASB but since we can't really
know, patch this ourselves for the timebeing.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2019-09-27 13:18:27 +05:30
Harsh Shandilya
1a6a8789c1
Update to Golang 1.12.10
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2019-09-27 13:15:06 +05:30
Harsh Shandilya
b5c155db1b
Update AGP to 3.5.0
...
Also update the gitignore to ignore the '.cxx' directory AGP 3.5.0
uses for native build artifacts.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2019-09-27 13:15:06 +05:30
Harsh Shandilya
6c5b46eadd
Uprev to Gradle 5.6.2
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2019-09-27 12:59:53 +05:30
Harsh Shandilya and Jason A. Donenfeld
69c6fa0a24
ToolsInstaller: Use chcon over restorecon
...
restorecon probes file_contexts to get the context
to be applied to the file. /sbin/.magisk does not
exist in file_contexts for obvious reasons so restorecon
always fails. Use chcon directly with the system_file
context to allow contexts to be applied.
Suggested-by: Chris Renshaw <osm0sis@outlook.com >
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2019-02-14 11:03:41 +01:00
Harsh Shandilya and Jason A. Donenfeld
6d0fde218b
Bump stream support libraries to latest stable
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2018-12-18 17:58:55 +01:00
Harsh Shandilya
495bf9c954
Enable proguard and wire up rules
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2018-12-18 22:18:00 +05:30
Harsh Shandilya and Jason A. Donenfeld
6fdf0266cf
Migrate to AndroidX
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2018-12-18 16:54:54 +01:00
Harsh Shandilya and Jason A. Donenfeld
535c611f2d
QuickTileService: Don't use deprecated getDrawable method
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2018-08-26 11:04:01 -06:00
Harsh Shandilya and Jason A. Donenfeld
6efbf65405
Target SDK 28
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2018-08-26 11:04:01 -06:00
Harsh Shandilya and Jason A. Donenfeld
abb121224d
FragmentUtils: Make final and prevent instantiation
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2018-08-26 11:04:01 -06:00
Harsh Shandilya and Jason A. Donenfeld
8ad4657d6f
Sort dependencies
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2018-08-26 11:04:01 -06:00
Harsh Shandilya and Jason A. Donenfeld
6d3f1e00a5
Supress false-positive DefaultLocale warnings
...
We decided in 402472237e8f that it's a bad idea for our use-case
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2018-08-26 11:04:01 -06:00
Harsh Shandilya and Jason A. Donenfeld
c38f6c471d
Extract error messages to string resources
...
Useful for validation errors and localisation later on
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2018-08-26 11:04:01 -06:00
Harsh Shandilya and Jason A. Donenfeld
6493a9a1f2
Remove placeholder color and directly use alpha
...
Why wasn't this done like this in the first place?
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2018-07-30 14:28:27 +02:00
Harsh Shandilya and Jason A. Donenfeld
b364221c93
FloatingActionBehaviour: Adjust constructors
...
Get these in line with the parent class
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2018-07-26 01:36:53 +02:00
Harsh Shandilya and Jason A. Donenfeld
bb20c89cd5
tools: Bump wireguard submodule
...
This force pushing is going to be the death of me
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2018-07-24 18:26:53 +02:00
Harsh Shandilya and Jason A. Donenfeld
7689905c78
config: Remove Locale based string format
...
The configurations are supposed to be in a very specific
format which is not user-facing and hence doesn't have to
be adjusted for locale avoiding both the redundancy as well
as potential breakages in the configuration file format from
different locales.
Fixes: 71c67aa24ae2 ("config: Minor cleanup")
Reported-by: Samuel Holland <samuel@sholland.org >
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2018-07-24 17:57:56 +02:00
Harsh Shandilya and Jason A. Donenfeld
76fb6a318e
Show help text when no tunnels are imported
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2018-07-22 23:21:17 +02:00
Harsh Shandilya and Jason A. Donenfeld
3357be9557
RTL layout fixes
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2018-07-22 18:21:39 +02:00
Harsh Shandilya and Jason A. Donenfeld
6696e838da
treewide: Optimize imports
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2018-07-22 18:20:23 +02:00
Harsh Shandilya and Jason A. Donenfeld
3e37289b68
UI: use background color for navbar in dark mode
...
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev >
2018-07-20 15:53:41 +02:00