Go to file
Nikita Pustovoi 0bd39309c8 ui: allow importing tunnel from an QR image stored on the device
Add a new feature to import a tunnel from a saved QR image, this feature
integrates into 'import from file' flow, however adds a condition, if
file is an image, attempt to parse it as QR image file.

My use case for this feature, is to allow easier sharing of tunnels to
family.  Scanning QR code is ok when you have an external display to
show it, but if you sent QR code to someone, there is no way to import
it in the app.  If you share a config file, that becomes way harder for
a non-technical person to import as now they need to find a file with
that name in the file picker etc etc, Where the images are very visible
in the file picker, and user can easily recognize it for import.

Testing:
- Click "+" blue button, try to import a valid `.conf` file - the
  'original' file flow should not be affected
- Click "+" blue button, try to import a valid QR code image - if QR
  code was parsed, then a new tunnel will be added.
- Click "+" blue button, try to import an invalid QR code image - Error
  message will be shown

Signed-off-by: Nikita Pustovoi <deishelon@gmail.com>
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2022-03-06 10:48:15 -07:00
.idea global: bump copyright year 2021-10-29 16:47:12 +02:00
gradle/wrapper gradle: bump wrapper to 7.3.3 2022-01-08 15:30:11 +05:30
tunnel tunnel: fix BadConfigExceptionTest 2022-02-09 12:01:56 +01:00
ui ui: allow importing tunnel from an QR image stored on the device 2022-03-06 10:48:15 -07:00
.gitignore gitignore: add gradlew.bat 2020-06-25 01:36:31 +05:30
.gitmodules Migrate tunnel related classes to tunnel/ Gradle module 2020-03-09 19:24:26 +05:30
build.gradle build: upgrade dependencies 2022-03-03 11:53:18 +05:30
COPYING global: move to Apache 2.0 2018-07-06 16:28:46 +02:00
gradle.properties gradle: update property set with AGP 7 experimental flags 2021-07-29 12:30:07 +05:30
gradlew gradle: bump wrapper to 7.2 2021-10-25 22:38:00 +05:30
README.md README: re-add desugaring block 2021-10-29 17:19:00 +02:00
settings.gradle build: upgrade dependencies 2022-03-03 11:53:18 +05:30
sync-crowdin.sh build: add crowdin syncer script and use it 2020-10-14 17:16:36 +02:00
version.gradle version: bump 2021-10-29 17:21:43 +02:00

Android GUI for WireGuard

Download from the Play Store

This is an Android GUI for WireGuard. It opportunistically uses the kernel implementation, and falls back to using the non-root userspace implementation.

Building

$ git clone --recurse-submodules https://git.zx2c4.com/wireguard-android
$ cd wireguard-android
$ ./gradlew assembleRelease

macOS users may need flock(1).

Embedding

The tunnel library is on Maven Central, alongside extensive class library documentation.

implementation 'com.wireguard.android:tunnel:$wireguardTunnelVersion'

The library makes use of Java 8 features, so be sure to support those in your gradle configuration with desugaring:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
    coreLibraryDesugaringEnabled = true
}
dependencies {
    coreLibraryDesugaring "com.android.tools:desugar_jdk_libs:1.1.5"
}

Translating

Please help us translate the app into several languages on our translation platform.