Go to file
Jason A. Donenfeld 58c19385a3 ui: do not allow double clicking fab to show menu twice
Exception java.lang.IllegalStateException:
  at androidx.fragment.app.FragmentStore.addFragment (FragmentStore.java:92)
  at androidx.fragment.app.FragmentManager.addFragment (FragmentManager.java:1481)
  at androidx.fragment.app.BackStackRecord.executeOps (BackStackRecord.java:387)
  at androidx.fragment.app.FragmentManager.executeOps (FragmentManager.java:1965)
  at androidx.fragment.app.FragmentManager.executeOpsTogether (FragmentManager.java:1873)
  at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute (FragmentManager.java:1823)
  at androidx.fragment.app.FragmentManager.execPendingActions (FragmentManager.java:1760)
  at androidx.fragment.app.FragmentManager$5.run (FragmentManager.java:547)
  at android.os.Handler.handleCallback (Handler.java:938)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loop (Looper.java:268)
  at android.app.ActivityThread.main (ActivityThread.java:8101)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:627)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:997)

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2023-03-30 15:15:39 +02:00
.idea idea: squelch XML codestyle warning 2022-05-26 06:01:02 +05:30
gradle/wrapper gradle: bump wrapper version 2023-03-22 21:35:34 +05:30
tunnel tools: use NDK's make binary rather than system's 2023-03-28 18:31:38 +02:00
ui ui: do not allow double clicking fab to show menu twice 2023-03-30 15:15:39 +02: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 ui: use AndroidX BundleCompat for extracting parcelable 2023-03-27 16:11:30 +05:30
COPYING global: move to Apache 2.0 2018-07-06 16:28:46 +02:00
gradle.properties gradle: opt into new publishing APIs 2023-03-28 17:42:07 +05:30
gradlew gradle: bump wrapper version 2023-03-22 21:35:34 +05:30
README.md README: re-add desugaring block 2021-10-29 17:19:00 +02:00
settings.gradle build: update to gradle 7.4.2 and restructure lint block 2023-03-21 15:35:00 +01:00
sync-crowdin.sh build: add crowdin syncer script and use it 2020-10-14 17:16:36 +02:00
version.gradle version: bump 2023-03-28 18:32:34 +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.