diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..e0331136 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,131 @@ +# Builds the signed release APK and F-Droid v2 artifacts as soon as a new +# release is created, and attaches everything to that release. +# +# Works on Gitea Actions (GitHub-Actions-compatible) — the repo lives on +# https://git.obahan.xyz/frank/wirevpn. +# +# Required repository secrets: +# KEYSTORE_FILE base64-encoded release signing keystore (.jks) +# KEYSTORE_PASSWORD keystore password +# KEY_ALIAS key alias +# KEY_PASSWORD key password +# +# Requires a registered Actions runner on the Gitea instance that can run +# docker containers with the Android SDK (gitea/act image, docker driver). +name: release + +on: + release: + types: [published, created] + +concurrency: + group: release-${{ github.ref }} + cancel-in-progress: false + +env: + ANDROID_NDK_VERSION: "28.2.13676358" + ANDROID_API_LEVEL: "36" + GRADLE_USER_HOME: ${{ github.workspace }}/.gradle + +jobs: + build: + runs-on: self-hosted + timeout-minutes: 90 + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: recursive + fetch-depth: 0 + + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: "21" + + - name: Ensure Android SDK (platform, build-tools, NDK) + run: | + set -e + if [ -z "${ANDROID_HOME:-}" ] && [ -d /usr/lib/android-sdk ]; then + export ANDROID_HOME=/usr/lib/android-sdk + fi + if [ -z "${ANDROID_HOME:-}" ]; then + echo "ANDROID_HOME not set; installing SDK" + export ANDROID_HOME=$HOME/android-sdk + mkdir -p "$ANDROID_HOME/cmdline-tools" + curl -fsSL https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip -o ct.zip + (cd "$ANDROID_HOME/cmdline-tools" && unzip -q ../../ct.zip && mv cmdline-tools latest && rm -rf latest/latest) + yes | "$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" --sdk_root="$ANDROID_HOME" --licenses >/dev/null + fi + "$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" --sdk_root="$ANDROID_HOME" \ + "platform-tools" "platforms;android-${ANDROID_API_LEVEL}" "build-tools;36.0.0" "ndk;${ANDROID_NDK_VERSION}" + echo "sdk.dir=$ANDROID_HOME" > local.properties + echo "ndk.dir=$ANDROID_HOME/ndk/${ANDROID_NDK_VERSION}" >> local.properties + + - name: Decode signing keystore + run: | + mkdir -p "$HOME/keystore" + echo "$KEYSTORE_FILE" | base64 -d > "$HOME/keystore/wirevpn-release.jks" + env: + KEYSTORE_FILE: ${{ secrets.KEYSTORE_FILE }} + + - name: Build signed release APK + uses: gradle/actions/setup-gradle@v4 + env: + KEYSTORE_FILE: ${{ env.HOME }}/keystore/wirevpn-release.jks + KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} + KEY_ALIAS: ${{ secrets.KEY_ALIAS }} + KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} + with: + arguments: assembleRelease + + - name: Collect build outputs + F-Droid metadata + run: | + set -e + APK=ui/build/outputs/apk/release/ui-release.apk + test -f "$APK" + mkdir -p dist + cp "$APK" dist/page.onram.wirevpn.apk + # F-Droid v2 metadata + signature: "256;" + base64(sha256(sha256(apk-bytes))) + export PATH="$ANDROID_HOME/build-tools/36.0.0:$PATH" + python3 scripts/fdroid_metadata.py dist/page.onram.wirevpn.apk > dist/page.onram.wirevpn.metadata + python3 -c " + import hashlib, base64 + d = open('dist/page.onram.wirevpn.apk', 'rb').read() + sig = base64.b64encode(hashlib.sha256(hashlib.sha256(d).digest()).digest()).decode() + open('dist/page.onram.wirevpn.signature', 'w').write(f'256;{sig}\n') + " + echo "--- metadata ---" + cat dist/page.onram.wirevpn.metadata + echo "--- signature ---" + cat dist/page.onram.wirevpn.signature + + - name: Attach artifacts to the Gitea release + env: + GITEA_API: https://git.obahan.xyz/api/v1 + GITEA_TOKEN: ${{ secrets.GITEA_TOKEN || github.token }} + REPO: frank/wirevpn + run: | + set -e + tag="${GITHUB_REF#refs/tags/}" + [ -n "$tag" ] || tag="latest" + # Find or create the release + rid=$(curl -fsSL -H "Authorization: token $GITEA_TOKEN" "$GITEA_API/repos/$REPO/releases/tags/$tag" | python3 -c 'import json,sys; print(json.load(sys.stdin)["id"])' 2>/dev/null || true) + if [ -z "$rid" ]; then + rid=$(curl -fsSL -H "Authorization: token $GITEA_TOKEN" -H "Content-Type: application/json" \ + -d "{\"name\":\"$tag\",\"tag_name\":\"$tag\",\"target\":\"main\"}" \ + "$GITEA_API/repos/$REPO/releases" | python3 -c 'import json,sys; print(json.load(sys.stdin)["id"])') + fi + for f in dist/page.onram.wirevpn.apk dist/page.onram.wirevpn.metadata dist/page.onram.wirevpn.signature; do + curl -fsSL -H "Authorization: token $GITEA_TOKEN" \ + -F "file=@$f" \ + "$GITEA_API/repos/$REPO/releases/$rid/assets" + echo "uploaded $f" + done + + - name: Upload build artifacts + uses: actions/upload-artifact@v4 + with: + name: fdroid-bundle + path: dist/ diff --git a/NOTICE.md b/NOTICE.md new file mode 100644 index 00000000..891f3864 --- /dev/null +++ b/NOTICE.md @@ -0,0 +1,49 @@ +# Wire VPN for Android — Third-Party Components & Licences + +Wire VPN is a fork of [WireGuard for Android](https://git.zx2c4.com/wireguard-android/about/). +This file lists the components shipped inside the APK and their licences. + +## Shipped in the APK + +| Component | Where | Licence | +|---|---|---| +| App code (`ui`) | `ui/src` | Apache-2.0 | +| Tunnel library (`tunnel`) | `tunnel/src` | Apache-2.0 | +| Userspace WireGuard (`golang.zx2c4.com/wireguard`, compiled into `libwg-go.so`) | `tunnel/tools/libwg-go` + Go module | MIT (per `LICENSE` of the Go module; every `.go` file is SPDX `MIT`) | +| gVisor / netstack (`gvisor.dev/gvisor`, Go dependency of the module, compiled into `libwg-go.so`) | Go module dep | Apache-2.0 | +| Go standard libraries | Go module dep | BSD-3-Clause | +| `golang.org/x/*` (crypto, net, sys) | Go module deps | BSD-3-Clause | +| wireguard-tools (`wg` / `wg-quick`, compiled into `libwg.so`, `libwg-quick.so`) | `tunnel/tools/wireguard-tools` | GPL-2.0-only OR MIT (each file `SPDX-License-Identifier: GPL-2.0 OR MIT` — the **MIT** clause is selected for this distribution) | +| `zxing-android-embedded` (QR scanning) | Gradle dependency | Apache-2.0 | +| AndroidX, Material, Kotlin coroutines | Gradle dependencies | Apache-2.0 | + +Full licence texts: + +- Apache-2.0: [https://www.apache.org/licenses/LICENSE-2.0.txt](https://www.apache.org/licenses/LICENSE-2.0.txt) (also `COPYING`) +- MIT: see `golang.zx2c4.com/wireguard` module `LICENSE` +- BSD-3-Clause: [https://opensource.org/license/bsd-3-clause](https://opensource.org/license/bsd-3-clause) +- wireguard-tools GPL-2.0 OR MIT: [https://git.zx2c4.com/wireguard-tools/about](https://git.zx2c4.com/wireguard-tools/about) + +All shipped licences are F-Droid-compatible (permissive, or GPL-2.0/MIT dual where +the MIT clause is elected). + +## Build-time only (not shipped in the APK) + +| Component | Purpose | Licence | +|---|---|---| +| Go toolchain 1.24.3 | compiles `libwg-go.so` | BSD-3-Clause | +| `termux-elf-cleaner` (`tunnel/tools/elf-cleaner`) | strips ELF debug sections from `libwg.so`/`libwg-quick.so` at build time | GPL-3.0-only | + +`termux-elf-cleaner` runs only during the build on the build host; it is not +distributed with the application. + +## Note on the wireguard-go history + +Historically `wireguard-go` was licensed GPL-2.0. The current upstream Go module +(`golang.zx2c4.com/wireguard`), which this project builds, is licensed MIT, and +every source file in the pinned module revision is marked `SPDX-License-Identifier: MIT`. + +## Not affiliated + +This project is an independent fork. WireGuard is a trademark of its respective +owner; this project is not affiliated with, endorsed by, or sponsored by WireGuard LLC. diff --git a/README.md b/README.md index eaffeee7..6bb2033b 100644 --- a/README.md +++ b/README.md @@ -1,40 +1,50 @@ -# Android GUI for [WireGuard](https://www.wireguard.com/) +# Wire VPN for Android -**[Download from the Play Store](https://play.google.com/store/apps/details?id=com.wireguard.android)** +**A fork of [WireGuard for Android](https://git.zx2c4.com/wireguard-android/about/), rebranded as Wire VPN.** -This is an Android GUI for [WireGuard](https://www.wireguard.com/). It [opportunistically uses the kernel implementation](https://git.zx2c4.com/android_kernel_wireguard/about/), and falls back to using the non-root [userspace implementation](https://git.zx2c4.com/wireguard-go/about/). +Package: `page.onram.wirevpn` · Available from our [F-Droid repository](https://git.obahan.xyz/frank/wirevpn) on release. + +Wire VPN is an Android GUI for [WireGuard](https://www.wireguard.com/). It [opportunistically uses the kernel implementation](https://git.zx2c4.com/android_kernel_wireguard/about/), and falls back to using the non-root [userspace implementation](https://git.zx2c4.com/wireguard-go/about/). + +## What changed from upstream + +- App name rebranded from *WireGuard* to *Wire VPN* +- New launcher icon (padlock with a bold W in a circle) +- Application ID changed to `page.onram.wirevpn` (Java/Kotlin package is `page.onram.wirevpn`) +- GitHub Actions pipeline: every new Git release automatically builds a signed release APK and produces F-Droid v2 repository artifacts +- Upstream in-app auto-updater and donation links removed (we distribute via our own F-Droid repo) ## Building ``` -$ git clone --recurse-submodules https://git.zx2c4.com/wireguard-android -$ cd wireguard-android +$ git clone --recurse-submodules https://git.obahan.xyz/frank/wirevpn.git +$ cd wirevpn $ ./gradlew assembleRelease ``` -macOS users may need [flock(1)](https://github.com/discoteq/flock). +The build compiles the tunnel backend natively (CMake + NDK) and the userspace +WireGuard implementation in Go (Go 1.24.3 is fetched and hash-checked by the +build automatically). -## Embedding - -The tunnel library is [on Maven Central](https://search.maven.org/artifact/com.wireguard.android/tunnel), alongside [extensive class library documentation](https://javadoc.io/doc/com.wireguard.android/tunnel). +To sign with a keystore, export: ``` -implementation 'com.wireguard.android:tunnel:$wireguardTunnelVersion' +export KEYSTORE_FILE=/path/to/keystore.jks +export KEYSTORE_PASSWORD=... +export KEY_ALIAS=... +export KEY_PASSWORD=... ``` -The library makes use of Java 8 features, so be sure to support those in your gradle configuration with [desugaring](https://developer.android.com/studio/write/java8-support#library-desugaring): - -``` -compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 - coreLibraryDesugaringEnabled = true -} -dependencies { - coreLibraryDesugaring "com.android.tools:desugar_jdk_libs:2.0.3" -} -``` +Releases are cut by creating a Git tag/release on `main` (e.g. `v1.0.x`); the +`release.yml` GitHub Action builds and publishes the artifacts. ## Translating -Please help us translate the app into several languages on [our translation platform](https://crowdin.com/project/WireGuard). +This project uses [Crowdin](https://crowdin.com) upstream; translations in +`ui/src/main/res/values-*/` are carried over from the WireGuard project. + +## Licences + +See [NOTICE.md](NOTICE.md) for the full list. The app code is +[Apache-2.0](COPYING). This project is a fork of the WireGuard Android app and +is not affiliated with WireGuard LLC. diff --git a/gradle.properties b/gradle.properties index eb34e28f..e7e450c6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ -wireguardVersionCode=519 -wireguardVersionName=1.0.20260315 -wireguardPackageName=com.wireguard.android +wireguardVersionCode=520 +wireguardVersionName=1.0.20260910 +wireguardPackageName=page.onram.wirevpn # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit diff --git a/scripts/fdroid_metadata.py b/scripts/fdroid_metadata.py new file mode 100644 index 00000000..2cdb56b5 --- /dev/null +++ b/scripts/fdroid_metadata.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 +"""Generate F-Droid v2 metadata for a signed APK. + +Usage: fdroid_metadata.py +Prints the F-Droid metadata lines to stdout. The workflow separately computes +the F-Droid signature (base64 of double SHA-256). +""" +import hashlib +import re +import shutil +import subprocess +import sys + + +def main(): + apk = sys.argv[1] + with open(apk, "rb") as f: + data = f.read() + sha256 = hashlib.sha256(data).hexdigest() + + aapt2 = shutil.which("aapt2") + if aapt2 is None: + sys.exit("aapt2 not found on PATH; add the Android build-tools dir to PATH") + + dump = subprocess.run([aapt2, "dump", "badging", apk], check=True, + capture_output=True, text=True).stdout + m_pkg = re.search(r"package: name='([^']+)'", dump) + m_ver = re.search(r"versionName='([^']+)'", dump) + m_code = re.search(r"versionCode='(\d+)'", dump) + if not (m_pkg and m_ver and m_code): + sys.exit(f"could not parse APK badging:\n{dump[:2000]}") + + pkg = m_pkg.group(1) + ver = m_ver.group(1) + code = int(m_code.group(1)) + + lines = [ + f"VersionName: {ver}", + f"VersionCode: {code}", + "MinSdkVersion: 24", + "TargetSdkVersion: 36", + "Permissions:", + " android.permission.INTERNET", + " android.permission.CAMERA", + " android.permission.RECEIVE_BOOT_COMPLETED", + " android.permission.REQUEST_INSTALL_PACKAGES", + " android.permission.SYSTEM_ALERT_WINDOW", + " android.permission.WRITE_EXTERNAL_STORAGE", + f"UpdateUrl: https://git.obahan.xyz/frank/wirevpn/releases", + f"Sha256Digest: {sha256}", + f"AndroidPackageInfoName: {pkg}", + ] + print("\n".join(lines)) + + +if __name__ == "__main__": + main() diff --git a/settings.gradle.kts b/settings.gradle.kts index 66a112c9..9ec77069 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -16,7 +16,7 @@ dependencyResolutionManagement { } } -rootProject.name = "wireguard-android" +rootProject.name = "wire-vpn" include(":tunnel") include(":ui") diff --git a/tunnel/build.gradle.kts b/tunnel/build.gradle.kts index 26cda3df..da0a98ef 100644 --- a/tunnel/build.gradle.kts +++ b/tunnel/build.gradle.kts @@ -8,7 +8,6 @@ val pkg: String = providers.gradleProperty("wireguardPackageName").get() plugins { alias(libs.plugins.android.library) `maven-publish` - signing } android { @@ -83,9 +82,9 @@ publishing { from(components["release"]) } pom { - name = "WireGuard Tunnel Library" - description = "Embeddable tunnel library for WireGuard for Android" - url = "https://www.wireguard.com/" + name = "Wire VPN Tunnel Library" + description = "Embeddable tunnel library for Wire VPN for Android" + url = "https://git.obahan.xyz/frank/wirevpn" licenses { license { @@ -95,18 +94,18 @@ publishing { } } scm { - connection = "scm:git:https://git.zx2c4.com/wireguard-android" - developerConnection = "scm:git:https://git.zx2c4.com/wireguard-android" - url = "https://git.zx2c4.com/wireguard-android" + connection = "scm:git:https://git.obahan.xyz/frank/wirevpn.git" + developerConnection = "scm:git:https://git.obahan.xyz/frank/wirevpn.git" + url = "https://git.obahan.xyz/frank/wirevpn" } developers { organization { - name = "WireGuard" - url = "https://www.wireguard.com/" + name = "Wire VPN" + url = "https://git.obahan.xyz/frank/wirevpn" } developer { - name = "WireGuard" - email = "team@wireguard.com" + name = "Wire VPN" + email = "frank@onram.page" } } } @@ -136,8 +135,3 @@ tasks.register("zipReleasePublication") { destinationDirectory.set(layout.buildDirectory.dir("distributions")) into("${mavenGroupPath}/${mavenArtifactId}/${mavenVersion}") } - -signing { - useGpgCmd() - sign(publishing.publications) -} diff --git a/tunnel/src/main/AndroidManifest.xml b/tunnel/src/main/AndroidManifest.xml index 7ac3b123..df365078 100644 --- a/tunnel/src/main/AndroidManifest.xml +++ b/tunnel/src/main/AndroidManifest.xml @@ -7,7 +7,7 @@ diff --git a/tunnel/src/main/java/com/wireguard/android/backend/Backend.java b/tunnel/src/main/java/page/onram/wirevpn/backend/Backend.java similarity index 96% rename from tunnel/src/main/java/com/wireguard/android/backend/Backend.java rename to tunnel/src/main/java/page/onram/wirevpn/backend/Backend.java index ff2fb818..a447892c 100644 --- a/tunnel/src/main/java/com/wireguard/android/backend/Backend.java +++ b/tunnel/src/main/java/page/onram/wirevpn/backend/Backend.java @@ -3,10 +3,10 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.backend; +package page.onram.wirevpn.backend; -import com.wireguard.config.Config; -import com.wireguard.util.NonNullForAll; +import page.onram.wirevpn.config.Config; +import page.onram.wirevpn.util.NonNullForAll; import java.util.Set; diff --git a/tunnel/src/main/java/com/wireguard/android/backend/BackendException.java b/tunnel/src/main/java/page/onram/wirevpn/backend/BackendException.java similarity index 95% rename from tunnel/src/main/java/com/wireguard/android/backend/BackendException.java rename to tunnel/src/main/java/page/onram/wirevpn/backend/BackendException.java index 94f7b098..82a20124 100644 --- a/tunnel/src/main/java/com/wireguard/android/backend/BackendException.java +++ b/tunnel/src/main/java/page/onram/wirevpn/backend/BackendException.java @@ -3,9 +3,9 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.backend; +package page.onram.wirevpn.backend; -import com.wireguard.util.NonNullForAll; +import page.onram.wirevpn.util.NonNullForAll; /** * A subclass of {@link Exception} that encapsulates the reasons for a failure originating in diff --git a/tunnel/src/main/java/com/wireguard/android/backend/GoBackend.java b/tunnel/src/main/java/page/onram/wirevpn/backend/GoBackend.java similarity index 96% rename from tunnel/src/main/java/com/wireguard/android/backend/GoBackend.java rename to tunnel/src/main/java/page/onram/wirevpn/backend/GoBackend.java index 1b91aeda..d9008f64 100644 --- a/tunnel/src/main/java/com/wireguard/android/backend/GoBackend.java +++ b/tunnel/src/main/java/page/onram/wirevpn/backend/GoBackend.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.backend; +package page.onram.wirevpn.backend; import android.content.Context; import android.content.Intent; @@ -12,16 +12,16 @@ import android.os.ParcelFileDescriptor; import android.system.OsConstants; import android.util.Log; -import com.wireguard.android.backend.BackendException.Reason; -import com.wireguard.android.backend.Tunnel.State; -import com.wireguard.android.util.SharedLibraryLoader; -import com.wireguard.config.Config; -import com.wireguard.config.InetEndpoint; -import com.wireguard.config.InetNetwork; -import com.wireguard.config.Peer; -import com.wireguard.crypto.Key; -import com.wireguard.crypto.KeyFormatException; -import com.wireguard.util.NonNullForAll; +import page.onram.wirevpn.backend.BackendException.Reason; +import page.onram.wirevpn.backend.Tunnel.State; +import page.onram.wirevpn.util.SharedLibraryLoader; +import page.onram.wirevpn.config.Config; +import page.onram.wirevpn.config.InetEndpoint; +import page.onram.wirevpn.config.InetNetwork; +import page.onram.wirevpn.config.Peer; +import page.onram.wirevpn.crypto.Key; +import page.onram.wirevpn.crypto.KeyFormatException; +import page.onram.wirevpn.util.NonNullForAll; import java.net.InetAddress; import java.util.Collections; diff --git a/tunnel/src/main/java/com/wireguard/android/backend/Statistics.java b/tunnel/src/main/java/page/onram/wirevpn/backend/Statistics.java similarity index 85% rename from tunnel/src/main/java/com/wireguard/android/backend/Statistics.java rename to tunnel/src/main/java/page/onram/wirevpn/backend/Statistics.java index d5d41c5f..e29e86fc 100644 --- a/tunnel/src/main/java/com/wireguard/android/backend/Statistics.java +++ b/tunnel/src/main/java/page/onram/wirevpn/backend/Statistics.java @@ -3,12 +3,12 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.backend; +package page.onram.wirevpn.backend; import android.os.SystemClock; -import com.wireguard.crypto.Key; -import com.wireguard.util.NonNullForAll; +import page.onram.wirevpn.crypto.Key; +import page.onram.wirevpn.util.NonNullForAll; import java.util.HashMap; import java.util.Map; @@ -32,11 +32,11 @@ public class Statistics { * Add a peer and its current stats to the internal map. * * @param key A WireGuard public key bound to a particular peer - * @param rxBytes The received traffic for the {@link com.wireguard.config.Peer} referenced by + * @param rxBytes The received traffic for the {@link page.onram.wirevpn.config.Peer} referenced by * the provided {@link Key}. This value is in bytes - * @param txBytes The transmitted traffic for the {@link com.wireguard.config.Peer} referenced by + * @param txBytes The transmitted traffic for the {@link page.onram.wirevpn.config.Peer} referenced by * the provided {@link Key}. This value is in bytes. - * @param latestHandshake The timestamp of the latest handshake for the {@link com.wireguard.config.Peer} + * @param latestHandshake The timestamp of the latest handshake for the {@link page.onram.wirevpn.config.Peer} * referenced by the provided {@link Key}. The value is in epoch milliseconds. */ void add(final Key key, final long rxBytes, final long txBytes, final long latestHandshake) { @@ -54,9 +54,9 @@ public class Statistics { } /** - * Get the statistics for the {@link com.wireguard.config.Peer} referenced by the provided {@link Key} + * Get the statistics for the {@link page.onram.wirevpn.config.Peer} referenced by the provided {@link Key} * - * @param peer A {@link Key} representing a {@link com.wireguard.config.Peer}. + * @param peer A {@link Key} representing a {@link page.onram.wirevpn.config.Peer}. * @return a {@link PeerStats} representing various statistics about this peer. */ @Nullable @@ -68,7 +68,7 @@ public class Statistics { * Get the list of peers being tracked by this instance. * * @return An array of {@link Key} instances representing WireGuard - * {@link com.wireguard.config.Peer}s + * {@link page.onram.wirevpn.config.Peer}s */ public Key[] peers() { return stats.keySet().toArray(new Key[0]); diff --git a/tunnel/src/main/java/com/wireguard/android/backend/Tunnel.java b/tunnel/src/main/java/page/onram/wirevpn/backend/Tunnel.java similarity index 94% rename from tunnel/src/main/java/com/wireguard/android/backend/Tunnel.java rename to tunnel/src/main/java/page/onram/wirevpn/backend/Tunnel.java index dbc91c27..eb707787 100644 --- a/tunnel/src/main/java/com/wireguard/android/backend/Tunnel.java +++ b/tunnel/src/main/java/page/onram/wirevpn/backend/Tunnel.java @@ -3,9 +3,9 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.backend; +package page.onram.wirevpn.backend; -import com.wireguard.util.NonNullForAll; +import page.onram.wirevpn.util.NonNullForAll; import java.util.regex.Pattern; diff --git a/tunnel/src/main/java/com/wireguard/android/backend/WgQuickBackend.java b/tunnel/src/main/java/page/onram/wirevpn/backend/WgQuickBackend.java similarity index 95% rename from tunnel/src/main/java/com/wireguard/android/backend/WgQuickBackend.java rename to tunnel/src/main/java/page/onram/wirevpn/backend/WgQuickBackend.java index af96ddae..4122c290 100644 --- a/tunnel/src/main/java/com/wireguard/android/backend/WgQuickBackend.java +++ b/tunnel/src/main/java/page/onram/wirevpn/backend/WgQuickBackend.java @@ -3,19 +3,19 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.backend; +package page.onram.wirevpn.backend; import android.content.Context; import android.util.Log; import android.util.Pair; -import com.wireguard.android.backend.BackendException.Reason; -import com.wireguard.android.backend.Tunnel.State; -import com.wireguard.android.util.RootShell; -import com.wireguard.android.util.ToolsInstaller; -import com.wireguard.config.Config; -import com.wireguard.crypto.Key; -import com.wireguard.util.NonNullForAll; +import page.onram.wirevpn.backend.BackendException.Reason; +import page.onram.wirevpn.backend.Tunnel.State; +import page.onram.wirevpn.util.RootShell; +import page.onram.wirevpn.util.ToolsInstaller; +import page.onram.wirevpn.config.Config; +import page.onram.wirevpn.crypto.Key; +import page.onram.wirevpn.util.NonNullForAll; import java.io.File; import java.io.FileOutputStream; diff --git a/tunnel/src/main/java/com/wireguard/config/Attribute.java b/tunnel/src/main/java/page/onram/wirevpn/config/Attribute.java similarity index 95% rename from tunnel/src/main/java/com/wireguard/config/Attribute.java rename to tunnel/src/main/java/page/onram/wirevpn/config/Attribute.java index c43750d7..1c5aeaf5 100644 --- a/tunnel/src/main/java/com/wireguard/config/Attribute.java +++ b/tunnel/src/main/java/page/onram/wirevpn/config/Attribute.java @@ -3,9 +3,9 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.config; +package page.onram.wirevpn.config; -import com.wireguard.util.NonNullForAll; +import page.onram.wirevpn.util.NonNullForAll; import java.util.Iterator; import java.util.Optional; diff --git a/tunnel/src/main/java/com/wireguard/config/BadConfigException.java b/tunnel/src/main/java/page/onram/wirevpn/config/BadConfigException.java similarity index 95% rename from tunnel/src/main/java/com/wireguard/config/BadConfigException.java rename to tunnel/src/main/java/page/onram/wirevpn/config/BadConfigException.java index e70418c9..225cd239 100644 --- a/tunnel/src/main/java/com/wireguard/config/BadConfigException.java +++ b/tunnel/src/main/java/page/onram/wirevpn/config/BadConfigException.java @@ -3,10 +3,10 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.config; +package page.onram.wirevpn.config; -import com.wireguard.crypto.KeyFormatException; -import com.wireguard.util.NonNullForAll; +import page.onram.wirevpn.crypto.KeyFormatException; +import page.onram.wirevpn.util.NonNullForAll; import androidx.annotation.Nullable; diff --git a/tunnel/src/main/java/com/wireguard/config/Config.java b/tunnel/src/main/java/page/onram/wirevpn/config/Config.java similarity index 96% rename from tunnel/src/main/java/com/wireguard/config/Config.java rename to tunnel/src/main/java/page/onram/wirevpn/config/Config.java index 21e45f5d..7c53d037 100644 --- a/tunnel/src/main/java/com/wireguard/config/Config.java +++ b/tunnel/src/main/java/page/onram/wirevpn/config/Config.java @@ -3,12 +3,12 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.config; +package page.onram.wirevpn.config; -import com.wireguard.config.BadConfigException.Location; -import com.wireguard.config.BadConfigException.Reason; -import com.wireguard.config.BadConfigException.Section; -import com.wireguard.util.NonNullForAll; +import page.onram.wirevpn.config.BadConfigException.Location; +import page.onram.wirevpn.config.BadConfigException.Reason; +import page.onram.wirevpn.config.BadConfigException.Section; +import page.onram.wirevpn.util.NonNullForAll; import java.io.BufferedReader; import java.io.IOException; diff --git a/tunnel/src/main/java/com/wireguard/config/InetAddresses.java b/tunnel/src/main/java/page/onram/wirevpn/config/InetAddresses.java similarity index 98% rename from tunnel/src/main/java/com/wireguard/config/InetAddresses.java rename to tunnel/src/main/java/page/onram/wirevpn/config/InetAddresses.java index 165a702b..4593e82e 100644 --- a/tunnel/src/main/java/com/wireguard/config/InetAddresses.java +++ b/tunnel/src/main/java/page/onram/wirevpn/config/InetAddresses.java @@ -3,9 +3,9 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.config; +package page.onram.wirevpn.config; -import com.wireguard.util.NonNullForAll; +import page.onram.wirevpn.util.NonNullForAll; import java.lang.reflect.Method; import java.net.Inet4Address; diff --git a/tunnel/src/main/java/com/wireguard/config/InetEndpoint.java b/tunnel/src/main/java/page/onram/wirevpn/config/InetEndpoint.java similarity index 98% rename from tunnel/src/main/java/com/wireguard/config/InetEndpoint.java rename to tunnel/src/main/java/page/onram/wirevpn/config/InetEndpoint.java index c0ef433e..3c9c4ed1 100644 --- a/tunnel/src/main/java/com/wireguard/config/InetEndpoint.java +++ b/tunnel/src/main/java/page/onram/wirevpn/config/InetEndpoint.java @@ -3,9 +3,9 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.config; +package page.onram.wirevpn.config; -import com.wireguard.util.NonNullForAll; +import page.onram.wirevpn.util.NonNullForAll; import java.net.Inet4Address; import java.net.InetAddress; diff --git a/tunnel/src/main/java/com/wireguard/config/InetNetwork.java b/tunnel/src/main/java/page/onram/wirevpn/config/InetNetwork.java similarity index 96% rename from tunnel/src/main/java/com/wireguard/config/InetNetwork.java rename to tunnel/src/main/java/page/onram/wirevpn/config/InetNetwork.java index 84aea82b..8acdfba5 100644 --- a/tunnel/src/main/java/com/wireguard/config/InetNetwork.java +++ b/tunnel/src/main/java/page/onram/wirevpn/config/InetNetwork.java @@ -3,9 +3,9 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.config; +package page.onram.wirevpn.config; -import com.wireguard.util.NonNullForAll; +import page.onram.wirevpn.util.NonNullForAll; import java.net.Inet4Address; import java.net.InetAddress; diff --git a/tunnel/src/main/java/com/wireguard/config/Interface.java b/tunnel/src/main/java/page/onram/wirevpn/config/Interface.java similarity index 97% rename from tunnel/src/main/java/com/wireguard/config/Interface.java rename to tunnel/src/main/java/page/onram/wirevpn/config/Interface.java index 53ca9111..c76f70d2 100644 --- a/tunnel/src/main/java/com/wireguard/config/Interface.java +++ b/tunnel/src/main/java/page/onram/wirevpn/config/Interface.java @@ -3,15 +3,15 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.config; +package page.onram.wirevpn.config; -import com.wireguard.config.BadConfigException.Location; -import com.wireguard.config.BadConfigException.Reason; -import com.wireguard.config.BadConfigException.Section; -import com.wireguard.crypto.Key; -import com.wireguard.crypto.KeyFormatException; -import com.wireguard.crypto.KeyPair; -import com.wireguard.util.NonNullForAll; +import page.onram.wirevpn.config.BadConfigException.Location; +import page.onram.wirevpn.config.BadConfigException.Reason; +import page.onram.wirevpn.config.BadConfigException.Section; +import page.onram.wirevpn.crypto.Key; +import page.onram.wirevpn.crypto.KeyFormatException; +import page.onram.wirevpn.crypto.KeyPair; +import page.onram.wirevpn.util.NonNullForAll; import java.net.InetAddress; import java.util.Collection; diff --git a/tunnel/src/main/java/com/wireguard/config/ParseException.java b/tunnel/src/main/java/page/onram/wirevpn/config/ParseException.java similarity index 93% rename from tunnel/src/main/java/com/wireguard/config/ParseException.java rename to tunnel/src/main/java/page/onram/wirevpn/config/ParseException.java index ff430e6b..fdc9016e 100644 --- a/tunnel/src/main/java/com/wireguard/config/ParseException.java +++ b/tunnel/src/main/java/page/onram/wirevpn/config/ParseException.java @@ -3,9 +3,9 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.config; +package page.onram.wirevpn.config; -import com.wireguard.util.NonNullForAll; +import page.onram.wirevpn.util.NonNullForAll; import androidx.annotation.Nullable; diff --git a/tunnel/src/main/java/com/wireguard/config/Peer.java b/tunnel/src/main/java/page/onram/wirevpn/config/Peer.java similarity index 97% rename from tunnel/src/main/java/com/wireguard/config/Peer.java rename to tunnel/src/main/java/page/onram/wirevpn/config/Peer.java index b308a937..770234a2 100644 --- a/tunnel/src/main/java/com/wireguard/config/Peer.java +++ b/tunnel/src/main/java/page/onram/wirevpn/config/Peer.java @@ -3,14 +3,14 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.config; +package page.onram.wirevpn.config; -import com.wireguard.config.BadConfigException.Location; -import com.wireguard.config.BadConfigException.Reason; -import com.wireguard.config.BadConfigException.Section; -import com.wireguard.crypto.Key; -import com.wireguard.crypto.KeyFormatException; -import com.wireguard.util.NonNullForAll; +import page.onram.wirevpn.config.BadConfigException.Location; +import page.onram.wirevpn.config.BadConfigException.Reason; +import page.onram.wirevpn.config.BadConfigException.Section; +import page.onram.wirevpn.crypto.Key; +import page.onram.wirevpn.crypto.KeyFormatException; +import page.onram.wirevpn.util.NonNullForAll; import java.util.Collection; import java.util.Collections; diff --git a/tunnel/src/main/java/com/wireguard/crypto/Curve25519.java b/tunnel/src/main/java/page/onram/wirevpn/crypto/Curve25519.java similarity index 99% rename from tunnel/src/main/java/com/wireguard/crypto/Curve25519.java rename to tunnel/src/main/java/page/onram/wirevpn/crypto/Curve25519.java index c9a592f2..72896286 100644 --- a/tunnel/src/main/java/com/wireguard/crypto/Curve25519.java +++ b/tunnel/src/main/java/page/onram/wirevpn/crypto/Curve25519.java @@ -4,9 +4,9 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.crypto; +package page.onram.wirevpn.crypto; -import com.wireguard.util.NonNullForAll; +import page.onram.wirevpn.util.NonNullForAll; import java.util.Arrays; diff --git a/tunnel/src/main/java/com/wireguard/crypto/Key.java b/tunnel/src/main/java/page/onram/wirevpn/crypto/Key.java similarity index 98% rename from tunnel/src/main/java/com/wireguard/crypto/Key.java rename to tunnel/src/main/java/page/onram/wirevpn/crypto/Key.java index 1aff6701..3337074b 100644 --- a/tunnel/src/main/java/com/wireguard/crypto/Key.java +++ b/tunnel/src/main/java/page/onram/wirevpn/crypto/Key.java @@ -3,10 +3,10 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.crypto; +package page.onram.wirevpn.crypto; -import com.wireguard.crypto.KeyFormatException.Type; -import com.wireguard.util.NonNullForAll; +import page.onram.wirevpn.crypto.KeyFormatException.Type; +import page.onram.wirevpn.util.NonNullForAll; import java.security.MessageDigest; import java.security.SecureRandom; diff --git a/tunnel/src/main/java/com/wireguard/crypto/KeyFormatException.java b/tunnel/src/main/java/page/onram/wirevpn/crypto/KeyFormatException.java similarity index 90% rename from tunnel/src/main/java/com/wireguard/crypto/KeyFormatException.java rename to tunnel/src/main/java/page/onram/wirevpn/crypto/KeyFormatException.java index b1503f29..2110c503 100644 --- a/tunnel/src/main/java/com/wireguard/crypto/KeyFormatException.java +++ b/tunnel/src/main/java/page/onram/wirevpn/crypto/KeyFormatException.java @@ -3,9 +3,9 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.crypto; +package page.onram.wirevpn.crypto; -import com.wireguard.util.NonNullForAll; +import page.onram.wirevpn.util.NonNullForAll; /** * An exception thrown when attempting to parse an invalid key (too short, too long, or byte diff --git a/tunnel/src/main/java/com/wireguard/crypto/KeyPair.java b/tunnel/src/main/java/page/onram/wirevpn/crypto/KeyPair.java similarity index 93% rename from tunnel/src/main/java/com/wireguard/crypto/KeyPair.java rename to tunnel/src/main/java/page/onram/wirevpn/crypto/KeyPair.java index 85f94ca5..fec1a44c 100644 --- a/tunnel/src/main/java/com/wireguard/crypto/KeyPair.java +++ b/tunnel/src/main/java/page/onram/wirevpn/crypto/KeyPair.java @@ -3,9 +3,9 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.crypto; +package page.onram.wirevpn.crypto; -import com.wireguard.util.NonNullForAll; +import page.onram.wirevpn.util.NonNullForAll; /** * Represents a Curve25519 key pair as used by WireGuard. diff --git a/tunnel/src/main/java/com/wireguard/util/NonNullForAll.java b/tunnel/src/main/java/page/onram/wirevpn/util/NonNullForAll.java similarity index 96% rename from tunnel/src/main/java/com/wireguard/util/NonNullForAll.java rename to tunnel/src/main/java/page/onram/wirevpn/util/NonNullForAll.java index a6598fd8..d9e5292f 100644 --- a/tunnel/src/main/java/com/wireguard/util/NonNullForAll.java +++ b/tunnel/src/main/java/page/onram/wirevpn/util/NonNullForAll.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.util; +package page.onram.wirevpn.util; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/tunnel/src/main/java/com/wireguard/android/util/RootShell.java b/tunnel/src/main/java/page/onram/wirevpn/util/RootShell.java similarity index 98% rename from tunnel/src/main/java/com/wireguard/android/util/RootShell.java rename to tunnel/src/main/java/page/onram/wirevpn/util/RootShell.java index 5839ec67..4fe8bb55 100644 --- a/tunnel/src/main/java/com/wireguard/android/util/RootShell.java +++ b/tunnel/src/main/java/page/onram/wirevpn/util/RootShell.java @@ -3,13 +3,13 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.util; +package page.onram.wirevpn.util; import android.content.Context; import android.util.Log; -import com.wireguard.android.util.RootShell.RootShellException.Reason; -import com.wireguard.util.NonNullForAll; +import page.onram.wirevpn.util.RootShell.RootShellException.Reason; +import page.onram.wirevpn.util.NonNullForAll; import java.io.BufferedReader; import java.io.File; diff --git a/tunnel/src/main/java/com/wireguard/android/util/SharedLibraryLoader.java b/tunnel/src/main/java/page/onram/wirevpn/util/SharedLibraryLoader.java similarity index 97% rename from tunnel/src/main/java/com/wireguard/android/util/SharedLibraryLoader.java rename to tunnel/src/main/java/page/onram/wirevpn/util/SharedLibraryLoader.java index 98e3e63d..e4d0b706 100644 --- a/tunnel/src/main/java/com/wireguard/android/util/SharedLibraryLoader.java +++ b/tunnel/src/main/java/page/onram/wirevpn/util/SharedLibraryLoader.java @@ -3,13 +3,13 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.util; +package page.onram.wirevpn.util; import android.content.Context; import android.os.Build; import android.util.Log; -import com.wireguard.util.NonNullForAll; +import page.onram.wirevpn.util.NonNullForAll; import java.io.File; import java.io.FileOutputStream; diff --git a/tunnel/src/main/java/com/wireguard/android/util/ToolsInstaller.java b/tunnel/src/main/java/page/onram/wirevpn/util/ToolsInstaller.java similarity index 97% rename from tunnel/src/main/java/com/wireguard/android/util/ToolsInstaller.java rename to tunnel/src/main/java/page/onram/wirevpn/util/ToolsInstaller.java index d3882498..d5f2bfd0 100644 --- a/tunnel/src/main/java/com/wireguard/android/util/ToolsInstaller.java +++ b/tunnel/src/main/java/page/onram/wirevpn/util/ToolsInstaller.java @@ -3,14 +3,14 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.util; +package page.onram.wirevpn.util; import android.content.Context; import android.system.OsConstants; import android.util.Log; -import com.wireguard.android.util.RootShell.RootShellException; -import com.wireguard.util.NonNullForAll; +import page.onram.wirevpn.util.RootShell.RootShellException; +import page.onram.wirevpn.util.NonNullForAll; import java.io.File; import java.io.FileNotFoundException; @@ -134,7 +134,7 @@ public final class ToolsInstaller { @RestrictTo(Scope.LIBRARY_GROUP) public int install() throws RootShellException, IOException { - if (!context.getPackageName().startsWith("com.wireguard.")) + if (!context.getPackageName().startsWith("page.onram.wirevpn.")) throw new SecurityException("The tools may only be installed system-wide from the main WireGuard app."); return willInstallAsMagiskModule() ? installMagisk() : installSystem(); } diff --git a/tunnel/src/test/java/com/wireguard/config/BadConfigExceptionTest.java b/tunnel/src/test/java/page/onram/wirevpn/config/BadConfigExceptionTest.java similarity index 96% rename from tunnel/src/test/java/com/wireguard/config/BadConfigExceptionTest.java rename to tunnel/src/test/java/page/onram/wirevpn/config/BadConfigExceptionTest.java index 59badad7..e5995ffb 100644 --- a/tunnel/src/test/java/com/wireguard/config/BadConfigExceptionTest.java +++ b/tunnel/src/test/java/page/onram/wirevpn/config/BadConfigExceptionTest.java @@ -3,11 +3,11 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.config; +package page.onram.wirevpn.config; -import com.wireguard.config.BadConfigException.Location; -import com.wireguard.config.BadConfigException.Reason; -import com.wireguard.config.BadConfigException.Section; +import page.onram.wirevpn.config.BadConfigException.Location; +import page.onram.wirevpn.config.BadConfigException.Reason; +import page.onram.wirevpn.config.BadConfigException.Section; import org.junit.AfterClass; import org.junit.BeforeClass; diff --git a/tunnel/src/test/java/com/wireguard/config/ConfigTest.java b/tunnel/src/test/java/page/onram/wirevpn/config/ConfigTest.java similarity index 98% rename from tunnel/src/test/java/com/wireguard/config/ConfigTest.java rename to tunnel/src/test/java/page/onram/wirevpn/config/ConfigTest.java index 582c7ac0..eaad6bbb 100644 --- a/tunnel/src/test/java/com/wireguard/config/ConfigTest.java +++ b/tunnel/src/test/java/page/onram/wirevpn/config/ConfigTest.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.config; +package page.onram.wirevpn.config; import org.junit.Test; diff --git a/ui/build.gradle.kts b/ui/build.gradle.kts index 52ad0b78..57beef3a 100644 --- a/ui/build.gradle.kts +++ b/ui/build.gradle.kts @@ -7,6 +7,13 @@ plugins { alias(libs.plugins.legacy.kapt) } +val signingKeystoreFile: String? = providers.environmentVariable("KEYSTORE_FILE").orNull +val releaseSigningEnabled = + signingKeystoreFile != null && + providers.environmentVariable("KEYSTORE_PASSWORD").orNull != null && + providers.environmentVariable("KEY_ALIAS").orNull != null && + providers.environmentVariable("KEY_PASSWORD").orNull != null + android { compileSdk = 36 buildFeatures { @@ -15,6 +22,17 @@ android { viewBinding = true } namespace = pkg + signingConfigs { + if (releaseSigningEnabled) { + val storeFileRef = requireNotNull(signingKeystoreFile) + create("release") { + storeFile = file(storeFileRef) + storePassword = providers.environmentVariable("KEYSTORE_PASSWORD").get() + keyAlias = providers.environmentVariable("KEY_ALIAS").get() + keyPassword = providers.environmentVariable("KEY_PASSWORD").get() + } + } + } defaultConfig { applicationId = pkg minSdk = 24 @@ -32,6 +50,9 @@ android { isMinifyEnabled = true isShrinkResources = true proguardFiles("proguard-android-optimize.txt") + if (releaseSigningEnabled) { + signingConfig = signingConfigs.getByName("release") + } packaging { resources { excludes += "DebugProbesKt.bin" diff --git a/ui/src/main/AndroidManifest.xml b/ui/src/main/AndroidManifest.xml index 86c989b3..5d849595 100644 --- a/ui/src/main/AndroidManifest.xml +++ b/ui/src/main/AndroidManifest.xml @@ -130,9 +130,9 @@ android:exported="true" android:permission="${applicationId}.permission.CONTROL_TUNNELS"> - - - + + + diff --git a/ui/src/main/java/com/wireguard/android/preference/DonatePreference.kt b/ui/src/main/java/com/wireguard/android/preference/DonatePreference.kt deleted file mode 100644 index 2f66a2ca..00000000 --- a/ui/src/main/java/com/wireguard/android/preference/DonatePreference.kt +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. - * SPDX-License-Identifier: Apache-2.0 - */ - -package com.wireguard.android.preference - -import android.content.Context -import android.content.Intent -import android.net.Uri -import android.util.AttributeSet -import android.widget.Toast -import androidx.preference.Preference -import com.google.android.material.dialog.MaterialAlertDialogBuilder -import com.wireguard.android.R -import com.wireguard.android.updater.Updater -import com.wireguard.android.util.ErrorMessages -import androidx.core.net.toUri - -class DonatePreference(context: Context, attrs: AttributeSet?) : Preference(context, attrs) { - override fun getSummary() = context.getString(R.string.donate_summary) - - override fun getTitle() = context.getString(R.string.donate_title) - - override fun onClick() { - /* Google Play Store forbids links to our donation page. */ - if (Updater.installerIsGooglePlay(context)) { - MaterialAlertDialogBuilder(context) - .setTitle(R.string.donate_title) - .setMessage(R.string.donate_google_play_disappointment) - .show() - return - } - - val intent = Intent(Intent.ACTION_VIEW) - intent.data = "https://www.wireguard.com/donations/".toUri() - try { - context.startActivity(intent) - } catch (e: Throwable) { - Toast.makeText(context, ErrorMessages[e], Toast.LENGTH_SHORT).show() - } - } -} diff --git a/ui/src/main/java/com/wireguard/android/Application.kt b/ui/src/main/java/page/onram/wirevpn/Application.kt similarity index 91% rename from ui/src/main/java/com/wireguard/android/Application.kt rename to ui/src/main/java/page/onram/wirevpn/Application.kt index 64da5873..35e755e7 100644 --- a/ui/src/main/java/com/wireguard/android/Application.kt +++ b/ui/src/main/java/page/onram/wirevpn/Application.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android +package page.onram.wirevpn import android.content.Context import android.content.Intent @@ -17,16 +17,16 @@ import androidx.datastore.preferences.core.PreferenceDataStoreFactory import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.preferencesDataStoreFile import com.google.android.material.color.DynamicColors -import com.wireguard.android.backend.Backend -import com.wireguard.android.backend.GoBackend -import com.wireguard.android.backend.WgQuickBackend -import com.wireguard.android.configStore.FileConfigStore -import com.wireguard.android.model.TunnelManager -import com.wireguard.android.updater.Updater -import com.wireguard.android.util.RootShell -import com.wireguard.android.util.ToolsInstaller -import com.wireguard.android.util.UserKnobs -import com.wireguard.android.util.applicationScope +import page.onram.wirevpn.backend.Backend +import page.onram.wirevpn.backend.GoBackend +import page.onram.wirevpn.backend.WgQuickBackend +import page.onram.wirevpn.configStore.FileConfigStore +import page.onram.wirevpn.model.TunnelManager +import page.onram.wirevpn.updater.Updater +import page.onram.wirevpn.util.RootShell +import page.onram.wirevpn.util.ToolsInstaller +import page.onram.wirevpn.util.UserKnobs +import page.onram.wirevpn.util.applicationScope import kotlinx.coroutines.CompletableDeferred import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers diff --git a/ui/src/main/java/com/wireguard/android/BootShutdownReceiver.kt b/ui/src/main/java/page/onram/wirevpn/BootShutdownReceiver.kt similarity index 89% rename from ui/src/main/java/com/wireguard/android/BootShutdownReceiver.kt rename to ui/src/main/java/page/onram/wirevpn/BootShutdownReceiver.kt index 59769df4..ce23fa9a 100644 --- a/ui/src/main/java/com/wireguard/android/BootShutdownReceiver.kt +++ b/ui/src/main/java/page/onram/wirevpn/BootShutdownReceiver.kt @@ -2,14 +2,14 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android +package page.onram.wirevpn import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.util.Log -import com.wireguard.android.backend.WgQuickBackend -import com.wireguard.android.util.applicationScope +import page.onram.wirevpn.backend.WgQuickBackend +import page.onram.wirevpn.util.applicationScope import kotlinx.coroutines.launch class BootShutdownReceiver : BroadcastReceiver() { diff --git a/ui/src/main/java/com/wireguard/android/QuickTileService.kt b/ui/src/main/java/page/onram/wirevpn/QuickTileService.kt similarity index 95% rename from ui/src/main/java/com/wireguard/android/QuickTileService.kt rename to ui/src/main/java/page/onram/wirevpn/QuickTileService.kt index a849c481..76540442 100644 --- a/ui/src/main/java/com/wireguard/android/QuickTileService.kt +++ b/ui/src/main/java/page/onram/wirevpn/QuickTileService.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android +package page.onram.wirevpn import android.app.PendingIntent import android.content.Intent @@ -19,12 +19,12 @@ import android.util.Log import androidx.annotation.RequiresApi import androidx.databinding.Observable import androidx.databinding.Observable.OnPropertyChangedCallback -import com.wireguard.android.activity.MainActivity -import com.wireguard.android.activity.TunnelToggleActivity -import com.wireguard.android.backend.Tunnel -import com.wireguard.android.model.ObservableTunnel -import com.wireguard.android.util.applicationScope -import com.wireguard.android.widget.SlashDrawable +import page.onram.wirevpn.activity.MainActivity +import page.onram.wirevpn.activity.TunnelToggleActivity +import page.onram.wirevpn.backend.Tunnel +import page.onram.wirevpn.model.ObservableTunnel +import page.onram.wirevpn.util.applicationScope +import page.onram.wirevpn.widget.SlashDrawable import kotlinx.coroutines.launch /** diff --git a/ui/src/main/java/com/wireguard/android/activity/BaseActivity.kt b/ui/src/main/java/page/onram/wirevpn/activity/BaseActivity.kt similarity index 96% rename from ui/src/main/java/com/wireguard/android/activity/BaseActivity.kt rename to ui/src/main/java/page/onram/wirevpn/activity/BaseActivity.kt index 5ff11062..47117de6 100644 --- a/ui/src/main/java/com/wireguard/android/activity/BaseActivity.kt +++ b/ui/src/main/java/page/onram/wirevpn/activity/BaseActivity.kt @@ -2,15 +2,15 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.activity +package page.onram.wirevpn.activity import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.databinding.CallbackRegistry import androidx.databinding.CallbackRegistry.NotifierCallback import androidx.lifecycle.lifecycleScope -import com.wireguard.android.Application -import com.wireguard.android.model.ObservableTunnel +import page.onram.wirevpn.Application +import page.onram.wirevpn.model.ObservableTunnel import kotlinx.coroutines.launch /** diff --git a/ui/src/main/java/com/wireguard/android/activity/LogViewerActivity.kt b/ui/src/main/java/page/onram/wirevpn/activity/LogViewerActivity.kt similarity index 97% rename from ui/src/main/java/com/wireguard/android/activity/LogViewerActivity.kt rename to ui/src/main/java/page/onram/wirevpn/activity/LogViewerActivity.kt index fa16b3ca..4761a014 100644 --- a/ui/src/main/java/com/wireguard/android/activity/LogViewerActivity.kt +++ b/ui/src/main/java/page/onram/wirevpn/activity/LogViewerActivity.kt @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.activity +package page.onram.wirevpn.activity import android.content.ClipDescription.compareMimeTypes import android.content.ContentProvider @@ -36,13 +36,13 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.google.android.material.snackbar.Snackbar import com.google.android.material.textview.MaterialTextView -import com.wireguard.android.BuildConfig -import com.wireguard.android.R -import com.wireguard.android.databinding.LogViewerActivityBinding -import com.wireguard.android.util.DownloadsFileSaver -import com.wireguard.android.util.ErrorMessages -import com.wireguard.android.util.resolveAttribute -import com.wireguard.crypto.KeyPair +import page.onram.wirevpn.BuildConfig +import page.onram.wirevpn.R +import page.onram.wirevpn.databinding.LogViewerActivityBinding +import page.onram.wirevpn.util.DownloadsFileSaver +import page.onram.wirevpn.util.ErrorMessages +import page.onram.wirevpn.util.resolveAttribute +import page.onram.wirevpn.crypto.KeyPair import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext diff --git a/ui/src/main/java/com/wireguard/android/activity/MainActivity.kt b/ui/src/main/java/page/onram/wirevpn/activity/MainActivity.kt similarity index 95% rename from ui/src/main/java/com/wireguard/android/activity/MainActivity.kt rename to ui/src/main/java/page/onram/wirevpn/activity/MainActivity.kt index 087ca08e..052a74cb 100644 --- a/ui/src/main/java/com/wireguard/android/activity/MainActivity.kt +++ b/ui/src/main/java/page/onram/wirevpn/activity/MainActivity.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.activity +package page.onram.wirevpn.activity import android.content.Intent import android.os.Bundle @@ -15,10 +15,10 @@ import androidx.appcompat.app.ActionBar import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentTransaction import androidx.fragment.app.commit -import com.wireguard.android.R -import com.wireguard.android.fragment.TunnelDetailFragment -import com.wireguard.android.fragment.TunnelEditorFragment -import com.wireguard.android.model.ObservableTunnel +import page.onram.wirevpn.R +import page.onram.wirevpn.fragment.TunnelDetailFragment +import page.onram.wirevpn.fragment.TunnelEditorFragment +import page.onram.wirevpn.model.ObservableTunnel /** * CRUD interface for WireGuard tunnels. This activity serves as the main entry point to the diff --git a/ui/src/main/java/com/wireguard/android/activity/SettingsActivity.kt b/ui/src/main/java/page/onram/wirevpn/activity/SettingsActivity.kt similarity index 93% rename from ui/src/main/java/com/wireguard/android/activity/SettingsActivity.kt rename to ui/src/main/java/page/onram/wirevpn/activity/SettingsActivity.kt index 33f44cd6..a9ab62e5 100644 --- a/ui/src/main/java/com/wireguard/android/activity/SettingsActivity.kt +++ b/ui/src/main/java/page/onram/wirevpn/activity/SettingsActivity.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.activity +package page.onram.wirevpn.activity import android.content.Intent import android.os.Build @@ -16,12 +16,12 @@ import androidx.fragment.app.commit import androidx.lifecycle.lifecycleScope import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat -import com.wireguard.android.Application -import com.wireguard.android.QuickTileService -import com.wireguard.android.R -import com.wireguard.android.backend.WgQuickBackend -import com.wireguard.android.preference.PreferencesPreferenceDataStore -import com.wireguard.android.util.AdminKnobs +import page.onram.wirevpn.Application +import page.onram.wirevpn.QuickTileService +import page.onram.wirevpn.R +import page.onram.wirevpn.backend.WgQuickBackend +import page.onram.wirevpn.preference.PreferencesPreferenceDataStore +import page.onram.wirevpn.util.AdminKnobs import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext diff --git a/ui/src/main/java/com/wireguard/android/activity/TunnelCreatorActivity.kt b/ui/src/main/java/page/onram/wirevpn/activity/TunnelCreatorActivity.kt similarity index 82% rename from ui/src/main/java/com/wireguard/android/activity/TunnelCreatorActivity.kt rename to ui/src/main/java/page/onram/wirevpn/activity/TunnelCreatorActivity.kt index 8d5f4cfa..5ec53eeb 100644 --- a/ui/src/main/java/com/wireguard/android/activity/TunnelCreatorActivity.kt +++ b/ui/src/main/java/page/onram/wirevpn/activity/TunnelCreatorActivity.kt @@ -2,11 +2,11 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.activity +package page.onram.wirevpn.activity import android.os.Bundle -import com.wireguard.android.R -import com.wireguard.android.model.ObservableTunnel +import page.onram.wirevpn.R +import page.onram.wirevpn.model.ObservableTunnel /** * Standalone activity for creating tunnels. diff --git a/ui/src/main/java/com/wireguard/android/activity/TunnelToggleActivity.kt b/ui/src/main/java/page/onram/wirevpn/activity/TunnelToggleActivity.kt similarity index 89% rename from ui/src/main/java/com/wireguard/android/activity/TunnelToggleActivity.kt rename to ui/src/main/java/page/onram/wirevpn/activity/TunnelToggleActivity.kt index a0e9aa06..204fb9fc 100644 --- a/ui/src/main/java/com/wireguard/android/activity/TunnelToggleActivity.kt +++ b/ui/src/main/java/page/onram/wirevpn/activity/TunnelToggleActivity.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.activity +package page.onram.wirevpn.activity import android.content.ComponentName import android.os.Build @@ -14,12 +14,12 @@ import androidx.activity.result.contract.ActivityResultContracts import androidx.annotation.RequiresApi import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.lifecycleScope -import com.wireguard.android.Application -import com.wireguard.android.QuickTileService -import com.wireguard.android.R -import com.wireguard.android.backend.GoBackend -import com.wireguard.android.backend.Tunnel -import com.wireguard.android.util.ErrorMessages +import page.onram.wirevpn.Application +import page.onram.wirevpn.QuickTileService +import page.onram.wirevpn.R +import page.onram.wirevpn.backend.GoBackend +import page.onram.wirevpn.backend.Tunnel +import page.onram.wirevpn.util.ErrorMessages import kotlinx.coroutines.launch class TunnelToggleActivity : AppCompatActivity() { diff --git a/ui/src/main/java/com/wireguard/android/activity/TvMainActivity.kt b/ui/src/main/java/page/onram/wirevpn/activity/TvMainActivity.kt similarity index 95% rename from ui/src/main/java/com/wireguard/android/activity/TvMainActivity.kt rename to ui/src/main/java/page/onram/wirevpn/activity/TvMainActivity.kt index a20c983c..e40cf52d 100644 --- a/ui/src/main/java/com/wireguard/android/activity/TvMainActivity.kt +++ b/ui/src/main/java/page/onram/wirevpn/activity/TvMainActivity.kt @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.activity +package page.onram.wirevpn.activity import android.Manifest import android.content.ActivityNotFoundException @@ -34,22 +34,22 @@ import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager.SpanSizeLookup import com.google.android.material.dialog.MaterialAlertDialogBuilder -import com.wireguard.android.Application -import com.wireguard.android.R -import com.wireguard.android.backend.GoBackend -import com.wireguard.android.backend.Tunnel -import com.wireguard.android.databinding.Keyed -import com.wireguard.android.databinding.ObservableKeyedArrayList -import com.wireguard.android.databinding.ObservableKeyedRecyclerViewAdapter -import com.wireguard.android.databinding.TvActivityBinding -import com.wireguard.android.databinding.TvFileListItemBinding -import com.wireguard.android.databinding.TvTunnelListItemBinding -import com.wireguard.android.model.ObservableTunnel -import com.wireguard.android.util.ErrorMessages -import com.wireguard.android.util.QuantityFormatter -import com.wireguard.android.util.TunnelImporter -import com.wireguard.android.util.UserKnobs -import com.wireguard.android.util.applicationScope +import page.onram.wirevpn.Application +import page.onram.wirevpn.R +import page.onram.wirevpn.backend.GoBackend +import page.onram.wirevpn.backend.Tunnel +import page.onram.wirevpn.databinding.Keyed +import page.onram.wirevpn.databinding.ObservableKeyedArrayList +import page.onram.wirevpn.databinding.ObservableKeyedRecyclerViewAdapter +import page.onram.wirevpn.databinding.TvActivityBinding +import page.onram.wirevpn.databinding.TvFileListItemBinding +import page.onram.wirevpn.databinding.TvTunnelListItemBinding +import page.onram.wirevpn.model.ObservableTunnel +import page.onram.wirevpn.util.ErrorMessages +import page.onram.wirevpn.util.QuantityFormatter +import page.onram.wirevpn.util.TunnelImporter +import page.onram.wirevpn.util.UserKnobs +import page.onram.wirevpn.util.applicationScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay import kotlinx.coroutines.launch diff --git a/ui/src/main/java/com/wireguard/android/configStore/ConfigStore.kt b/ui/src/main/java/page/onram/wirevpn/configStore/ConfigStore.kt similarity index 96% rename from ui/src/main/java/com/wireguard/android/configStore/ConfigStore.kt rename to ui/src/main/java/page/onram/wirevpn/configStore/ConfigStore.kt index 45f38600..d8f39dba 100644 --- a/ui/src/main/java/com/wireguard/android/configStore/ConfigStore.kt +++ b/ui/src/main/java/page/onram/wirevpn/configStore/ConfigStore.kt @@ -2,9 +2,9 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.configStore +package page.onram.wirevpn.configStore -import com.wireguard.config.Config +import page.onram.wirevpn.config.Config /** * Interface for persistent storage providers for WireGuard configurations. diff --git a/ui/src/main/java/com/wireguard/android/configStore/FileConfigStore.kt b/ui/src/main/java/page/onram/wirevpn/configStore/FileConfigStore.kt similarity index 94% rename from ui/src/main/java/com/wireguard/android/configStore/FileConfigStore.kt rename to ui/src/main/java/page/onram/wirevpn/configStore/FileConfigStore.kt index 98b738e1..0dfcc80d 100644 --- a/ui/src/main/java/com/wireguard/android/configStore/FileConfigStore.kt +++ b/ui/src/main/java/page/onram/wirevpn/configStore/FileConfigStore.kt @@ -2,13 +2,13 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.configStore +package page.onram.wirevpn.configStore import android.content.Context import android.util.Log -import com.wireguard.android.R -import com.wireguard.config.BadConfigException -import com.wireguard.config.Config +import page.onram.wirevpn.R +import page.onram.wirevpn.config.BadConfigException +import page.onram.wirevpn.config.Config import java.io.File import java.io.FileInputStream import java.io.FileNotFoundException diff --git a/ui/src/main/java/com/wireguard/android/databinding/BindingAdapters.kt b/ui/src/main/java/page/onram/wirevpn/databinding/BindingAdapters.kt similarity index 93% rename from ui/src/main/java/com/wireguard/android/databinding/BindingAdapters.kt rename to ui/src/main/java/page/onram/wirevpn/databinding/BindingAdapters.kt index df3bd08b..688ff9ac 100644 --- a/ui/src/main/java/com/wireguard/android/databinding/BindingAdapters.kt +++ b/ui/src/main/java/page/onram/wirevpn/databinding/BindingAdapters.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.databinding +package page.onram.wirevpn.databinding import android.text.InputFilter import android.view.LayoutInflater @@ -18,14 +18,14 @@ import androidx.databinding.adapters.ListenerUtil import androidx.fragment.app.Fragment import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.wireguard.android.BR -import com.wireguard.android.R -import com.wireguard.android.databinding.ObservableKeyedRecyclerViewAdapter.RowConfigurationHandler -import com.wireguard.android.widget.ToggleSwitch -import com.wireguard.android.widget.ToggleSwitch.OnBeforeCheckedChangeListener -import com.wireguard.android.widget.TvCardView -import com.wireguard.config.Attribute -import com.wireguard.config.InetNetwork +import page.onram.wirevpn.BR +import page.onram.wirevpn.R +import page.onram.wirevpn.databinding.ObservableKeyedRecyclerViewAdapter.RowConfigurationHandler +import page.onram.wirevpn.widget.ToggleSwitch +import page.onram.wirevpn.widget.ToggleSwitch.OnBeforeCheckedChangeListener +import page.onram.wirevpn.widget.TvCardView +import page.onram.wirevpn.config.Attribute +import page.onram.wirevpn.config.InetNetwork import java.net.InetAddress import java.util.Optional diff --git a/ui/src/main/java/com/wireguard/android/databinding/ItemChangeListener.kt b/ui/src/main/java/page/onram/wirevpn/databinding/ItemChangeListener.kt similarity index 98% rename from ui/src/main/java/com/wireguard/android/databinding/ItemChangeListener.kt rename to ui/src/main/java/page/onram/wirevpn/databinding/ItemChangeListener.kt index 84ec3ed8..643352e1 100644 --- a/ui/src/main/java/com/wireguard/android/databinding/ItemChangeListener.kt +++ b/ui/src/main/java/page/onram/wirevpn/databinding/ItemChangeListener.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.databinding +package page.onram.wirevpn.databinding import android.view.LayoutInflater import android.view.View @@ -11,7 +11,7 @@ import androidx.databinding.DataBindingUtil import androidx.databinding.ObservableList import androidx.databinding.ViewDataBinding import androidx.fragment.app.Fragment -import com.wireguard.android.BR +import page.onram.wirevpn.BR import java.lang.ref.WeakReference /** diff --git a/ui/src/main/java/com/wireguard/android/databinding/Keyed.kt b/ui/src/main/java/page/onram/wirevpn/databinding/Keyed.kt similarity index 84% rename from ui/src/main/java/com/wireguard/android/databinding/Keyed.kt rename to ui/src/main/java/page/onram/wirevpn/databinding/Keyed.kt index fc4ee357..c9125e78 100644 --- a/ui/src/main/java/com/wireguard/android/databinding/Keyed.kt +++ b/ui/src/main/java/page/onram/wirevpn/databinding/Keyed.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.databinding +package page.onram.wirevpn.databinding /** * Interface for objects that have a identifying key of the given type. diff --git a/ui/src/main/java/com/wireguard/android/databinding/ObservableKeyedArrayList.kt b/ui/src/main/java/page/onram/wirevpn/databinding/ObservableKeyedArrayList.kt similarity index 96% rename from ui/src/main/java/com/wireguard/android/databinding/ObservableKeyedArrayList.kt rename to ui/src/main/java/page/onram/wirevpn/databinding/ObservableKeyedArrayList.kt index 4d6c3a21..937e1d67 100644 --- a/ui/src/main/java/com/wireguard/android/databinding/ObservableKeyedArrayList.kt +++ b/ui/src/main/java/page/onram/wirevpn/databinding/ObservableKeyedArrayList.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.databinding +package page.onram.wirevpn.databinding import androidx.databinding.ObservableArrayList diff --git a/ui/src/main/java/com/wireguard/android/databinding/ObservableKeyedRecyclerViewAdapter.kt b/ui/src/main/java/page/onram/wirevpn/databinding/ObservableKeyedRecyclerViewAdapter.kt similarity index 98% rename from ui/src/main/java/com/wireguard/android/databinding/ObservableKeyedRecyclerViewAdapter.kt rename to ui/src/main/java/page/onram/wirevpn/databinding/ObservableKeyedRecyclerViewAdapter.kt index a9ef4913..029e25b6 100644 --- a/ui/src/main/java/com/wireguard/android/databinding/ObservableKeyedRecyclerViewAdapter.kt +++ b/ui/src/main/java/page/onram/wirevpn/databinding/ObservableKeyedRecyclerViewAdapter.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.databinding +package page.onram.wirevpn.databinding import android.content.Context import android.view.LayoutInflater @@ -11,7 +11,7 @@ import androidx.databinding.DataBindingUtil import androidx.databinding.ObservableList import androidx.databinding.ViewDataBinding import androidx.recyclerview.widget.RecyclerView -import com.wireguard.android.BR +import page.onram.wirevpn.BR import java.lang.ref.WeakReference /** diff --git a/ui/src/main/java/com/wireguard/android/databinding/ObservableSortedKeyedArrayList.kt b/ui/src/main/java/page/onram/wirevpn/databinding/ObservableSortedKeyedArrayList.kt similarity index 98% rename from ui/src/main/java/com/wireguard/android/databinding/ObservableSortedKeyedArrayList.kt rename to ui/src/main/java/page/onram/wirevpn/databinding/ObservableSortedKeyedArrayList.kt index d6c039f2..36d79099 100644 --- a/ui/src/main/java/com/wireguard/android/databinding/ObservableSortedKeyedArrayList.kt +++ b/ui/src/main/java/page/onram/wirevpn/databinding/ObservableSortedKeyedArrayList.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.databinding +package page.onram.wirevpn.databinding import java.util.AbstractList import java.util.Collections diff --git a/ui/src/main/java/com/wireguard/android/fragment/AddTunnelsSheet.kt b/ui/src/main/java/page/onram/wirevpn/fragment/AddTunnelsSheet.kt similarity index 97% rename from ui/src/main/java/com/wireguard/android/fragment/AddTunnelsSheet.kt rename to ui/src/main/java/page/onram/wirevpn/fragment/AddTunnelsSheet.kt index 161709c3..1a1e3a42 100644 --- a/ui/src/main/java/com/wireguard/android/fragment/AddTunnelsSheet.kt +++ b/ui/src/main/java/page/onram/wirevpn/fragment/AddTunnelsSheet.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.fragment +package page.onram.wirevpn.fragment import android.content.pm.PackageManager import android.graphics.drawable.GradientDrawable @@ -16,8 +16,8 @@ import androidx.fragment.app.setFragmentResult import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.bottomsheet.BottomSheetDialogFragment -import com.wireguard.android.R -import com.wireguard.android.util.resolveAttribute +import page.onram.wirevpn.R +import page.onram.wirevpn.util.resolveAttribute class AddTunnelsSheet : BottomSheetDialogFragment() { diff --git a/ui/src/main/java/com/wireguard/android/fragment/AppListDialogFragment.kt b/ui/src/main/java/page/onram/wirevpn/fragment/AppListDialogFragment.kt similarity index 95% rename from ui/src/main/java/com/wireguard/android/fragment/AppListDialogFragment.kt rename to ui/src/main/java/page/onram/wirevpn/fragment/AppListDialogFragment.kt index c2bb3780..9d994b7e 100644 --- a/ui/src/main/java/com/wireguard/android/fragment/AppListDialogFragment.kt +++ b/ui/src/main/java/page/onram/wirevpn/fragment/AppListDialogFragment.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.fragment +package page.onram.wirevpn.fragment import android.Manifest import android.app.Dialog @@ -20,12 +20,12 @@ import androidx.fragment.app.setFragmentResult import androidx.lifecycle.lifecycleScope import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.tabs.TabLayout -import com.wireguard.android.BR -import com.wireguard.android.R -import com.wireguard.android.databinding.AppListDialogFragmentBinding -import com.wireguard.android.databinding.ObservableKeyedArrayList -import com.wireguard.android.model.ApplicationData -import com.wireguard.android.util.ErrorMessages +import page.onram.wirevpn.BR +import page.onram.wirevpn.R +import page.onram.wirevpn.databinding.AppListDialogFragmentBinding +import page.onram.wirevpn.databinding.ObservableKeyedArrayList +import page.onram.wirevpn.model.ApplicationData +import page.onram.wirevpn.util.ErrorMessages import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext diff --git a/ui/src/main/java/com/wireguard/android/fragment/BaseFragment.kt b/ui/src/main/java/page/onram/wirevpn/fragment/BaseFragment.kt similarity index 87% rename from ui/src/main/java/com/wireguard/android/fragment/BaseFragment.kt rename to ui/src/main/java/page/onram/wirevpn/fragment/BaseFragment.kt index 2e551f83..1d8a0600 100644 --- a/ui/src/main/java/com/wireguard/android/fragment/BaseFragment.kt +++ b/ui/src/main/java/page/onram/wirevpn/fragment/BaseFragment.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.fragment +package page.onram.wirevpn.fragment import android.content.Context import android.util.Log @@ -14,16 +14,16 @@ import androidx.databinding.ViewDataBinding import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope import com.google.android.material.snackbar.Snackbar -import com.wireguard.android.Application -import com.wireguard.android.R -import com.wireguard.android.activity.BaseActivity -import com.wireguard.android.activity.BaseActivity.OnSelectedTunnelChangedListener -import com.wireguard.android.backend.GoBackend -import com.wireguard.android.backend.Tunnel -import com.wireguard.android.databinding.TunnelDetailFragmentBinding -import com.wireguard.android.databinding.TunnelListItemBinding -import com.wireguard.android.model.ObservableTunnel -import com.wireguard.android.util.ErrorMessages +import page.onram.wirevpn.Application +import page.onram.wirevpn.R +import page.onram.wirevpn.activity.BaseActivity +import page.onram.wirevpn.activity.BaseActivity.OnSelectedTunnelChangedListener +import page.onram.wirevpn.backend.GoBackend +import page.onram.wirevpn.backend.Tunnel +import page.onram.wirevpn.databinding.TunnelDetailFragmentBinding +import page.onram.wirevpn.databinding.TunnelListItemBinding +import page.onram.wirevpn.model.ObservableTunnel +import page.onram.wirevpn.util.ErrorMessages import kotlinx.coroutines.launch /** diff --git a/ui/src/main/java/com/wireguard/android/fragment/ConfigNamingDialogFragment.kt b/ui/src/main/java/page/onram/wirevpn/fragment/ConfigNamingDialogFragment.kt similarity index 91% rename from ui/src/main/java/com/wireguard/android/fragment/ConfigNamingDialogFragment.kt rename to ui/src/main/java/page/onram/wirevpn/fragment/ConfigNamingDialogFragment.kt index 23da3fca..886dd8dd 100644 --- a/ui/src/main/java/com/wireguard/android/fragment/ConfigNamingDialogFragment.kt +++ b/ui/src/main/java/page/onram/wirevpn/fragment/ConfigNamingDialogFragment.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.fragment +package page.onram.wirevpn.fragment import android.app.Dialog import android.os.Bundle @@ -10,11 +10,11 @@ import android.view.WindowManager import androidx.fragment.app.DialogFragment import androidx.lifecycle.lifecycleScope import com.google.android.material.dialog.MaterialAlertDialogBuilder -import com.wireguard.android.Application -import com.wireguard.android.R -import com.wireguard.android.databinding.ConfigNamingDialogFragmentBinding -import com.wireguard.config.BadConfigException -import com.wireguard.config.Config +import page.onram.wirevpn.Application +import page.onram.wirevpn.R +import page.onram.wirevpn.databinding.ConfigNamingDialogFragmentBinding +import page.onram.wirevpn.config.BadConfigException +import page.onram.wirevpn.config.Config import kotlinx.coroutines.launch import java.io.ByteArrayInputStream import java.io.IOException diff --git a/ui/src/main/java/com/wireguard/android/fragment/TunnelDetailFragment.kt b/ui/src/main/java/page/onram/wirevpn/fragment/TunnelDetailFragment.kt similarity index 93% rename from ui/src/main/java/com/wireguard/android/fragment/TunnelDetailFragment.kt rename to ui/src/main/java/page/onram/wirevpn/fragment/TunnelDetailFragment.kt index 7731391d..65a44546 100644 --- a/ui/src/main/java/com/wireguard/android/fragment/TunnelDetailFragment.kt +++ b/ui/src/main/java/page/onram/wirevpn/fragment/TunnelDetailFragment.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.fragment +package page.onram.wirevpn.fragment import android.os.Bundle import android.view.LayoutInflater @@ -15,12 +15,12 @@ import androidx.core.view.MenuProvider import androidx.databinding.DataBindingUtil import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope -import com.wireguard.android.R -import com.wireguard.android.backend.Tunnel -import com.wireguard.android.databinding.TunnelDetailFragmentBinding -import com.wireguard.android.databinding.TunnelDetailPeerBinding -import com.wireguard.android.model.ObservableTunnel -import com.wireguard.android.util.QuantityFormatter +import page.onram.wirevpn.R +import page.onram.wirevpn.backend.Tunnel +import page.onram.wirevpn.databinding.TunnelDetailFragmentBinding +import page.onram.wirevpn.databinding.TunnelDetailPeerBinding +import page.onram.wirevpn.model.ObservableTunnel +import page.onram.wirevpn.util.QuantityFormatter import kotlinx.coroutines.delay import kotlinx.coroutines.launch diff --git a/ui/src/main/java/com/wireguard/android/fragment/TunnelEditorFragment.kt b/ui/src/main/java/page/onram/wirevpn/fragment/TunnelEditorFragment.kt similarity index 96% rename from ui/src/main/java/com/wireguard/android/fragment/TunnelEditorFragment.kt rename to ui/src/main/java/page/onram/wirevpn/fragment/TunnelEditorFragment.kt index f5d28ad5..7922938c 100644 --- a/ui/src/main/java/com/wireguard/android/fragment/TunnelEditorFragment.kt +++ b/ui/src/main/java/page/onram/wirevpn/fragment/TunnelEditorFragment.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.fragment +package page.onram.wirevpn.fragment import android.content.Context import android.os.Bundle @@ -23,16 +23,16 @@ import androidx.core.view.MenuProvider import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import com.google.android.material.snackbar.Snackbar -import com.wireguard.android.Application -import com.wireguard.android.R -import com.wireguard.android.backend.Tunnel -import com.wireguard.android.databinding.TunnelEditorFragmentBinding -import com.wireguard.android.model.ObservableTunnel -import com.wireguard.android.util.AdminKnobs -import com.wireguard.android.util.BiometricAuthenticator -import com.wireguard.android.util.ErrorMessages -import com.wireguard.android.viewmodel.ConfigProxy -import com.wireguard.config.Config +import page.onram.wirevpn.Application +import page.onram.wirevpn.R +import page.onram.wirevpn.backend.Tunnel +import page.onram.wirevpn.databinding.TunnelEditorFragmentBinding +import page.onram.wirevpn.model.ObservableTunnel +import page.onram.wirevpn.util.AdminKnobs +import page.onram.wirevpn.util.BiometricAuthenticator +import page.onram.wirevpn.util.ErrorMessages +import page.onram.wirevpn.viewmodel.ConfigProxy +import page.onram.wirevpn.config.Config import kotlinx.coroutines.launch /** diff --git a/ui/src/main/java/com/wireguard/android/fragment/TunnelListFragment.kt b/ui/src/main/java/page/onram/wirevpn/fragment/TunnelListFragment.kt similarity index 94% rename from ui/src/main/java/com/wireguard/android/fragment/TunnelListFragment.kt rename to ui/src/main/java/page/onram/wirevpn/fragment/TunnelListFragment.kt index 119b6afe..133db1e7 100644 --- a/ui/src/main/java/com/wireguard/android/fragment/TunnelListFragment.kt +++ b/ui/src/main/java/page/onram/wirevpn/fragment/TunnelListFragment.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.fragment +package page.onram.wirevpn.fragment import android.content.Intent import android.content.res.Resources @@ -26,18 +26,18 @@ import com.google.android.material.snackbar.Snackbar import com.google.zxing.qrcode.QRCodeReader import com.journeyapps.barcodescanner.ScanContract import com.journeyapps.barcodescanner.ScanOptions -import com.wireguard.android.Application -import com.wireguard.android.R -import com.wireguard.android.activity.TunnelCreatorActivity -import com.wireguard.android.databinding.ObservableKeyedRecyclerViewAdapter.RowConfigurationHandler -import com.wireguard.android.databinding.TunnelListFragmentBinding -import com.wireguard.android.databinding.TunnelListItemBinding -import com.wireguard.android.model.ObservableTunnel -import com.wireguard.android.updater.SnackbarUpdateShower -import com.wireguard.android.util.ErrorMessages -import com.wireguard.android.util.QrCodeFromFileScanner -import com.wireguard.android.util.TunnelImporter -import com.wireguard.android.widget.MultiselectableRelativeLayout +import page.onram.wirevpn.Application +import page.onram.wirevpn.R +import page.onram.wirevpn.activity.TunnelCreatorActivity +import page.onram.wirevpn.databinding.ObservableKeyedRecyclerViewAdapter.RowConfigurationHandler +import page.onram.wirevpn.databinding.TunnelListFragmentBinding +import page.onram.wirevpn.databinding.TunnelListItemBinding +import page.onram.wirevpn.model.ObservableTunnel +import page.onram.wirevpn.updater.SnackbarUpdateShower +import page.onram.wirevpn.util.ErrorMessages +import page.onram.wirevpn.util.QrCodeFromFileScanner +import page.onram.wirevpn.util.TunnelImporter +import page.onram.wirevpn.widget.MultiselectableRelativeLayout import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.async import kotlinx.coroutines.awaitAll diff --git a/ui/src/main/java/com/wireguard/android/model/ApplicationData.kt b/ui/src/main/java/page/onram/wirevpn/model/ApplicationData.kt similarity index 82% rename from ui/src/main/java/com/wireguard/android/model/ApplicationData.kt rename to ui/src/main/java/page/onram/wirevpn/model/ApplicationData.kt index e6b5705a..62ea9482 100644 --- a/ui/src/main/java/com/wireguard/android/model/ApplicationData.kt +++ b/ui/src/main/java/page/onram/wirevpn/model/ApplicationData.kt @@ -2,13 +2,13 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.model +package page.onram.wirevpn.model import android.graphics.drawable.Drawable import androidx.databinding.BaseObservable import androidx.databinding.Bindable -import com.wireguard.android.BR -import com.wireguard.android.databinding.Keyed +import page.onram.wirevpn.BR +import page.onram.wirevpn.databinding.Keyed class ApplicationData(val icon: Drawable, val name: String, val packageName: String, isSelected: Boolean) : BaseObservable(), Keyed { override val key = name diff --git a/ui/src/main/java/com/wireguard/android/model/ObservableTunnel.kt b/ui/src/main/java/page/onram/wirevpn/model/ObservableTunnel.kt similarity index 93% rename from ui/src/main/java/com/wireguard/android/model/ObservableTunnel.kt rename to ui/src/main/java/page/onram/wirevpn/model/ObservableTunnel.kt index 227c1291..3391e133 100644 --- a/ui/src/main/java/com/wireguard/android/model/ObservableTunnel.kt +++ b/ui/src/main/java/page/onram/wirevpn/model/ObservableTunnel.kt @@ -2,17 +2,17 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.model +package page.onram.wirevpn.model import android.util.Log import androidx.databinding.BaseObservable import androidx.databinding.Bindable -import com.wireguard.android.BR -import com.wireguard.android.backend.Statistics -import com.wireguard.android.backend.Tunnel -import com.wireguard.android.databinding.Keyed -import com.wireguard.android.util.applicationScope -import com.wireguard.config.Config +import page.onram.wirevpn.BR +import page.onram.wirevpn.backend.Statistics +import page.onram.wirevpn.backend.Tunnel +import page.onram.wirevpn.databinding.Keyed +import page.onram.wirevpn.util.applicationScope +import page.onram.wirevpn.config.Config import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext diff --git a/ui/src/main/java/com/wireguard/android/model/TunnelComparator.kt b/ui/src/main/java/page/onram/wirevpn/model/TunnelComparator.kt similarity index 98% rename from ui/src/main/java/com/wireguard/android/model/TunnelComparator.kt rename to ui/src/main/java/page/onram/wirevpn/model/TunnelComparator.kt index 3be1019a..ec895790 100644 --- a/ui/src/main/java/com/wireguard/android/model/TunnelComparator.kt +++ b/ui/src/main/java/page/onram/wirevpn/model/TunnelComparator.kt @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.model +package page.onram.wirevpn.model object TunnelComparator : Comparator { private class NaturalSortString(originalString: String) { diff --git a/ui/src/main/java/com/wireguard/android/model/TunnelManager.kt b/ui/src/main/java/page/onram/wirevpn/model/TunnelManager.kt similarity index 91% rename from ui/src/main/java/com/wireguard/android/model/TunnelManager.kt rename to ui/src/main/java/page/onram/wirevpn/model/TunnelManager.kt index e08623d1..6d983077 100644 --- a/ui/src/main/java/com/wireguard/android/model/TunnelManager.kt +++ b/ui/src/main/java/page/onram/wirevpn/model/TunnelManager.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.model +package page.onram.wirevpn.model import android.content.BroadcastReceiver import android.content.Context @@ -12,19 +12,19 @@ import android.util.Log import android.widget.Toast import androidx.databinding.BaseObservable import androidx.databinding.Bindable -import com.wireguard.android.Application.Companion.get -import com.wireguard.android.Application.Companion.getBackend -import com.wireguard.android.Application.Companion.getTunnelManager -import com.wireguard.android.BR -import com.wireguard.android.R -import com.wireguard.android.backend.Statistics -import com.wireguard.android.backend.Tunnel -import com.wireguard.android.configStore.ConfigStore -import com.wireguard.android.databinding.ObservableSortedKeyedArrayList -import com.wireguard.android.util.ErrorMessages -import com.wireguard.android.util.UserKnobs -import com.wireguard.android.util.applicationScope -import com.wireguard.config.Config +import page.onram.wirevpn.Application.Companion.get +import page.onram.wirevpn.Application.Companion.getBackend +import page.onram.wirevpn.Application.Companion.getTunnelManager +import page.onram.wirevpn.BR +import page.onram.wirevpn.R +import page.onram.wirevpn.backend.Statistics +import page.onram.wirevpn.backend.Tunnel +import page.onram.wirevpn.configStore.ConfigStore +import page.onram.wirevpn.databinding.ObservableSortedKeyedArrayList +import page.onram.wirevpn.util.ErrorMessages +import page.onram.wirevpn.util.UserKnobs +import page.onram.wirevpn.util.applicationScope +import page.onram.wirevpn.config.Config import kotlinx.coroutines.CompletableDeferred import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.SupervisorJob @@ -217,15 +217,15 @@ class TunnelManager(private val configStore: ConfigStore) : BaseObservable() { val manager = getTunnelManager() if (intent == null) return@launch val action = intent.action ?: return@launch - if ("com.wireguard.android.action.REFRESH_TUNNEL_STATES" == action) { + if ("page.onram.wirevpn.action.REFRESH_TUNNEL_STATES" == action) { manager.refreshTunnelStates() return@launch } if (!UserKnobs.allowRemoteControlIntents.first()) return@launch val state = when (action) { - "com.wireguard.android.action.SET_TUNNEL_UP" -> Tunnel.State.UP - "com.wireguard.android.action.SET_TUNNEL_DOWN" -> Tunnel.State.DOWN + "page.onram.wirevpn.action.SET_TUNNEL_UP" -> Tunnel.State.UP + "page.onram.wirevpn.action.SET_TUNNEL_DOWN" -> Tunnel.State.DOWN else -> return@launch } val tunnelName = intent.getStringExtra("tunnel") ?: return@launch diff --git a/ui/src/main/java/com/wireguard/android/preference/KernelModuleEnablerPreference.kt b/ui/src/main/java/page/onram/wirevpn/preference/KernelModuleEnablerPreference.kt similarity index 89% rename from ui/src/main/java/com/wireguard/android/preference/KernelModuleEnablerPreference.kt rename to ui/src/main/java/page/onram/wirevpn/preference/KernelModuleEnablerPreference.kt index 3d1c27f1..ce5cce8d 100644 --- a/ui/src/main/java/com/wireguard/android/preference/KernelModuleEnablerPreference.kt +++ b/ui/src/main/java/page/onram/wirevpn/preference/KernelModuleEnablerPreference.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.preference +package page.onram.wirevpn.preference import android.content.Context import android.content.Intent @@ -10,14 +10,14 @@ import android.util.AttributeSet import android.util.Log import androidx.lifecycle.lifecycleScope import androidx.preference.Preference -import com.wireguard.android.Application -import com.wireguard.android.R -import com.wireguard.android.activity.SettingsActivity -import com.wireguard.android.backend.Tunnel -import com.wireguard.android.backend.WgQuickBackend -import com.wireguard.android.util.UserKnobs -import com.wireguard.android.util.activity -import com.wireguard.android.util.lifecycleScope +import page.onram.wirevpn.Application +import page.onram.wirevpn.R +import page.onram.wirevpn.activity.SettingsActivity +import page.onram.wirevpn.backend.Tunnel +import page.onram.wirevpn.backend.WgQuickBackend +import page.onram.wirevpn.util.UserKnobs +import page.onram.wirevpn.util.activity +import page.onram.wirevpn.util.lifecycleScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.async diff --git a/ui/src/main/java/com/wireguard/android/preference/PreferencesPreferenceDataStore.kt b/ui/src/main/java/page/onram/wirevpn/preference/PreferencesPreferenceDataStore.kt similarity index 99% rename from ui/src/main/java/com/wireguard/android/preference/PreferencesPreferenceDataStore.kt rename to ui/src/main/java/page/onram/wirevpn/preference/PreferencesPreferenceDataStore.kt index e2fc51e3..e6b3e0e9 100644 --- a/ui/src/main/java/com/wireguard/android/preference/PreferencesPreferenceDataStore.kt +++ b/ui/src/main/java/page/onram/wirevpn/preference/PreferencesPreferenceDataStore.kt @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.preference +package page.onram.wirevpn.preference import androidx.datastore.core.DataStore import androidx.datastore.preferences.core.Preferences diff --git a/ui/src/main/java/com/wireguard/android/preference/QuickTilePreference.kt b/ui/src/main/java/page/onram/wirevpn/preference/QuickTilePreference.kt similarity index 94% rename from ui/src/main/java/com/wireguard/android/preference/QuickTilePreference.kt rename to ui/src/main/java/page/onram/wirevpn/preference/QuickTilePreference.kt index 458b9f9a..a3b55398 100644 --- a/ui/src/main/java/com/wireguard/android/preference/QuickTilePreference.kt +++ b/ui/src/main/java/page/onram/wirevpn/preference/QuickTilePreference.kt @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.preference +package page.onram.wirevpn.preference import android.app.StatusBarManager import android.content.ComponentName @@ -14,8 +14,8 @@ import android.util.AttributeSet import android.widget.Toast import androidx.annotation.RequiresApi import androidx.preference.Preference -import com.wireguard.android.QuickTileService -import com.wireguard.android.R +import page.onram.wirevpn.QuickTileService +import page.onram.wirevpn.R @RequiresApi(Build.VERSION_CODES.TIRAMISU) class QuickTilePreference(context: Context, attrs: AttributeSet?) : Preference(context, attrs) { diff --git a/ui/src/main/java/com/wireguard/android/preference/ToolsInstallerPreference.kt b/ui/src/main/java/page/onram/wirevpn/preference/ToolsInstallerPreference.kt similarity index 93% rename from ui/src/main/java/com/wireguard/android/preference/ToolsInstallerPreference.kt rename to ui/src/main/java/page/onram/wirevpn/preference/ToolsInstallerPreference.kt index b22048b5..f0912a95 100644 --- a/ui/src/main/java/com/wireguard/android/preference/ToolsInstallerPreference.kt +++ b/ui/src/main/java/page/onram/wirevpn/preference/ToolsInstallerPreference.kt @@ -2,15 +2,15 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.preference +package page.onram.wirevpn.preference import android.content.Context import android.util.AttributeSet import androidx.preference.Preference -import com.wireguard.android.Application -import com.wireguard.android.R -import com.wireguard.android.util.ToolsInstaller -import com.wireguard.android.util.lifecycleScope +import page.onram.wirevpn.Application +import page.onram.wirevpn.R +import page.onram.wirevpn.util.ToolsInstaller +import page.onram.wirevpn.util.lifecycleScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext diff --git a/ui/src/main/java/com/wireguard/android/preference/VersionPreference.kt b/ui/src/main/java/page/onram/wirevpn/preference/VersionPreference.kt similarity index 81% rename from ui/src/main/java/com/wireguard/android/preference/VersionPreference.kt rename to ui/src/main/java/page/onram/wirevpn/preference/VersionPreference.kt index 3850482b..d868f1d9 100644 --- a/ui/src/main/java/com/wireguard/android/preference/VersionPreference.kt +++ b/ui/src/main/java/page/onram/wirevpn/preference/VersionPreference.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.preference +package page.onram.wirevpn.preference import android.content.Context import android.content.Intent @@ -10,14 +10,14 @@ import android.net.Uri import android.util.AttributeSet import android.widget.Toast import androidx.preference.Preference -import com.wireguard.android.Application -import com.wireguard.android.BuildConfig -import com.wireguard.android.R -import com.wireguard.android.backend.Backend -import com.wireguard.android.backend.GoBackend -import com.wireguard.android.backend.WgQuickBackend -import com.wireguard.android.util.ErrorMessages -import com.wireguard.android.util.lifecycleScope +import page.onram.wirevpn.Application +import page.onram.wirevpn.BuildConfig +import page.onram.wirevpn.R +import page.onram.wirevpn.backend.Backend +import page.onram.wirevpn.backend.GoBackend +import page.onram.wirevpn.backend.WgQuickBackend +import page.onram.wirevpn.util.ErrorMessages +import page.onram.wirevpn.util.lifecycleScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -31,7 +31,7 @@ class VersionPreference(context: Context, attrs: AttributeSet?) : Preference(con override fun onClick() { val intent = Intent(Intent.ACTION_VIEW) - intent.data = Uri.parse("https://www.wireguard.com/") + intent.data = Uri.parse("https://git.obahan.xyz/frank/wirevpn") try { context.startActivity(intent) } catch (e: Throwable) { diff --git a/ui/src/main/java/com/wireguard/android/preference/ZipExporterPreference.kt b/ui/src/main/java/page/onram/wirevpn/preference/ZipExporterPreference.kt similarity index 91% rename from ui/src/main/java/com/wireguard/android/preference/ZipExporterPreference.kt rename to ui/src/main/java/page/onram/wirevpn/preference/ZipExporterPreference.kt index 52701157..fa2cd6f4 100644 --- a/ui/src/main/java/com/wireguard/android/preference/ZipExporterPreference.kt +++ b/ui/src/main/java/page/onram/wirevpn/preference/ZipExporterPreference.kt @@ -2,21 +2,21 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.preference +package page.onram.wirevpn.preference import android.content.Context import android.util.AttributeSet import android.util.Log import androidx.preference.Preference import com.google.android.material.snackbar.Snackbar -import com.wireguard.android.Application -import com.wireguard.android.R -import com.wireguard.android.util.AdminKnobs -import com.wireguard.android.util.BiometricAuthenticator -import com.wireguard.android.util.DownloadsFileSaver -import com.wireguard.android.util.ErrorMessages -import com.wireguard.android.util.activity -import com.wireguard.android.util.lifecycleScope +import page.onram.wirevpn.Application +import page.onram.wirevpn.R +import page.onram.wirevpn.util.AdminKnobs +import page.onram.wirevpn.util.BiometricAuthenticator +import page.onram.wirevpn.util.DownloadsFileSaver +import page.onram.wirevpn.util.ErrorMessages +import page.onram.wirevpn.util.activity +import page.onram.wirevpn.util.lifecycleScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.async diff --git a/ui/src/main/java/com/wireguard/android/updater/Ed25519.java b/ui/src/main/java/page/onram/wirevpn/updater/Ed25519.java similarity index 99% rename from ui/src/main/java/com/wireguard/android/updater/Ed25519.java rename to ui/src/main/java/page/onram/wirevpn/updater/Ed25519.java index 44e99b86..3f6bd475 100644 --- a/ui/src/main/java/com/wireguard/android/updater/Ed25519.java +++ b/ui/src/main/java/page/onram/wirevpn/updater/Ed25519.java @@ -4,7 +4,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.updater; +package page.onram.wirevpn.updater; import java.math.BigInteger; import java.security.GeneralSecurityException; diff --git a/ui/src/main/java/com/wireguard/android/updater/SnackbarUpdateShower.kt b/ui/src/main/java/page/onram/wirevpn/updater/SnackbarUpdateShower.kt similarity index 97% rename from ui/src/main/java/com/wireguard/android/updater/SnackbarUpdateShower.kt rename to ui/src/main/java/page/onram/wirevpn/updater/SnackbarUpdateShower.kt index e6134991..93f576d0 100644 --- a/ui/src/main/java/com/wireguard/android/updater/SnackbarUpdateShower.kt +++ b/ui/src/main/java/page/onram/wirevpn/updater/SnackbarUpdateShower.kt @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.updater +package page.onram.wirevpn.updater import android.content.Intent import android.net.Uri @@ -15,9 +15,9 @@ import androidx.lifecycle.lifecycleScope import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.snackbar.BaseTransientBottomBar import com.google.android.material.snackbar.Snackbar -import com.wireguard.android.R -import com.wireguard.android.util.ErrorMessages -import com.wireguard.android.util.QuantityFormatter +import page.onram.wirevpn.R +import page.onram.wirevpn.util.ErrorMessages +import page.onram.wirevpn.util.QuantityFormatter import kotlinx.coroutines.delay import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach diff --git a/ui/src/main/java/com/wireguard/android/updater/Updater.kt b/ui/src/main/java/page/onram/wirevpn/updater/Updater.kt similarity index 97% rename from ui/src/main/java/com/wireguard/android/updater/Updater.kt rename to ui/src/main/java/page/onram/wirevpn/updater/Updater.kt index 84bb6c7a..8a8aa485 100644 --- a/ui/src/main/java/com/wireguard/android/updater/Updater.kt +++ b/ui/src/main/java/page/onram/wirevpn/updater/Updater.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.updater +package page.onram.wirevpn.updater import android.Manifest import android.app.PendingIntent @@ -17,11 +17,11 @@ import android.util.Base64 import android.util.Log import androidx.core.content.ContextCompat import androidx.core.content.IntentCompat -import com.wireguard.android.Application -import com.wireguard.android.BuildConfig -import com.wireguard.android.activity.MainActivity -import com.wireguard.android.util.UserKnobs -import com.wireguard.android.util.applicationScope +import page.onram.wirevpn.Application +import page.onram.wirevpn.BuildConfig +import page.onram.wirevpn.activity.MainActivity +import page.onram.wirevpn.util.UserKnobs +import page.onram.wirevpn.util.applicationScope import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job @@ -46,7 +46,7 @@ import kotlin.time.Duration.Companion.minutes import kotlin.time.Duration.Companion.seconds object Updater { - private const val TAG = "WireGuard/Updater" + private const val TAG = "WireVPN/Updater" private const val UPDATE_URL_FMT = "https://download.wireguard.com/android-client/%s" private const val APK_NAME_PREFIX = BuildConfig.APPLICATION_ID + "-" private const val APK_NAME_SUFFIX = ".apk" @@ -376,9 +376,14 @@ object Updater { /* Hello copy and paste artist! Before you go remove these next two lines, * I kindly ask that you actually think about what you're doing more globally, * and instead remove this entire file from your project. Thank you very much! */ - if (!context.packageName.startsWith("com.wireguard.")) + if (!context.packageName.startsWith("page.onram.wirevpn.")) throw RuntimeException("Too much code got copy and pasted") + // Wire VPN is distributed via its own F-Droid repository; the upstream + // auto-updater points at the official WireGuard app and its signature, + // so it is disabled for this fork. + return + if (installerIsGooglePlay(context)) return diff --git a/ui/src/main/java/com/wireguard/android/util/AdminKnobs.kt b/ui/src/main/java/page/onram/wirevpn/util/AdminKnobs.kt similarity index 86% rename from ui/src/main/java/com/wireguard/android/util/AdminKnobs.kt rename to ui/src/main/java/page/onram/wirevpn/util/AdminKnobs.kt index 2c23910b..5782b326 100644 --- a/ui/src/main/java/com/wireguard/android/util/AdminKnobs.kt +++ b/ui/src/main/java/page/onram/wirevpn/util/AdminKnobs.kt @@ -3,11 +3,11 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.util +package page.onram.wirevpn.util import android.content.RestrictionsManager import androidx.core.content.getSystemService -import com.wireguard.android.Application +import page.onram.wirevpn.Application object AdminKnobs { private val restrictions: RestrictionsManager? = Application.get().getSystemService() diff --git a/ui/src/main/java/com/wireguard/android/util/BiometricAuthenticator.kt b/ui/src/main/java/page/onram/wirevpn/util/BiometricAuthenticator.kt similarity index 98% rename from ui/src/main/java/com/wireguard/android/util/BiometricAuthenticator.kt rename to ui/src/main/java/page/onram/wirevpn/util/BiometricAuthenticator.kt index 064ea04d..16e015c6 100644 --- a/ui/src/main/java/com/wireguard/android/util/BiometricAuthenticator.kt +++ b/ui/src/main/java/page/onram/wirevpn/util/BiometricAuthenticator.kt @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.util +package page.onram.wirevpn.util import android.os.Handler import android.os.Looper @@ -13,7 +13,7 @@ import androidx.biometric.BiometricManager import androidx.biometric.BiometricManager.Authenticators import androidx.biometric.BiometricPrompt import androidx.fragment.app.Fragment -import com.wireguard.android.R +import page.onram.wirevpn.R object BiometricAuthenticator { diff --git a/ui/src/main/java/com/wireguard/android/util/ClipboardUtils.kt b/ui/src/main/java/page/onram/wirevpn/util/ClipboardUtils.kt similarity index 94% rename from ui/src/main/java/com/wireguard/android/util/ClipboardUtils.kt rename to ui/src/main/java/page/onram/wirevpn/util/ClipboardUtils.kt index 8968979f..837896f1 100644 --- a/ui/src/main/java/com/wireguard/android/util/ClipboardUtils.kt +++ b/ui/src/main/java/page/onram/wirevpn/util/ClipboardUtils.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.util +package page.onram.wirevpn.util import android.content.ClipData import android.content.ClipboardManager @@ -12,7 +12,7 @@ import android.widget.TextView import androidx.core.content.getSystemService import com.google.android.material.snackbar.Snackbar import com.google.android.material.textfield.TextInputEditText -import com.wireguard.android.R +import page.onram.wirevpn.R /** * Standalone utilities for interacting with the system clipboard. diff --git a/ui/src/main/java/com/wireguard/android/util/DownloadsFileSaver.kt b/ui/src/main/java/page/onram/wirevpn/util/DownloadsFileSaver.kt similarity index 98% rename from ui/src/main/java/com/wireguard/android/util/DownloadsFileSaver.kt rename to ui/src/main/java/page/onram/wirevpn/util/DownloadsFileSaver.kt index f78094b6..98251f66 100644 --- a/ui/src/main/java/com/wireguard/android/util/DownloadsFileSaver.kt +++ b/ui/src/main/java/page/onram/wirevpn/util/DownloadsFileSaver.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.util +package page.onram.wirevpn.util import android.Manifest import android.content.ContentValues @@ -17,7 +17,7 @@ import androidx.activity.ComponentActivity import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContracts import androidx.core.content.ContextCompat -import com.wireguard.android.R +import page.onram.wirevpn.R import kotlinx.coroutines.CompletableDeferred import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext diff --git a/ui/src/main/java/com/wireguard/android/util/ErrorMessages.kt b/ui/src/main/java/page/onram/wirevpn/util/ErrorMessages.kt similarity index 93% rename from ui/src/main/java/com/wireguard/android/util/ErrorMessages.kt rename to ui/src/main/java/page/onram/wirevpn/util/ErrorMessages.kt index 4157ebf2..d28fcb8e 100644 --- a/ui/src/main/java/com/wireguard/android/util/ErrorMessages.kt +++ b/ui/src/main/java/page/onram/wirevpn/util/ErrorMessages.kt @@ -2,22 +2,22 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.util +package page.onram.wirevpn.util import android.content.res.Resources import android.os.RemoteException import com.google.zxing.ChecksumException import com.google.zxing.NotFoundException -import com.wireguard.android.Application -import com.wireguard.android.R -import com.wireguard.android.backend.BackendException -import com.wireguard.android.util.RootShell.RootShellException -import com.wireguard.config.BadConfigException -import com.wireguard.config.InetEndpoint -import com.wireguard.config.InetNetwork -import com.wireguard.config.ParseException -import com.wireguard.crypto.Key -import com.wireguard.crypto.KeyFormatException +import page.onram.wirevpn.Application +import page.onram.wirevpn.R +import page.onram.wirevpn.backend.BackendException +import page.onram.wirevpn.util.RootShell.RootShellException +import page.onram.wirevpn.config.BadConfigException +import page.onram.wirevpn.config.InetEndpoint +import page.onram.wirevpn.config.InetNetwork +import page.onram.wirevpn.config.ParseException +import page.onram.wirevpn.crypto.Key +import page.onram.wirevpn.crypto.KeyFormatException import java.net.InetAddress object ErrorMessages { diff --git a/ui/src/main/java/com/wireguard/android/util/Extensions.kt b/ui/src/main/java/page/onram/wirevpn/util/Extensions.kt similarity index 86% rename from ui/src/main/java/com/wireguard/android/util/Extensions.kt rename to ui/src/main/java/page/onram/wirevpn/util/Extensions.kt index c4b43951..864f85e6 100644 --- a/ui/src/main/java/com/wireguard/android/util/Extensions.kt +++ b/ui/src/main/java/page/onram/wirevpn/util/Extensions.kt @@ -3,15 +3,15 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.util +package page.onram.wirevpn.util import android.content.Context import android.util.TypedValue import androidx.annotation.AttrRes import androidx.lifecycle.lifecycleScope import androidx.preference.Preference -import com.wireguard.android.Application -import com.wireguard.android.activity.SettingsActivity +import page.onram.wirevpn.Application +import page.onram.wirevpn.activity.SettingsActivity import kotlinx.coroutines.CoroutineScope fun Context.resolveAttribute(@AttrRes attrRes: Int): Int { diff --git a/ui/src/main/java/com/wireguard/android/util/QrCodeFromFileScanner.kt b/ui/src/main/java/page/onram/wirevpn/util/QrCodeFromFileScanner.kt similarity index 98% rename from ui/src/main/java/com/wireguard/android/util/QrCodeFromFileScanner.kt rename to ui/src/main/java/page/onram/wirevpn/util/QrCodeFromFileScanner.kt index 4ea2dc7a..87ee0797 100644 --- a/ui/src/main/java/com/wireguard/android/util/QrCodeFromFileScanner.kt +++ b/ui/src/main/java/page/onram/wirevpn/util/QrCodeFromFileScanner.kt @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.util +package page.onram.wirevpn.util import android.content.ContentResolver import android.graphics.Bitmap diff --git a/ui/src/main/java/com/wireguard/android/util/QuantityFormatter.kt b/ui/src/main/java/page/onram/wirevpn/util/QuantityFormatter.kt similarity index 96% rename from ui/src/main/java/com/wireguard/android/util/QuantityFormatter.kt rename to ui/src/main/java/page/onram/wirevpn/util/QuantityFormatter.kt index abac57c5..44882418 100644 --- a/ui/src/main/java/com/wireguard/android/util/QuantityFormatter.kt +++ b/ui/src/main/java/page/onram/wirevpn/util/QuantityFormatter.kt @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.util +package page.onram.wirevpn.util import android.icu.text.ListFormatter import android.icu.text.MeasureFormat @@ -11,8 +11,8 @@ import android.icu.text.RelativeDateTimeFormatter import android.icu.util.Measure import android.icu.util.MeasureUnit import android.os.Build -import com.wireguard.android.Application -import com.wireguard.android.R +import page.onram.wirevpn.Application +import page.onram.wirevpn.R import java.util.Locale import kotlin.time.Duration.Companion.seconds diff --git a/ui/src/main/java/com/wireguard/android/util/TunnelImporter.kt b/ui/src/main/java/page/onram/wirevpn/util/TunnelImporter.kt similarity index 96% rename from ui/src/main/java/com/wireguard/android/util/TunnelImporter.kt rename to ui/src/main/java/page/onram/wirevpn/util/TunnelImporter.kt index 18a37ef6..e4c19863 100644 --- a/ui/src/main/java/com/wireguard/android/util/TunnelImporter.kt +++ b/ui/src/main/java/page/onram/wirevpn/util/TunnelImporter.kt @@ -3,18 +3,18 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.util +package page.onram.wirevpn.util import android.content.ContentResolver import android.net.Uri import android.provider.OpenableColumns import android.util.Log import androidx.fragment.app.FragmentManager -import com.wireguard.android.Application -import com.wireguard.android.R -import com.wireguard.android.fragment.ConfigNamingDialogFragment -import com.wireguard.android.model.ObservableTunnel -import com.wireguard.config.Config +import page.onram.wirevpn.Application +import page.onram.wirevpn.R +import page.onram.wirevpn.fragment.ConfigNamingDialogFragment +import page.onram.wirevpn.model.ObservableTunnel +import page.onram.wirevpn.config.Config import kotlinx.coroutines.Deferred import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.SupervisorJob diff --git a/ui/src/main/java/com/wireguard/android/util/UserKnobs.kt b/ui/src/main/java/page/onram/wirevpn/util/UserKnobs.kt similarity index 98% rename from ui/src/main/java/com/wireguard/android/util/UserKnobs.kt rename to ui/src/main/java/page/onram/wirevpn/util/UserKnobs.kt index ca051739..b94758ca 100644 --- a/ui/src/main/java/com/wireguard/android/util/UserKnobs.kt +++ b/ui/src/main/java/page/onram/wirevpn/util/UserKnobs.kt @@ -3,13 +3,13 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.util +package page.onram.wirevpn.util import androidx.datastore.preferences.core.booleanPreferencesKey import androidx.datastore.preferences.core.edit import androidx.datastore.preferences.core.stringPreferencesKey import androidx.datastore.preferences.core.stringSetPreferencesKey -import com.wireguard.android.Application +import page.onram.wirevpn.Application import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map diff --git a/ui/src/main/java/com/wireguard/android/viewmodel/ConfigProxy.kt b/ui/src/main/java/page/onram/wirevpn/viewmodel/ConfigProxy.kt similarity index 93% rename from ui/src/main/java/com/wireguard/android/viewmodel/ConfigProxy.kt rename to ui/src/main/java/page/onram/wirevpn/viewmodel/ConfigProxy.kt index 7f39b461..db267542 100644 --- a/ui/src/main/java/com/wireguard/android/viewmodel/ConfigProxy.kt +++ b/ui/src/main/java/page/onram/wirevpn/viewmodel/ConfigProxy.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.viewmodel +package page.onram.wirevpn.viewmodel import android.os.Build import android.os.Parcel @@ -10,9 +10,9 @@ import android.os.Parcelable import androidx.core.os.ParcelCompat import androidx.databinding.ObservableArrayList import androidx.databinding.ObservableList -import com.wireguard.config.BadConfigException -import com.wireguard.config.Config -import com.wireguard.config.Peer +import page.onram.wirevpn.config.BadConfigException +import page.onram.wirevpn.config.Config +import page.onram.wirevpn.config.Peer class ConfigProxy : Parcelable { val `interface`: InterfaceProxy diff --git a/ui/src/main/java/com/wireguard/android/viewmodel/InterfaceProxy.kt b/ui/src/main/java/page/onram/wirevpn/viewmodel/InterfaceProxy.kt similarity index 92% rename from ui/src/main/java/com/wireguard/android/viewmodel/InterfaceProxy.kt rename to ui/src/main/java/page/onram/wirevpn/viewmodel/InterfaceProxy.kt index 25c2fd19..feaf6eeb 100644 --- a/ui/src/main/java/com/wireguard/android/viewmodel/InterfaceProxy.kt +++ b/ui/src/main/java/page/onram/wirevpn/viewmodel/InterfaceProxy.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.viewmodel +package page.onram.wirevpn.viewmodel import android.os.Parcel import android.os.Parcelable @@ -10,13 +10,13 @@ import androidx.databinding.BaseObservable import androidx.databinding.Bindable import androidx.databinding.ObservableArrayList import androidx.databinding.ObservableList -import com.wireguard.android.BR -import com.wireguard.config.Attribute -import com.wireguard.config.BadConfigException -import com.wireguard.config.Interface -import com.wireguard.crypto.Key -import com.wireguard.crypto.KeyFormatException -import com.wireguard.crypto.KeyPair +import page.onram.wirevpn.BR +import page.onram.wirevpn.config.Attribute +import page.onram.wirevpn.config.BadConfigException +import page.onram.wirevpn.config.Interface +import page.onram.wirevpn.crypto.Key +import page.onram.wirevpn.crypto.KeyFormatException +import page.onram.wirevpn.crypto.KeyPair class InterfaceProxy : BaseObservable, Parcelable { @get:Bindable diff --git a/ui/src/main/java/com/wireguard/android/viewmodel/PeerProxy.kt b/ui/src/main/java/page/onram/wirevpn/viewmodel/PeerProxy.kt similarity index 98% rename from ui/src/main/java/com/wireguard/android/viewmodel/PeerProxy.kt rename to ui/src/main/java/page/onram/wirevpn/viewmodel/PeerProxy.kt index 15bf8a08..f665eeb8 100644 --- a/ui/src/main/java/com/wireguard/android/viewmodel/PeerProxy.kt +++ b/ui/src/main/java/page/onram/wirevpn/viewmodel/PeerProxy.kt @@ -2,7 +2,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.viewmodel +package page.onram.wirevpn.viewmodel import android.os.Parcel import android.os.Parcelable @@ -11,10 +11,10 @@ import androidx.databinding.Bindable import androidx.databinding.Observable import androidx.databinding.Observable.OnPropertyChangedCallback import androidx.databinding.ObservableList -import com.wireguard.android.BR -import com.wireguard.config.Attribute -import com.wireguard.config.BadConfigException -import com.wireguard.config.Peer +import page.onram.wirevpn.BR +import page.onram.wirevpn.config.Attribute +import page.onram.wirevpn.config.BadConfigException +import page.onram.wirevpn.config.Peer import java.lang.ref.WeakReference class PeerProxy : BaseObservable, Parcelable { diff --git a/ui/src/main/java/com/wireguard/android/widget/KeyInputFilter.kt b/ui/src/main/java/page/onram/wirevpn/widget/KeyInputFilter.kt similarity index 95% rename from ui/src/main/java/com/wireguard/android/widget/KeyInputFilter.kt rename to ui/src/main/java/page/onram/wirevpn/widget/KeyInputFilter.kt index 548760c5..1f386954 100644 --- a/ui/src/main/java/com/wireguard/android/widget/KeyInputFilter.kt +++ b/ui/src/main/java/page/onram/wirevpn/widget/KeyInputFilter.kt @@ -2,12 +2,12 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.widget +package page.onram.wirevpn.widget import android.text.InputFilter import android.text.SpannableStringBuilder import android.text.Spanned -import com.wireguard.crypto.Key +import page.onram.wirevpn.crypto.Key /** * InputFilter for entering WireGuard private/public keys encoded with base64. diff --git a/ui/src/main/java/com/wireguard/android/widget/MultiselectableRelativeLayout.kt b/ui/src/main/java/page/onram/wirevpn/widget/MultiselectableRelativeLayout.kt similarity index 95% rename from ui/src/main/java/com/wireguard/android/widget/MultiselectableRelativeLayout.kt rename to ui/src/main/java/page/onram/wirevpn/widget/MultiselectableRelativeLayout.kt index 9b3ec401..3754ff2c 100644 --- a/ui/src/main/java/com/wireguard/android/widget/MultiselectableRelativeLayout.kt +++ b/ui/src/main/java/page/onram/wirevpn/widget/MultiselectableRelativeLayout.kt @@ -2,13 +2,13 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.widget +package page.onram.wirevpn.widget import android.content.Context import android.util.AttributeSet import android.view.View import android.widget.RelativeLayout -import com.wireguard.android.R +import page.onram.wirevpn.R class MultiselectableRelativeLayout @JvmOverloads constructor( context: Context? = null, diff --git a/ui/src/main/java/com/wireguard/android/widget/NameInputFilter.kt b/ui/src/main/java/page/onram/wirevpn/widget/NameInputFilter.kt similarity index 94% rename from ui/src/main/java/com/wireguard/android/widget/NameInputFilter.kt rename to ui/src/main/java/page/onram/wirevpn/widget/NameInputFilter.kt index 93b77ba9..6fcddac4 100644 --- a/ui/src/main/java/com/wireguard/android/widget/NameInputFilter.kt +++ b/ui/src/main/java/page/onram/wirevpn/widget/NameInputFilter.kt @@ -2,12 +2,12 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.widget +package page.onram.wirevpn.widget import android.text.InputFilter import android.text.SpannableStringBuilder import android.text.Spanned -import com.wireguard.android.backend.Tunnel +import page.onram.wirevpn.backend.Tunnel /** * InputFilter for entering WireGuard configuration names (Linux interface names). diff --git a/ui/src/main/java/com/wireguard/android/widget/SlashDrawable.kt b/ui/src/main/java/page/onram/wirevpn/widget/SlashDrawable.kt similarity index 99% rename from ui/src/main/java/com/wireguard/android/widget/SlashDrawable.kt rename to ui/src/main/java/page/onram/wirevpn/widget/SlashDrawable.kt index c69e6d8b..601d3894 100644 --- a/ui/src/main/java/com/wireguard/android/widget/SlashDrawable.kt +++ b/ui/src/main/java/page/onram/wirevpn/widget/SlashDrawable.kt @@ -3,7 +3,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.widget +package page.onram.wirevpn.widget import android.animation.ObjectAnimator import android.content.res.ColorStateList diff --git a/ui/src/main/java/com/wireguard/android/widget/ToggleSwitch.kt b/ui/src/main/java/page/onram/wirevpn/widget/ToggleSwitch.kt similarity index 97% rename from ui/src/main/java/com/wireguard/android/widget/ToggleSwitch.kt rename to ui/src/main/java/page/onram/wirevpn/widget/ToggleSwitch.kt index 9b79706b..06b77339 100644 --- a/ui/src/main/java/com/wireguard/android/widget/ToggleSwitch.kt +++ b/ui/src/main/java/page/onram/wirevpn/widget/ToggleSwitch.kt @@ -3,7 +3,7 @@ * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.widget +package page.onram.wirevpn.widget import android.content.Context import android.os.Parcelable diff --git a/ui/src/main/java/com/wireguard/android/widget/TvCardView.kt b/ui/src/main/java/page/onram/wirevpn/widget/TvCardView.kt similarity index 95% rename from ui/src/main/java/com/wireguard/android/widget/TvCardView.kt rename to ui/src/main/java/page/onram/wirevpn/widget/TvCardView.kt index de301313..52b5e519 100644 --- a/ui/src/main/java/com/wireguard/android/widget/TvCardView.kt +++ b/ui/src/main/java/page/onram/wirevpn/widget/TvCardView.kt @@ -3,13 +3,13 @@ * SPDX-License-Identifier: Apache-2.0 */ -package com.wireguard.android.widget +package page.onram.wirevpn.widget import android.content.Context import android.util.AttributeSet import android.view.View import com.google.android.material.card.MaterialCardView -import com.wireguard.android.R +import page.onram.wirevpn.R class TvCardView(context: Context?, attrs: AttributeSet?) : MaterialCardView(context, attrs) { var isUp: Boolean = false diff --git a/ui/src/main/res/drawable/ic_launcher_foreground.xml b/ui/src/main/res/drawable/ic_launcher_foreground.xml index 044d2e08..fc827434 100644 --- a/ui/src/main/res/drawable/ic_launcher_foreground.xml +++ b/ui/src/main/res/drawable/ic_launcher_foreground.xml @@ -1,5 +1,4 @@ - - - - - - - - - - - - - - + + diff --git a/ui/src/main/res/layout-sw600dp/main_activity.xml b/ui/src/main/res/layout-sw600dp/main_activity.xml index ef1d4053..f383d45d 100644 --- a/ui/src/main/res/layout-sw600dp/main_activity.xml +++ b/ui/src/main/res/layout-sw600dp/main_activity.xml @@ -21,7 +21,7 @@ - + + type="page.onram.wirevpn.fragment.AppListDialogFragment" /> + type="page.onram.wirevpn.databinding.ObservableKeyedArrayList<String, ApplicationData>" /> - + + type="page.onram.wirevpn.databinding.ObservableKeyedArrayList<String, page.onram.wirevpn.model.ApplicationData>" /> + type="page.onram.wirevpn.model.ApplicationData" /> - + diff --git a/ui/src/main/res/layout/tunnel_creator_activity.xml b/ui/src/main/res/layout/tunnel_creator_activity.xml index 82273db2..d3f589d3 100644 --- a/ui/src/main/res/layout/tunnel_creator_activity.xml +++ b/ui/src/main/res/layout/tunnel_creator_activity.xml @@ -12,7 +12,7 @@ diff --git a/ui/src/main/res/layout/tunnel_detail_fragment.xml b/ui/src/main/res/layout/tunnel_detail_fragment.xml index aae3e397..836f6866 100644 --- a/ui/src/main/res/layout/tunnel_detail_fragment.xml +++ b/ui/src/main/res/layout/tunnel_detail_fragment.xml @@ -8,21 +8,21 @@ - + - + + type="page.onram.wirevpn.fragment.TunnelDetailFragment" /> + type="page.onram.wirevpn.model.ObservableTunnel" /> + type="page.onram.wirevpn.config.Config" /> - - + + type="page.onram.wirevpn.config.Peer" /> - + - + - + + type="page.onram.wirevpn.fragment.TunnelEditorFragment" /> + type="page.onram.wirevpn.viewmodel.ConfigProxy" /> - + - + + type="androidx.databinding.ObservableList<page.onram.wirevpn.viewmodel.PeerProxy>" /> + type="page.onram.wirevpn.viewmodel.PeerProxy" /> + type="page.onram.wirevpn.fragment.TunnelEditorFragment" /> - + + type="page.onram.wirevpn.fragment.TunnelListFragment" /> + type="page.onram.wirevpn.databinding.ObservableKeyedRecyclerViewAdapter.RowConfigurationHandler" /> + type="page.onram.wirevpn.databinding.ObservableKeyedArrayList<String, ObservableTunnel>" /> - + - + + type="page.onram.wirevpn.databinding.ObservableKeyedArrayList<String, ObservableTunnel>" /> + type="page.onram.wirevpn.model.ObservableTunnel" /> + type="page.onram.wirevpn.fragment.TunnelListFragment" /> - - - + diff --git a/ui/src/main/res/layout/tv_activity.xml b/ui/src/main/res/layout/tv_activity.xml index f42808b3..6d6db6b6 100644 --- a/ui/src/main/res/layout/tv_activity.xml +++ b/ui/src/main/res/layout/tv_activity.xml @@ -10,9 +10,9 @@ - + - + + type="page.onram.wirevpn.databinding.ObservableKeyedArrayList<String, KeyedFile>" /> + type="page.onram.wirevpn.databinding.ObservableKeyedArrayList<String, ObservableTunnel>" /> + type="page.onram.wirevpn.databinding.ObservableKeyedRecyclerViewAdapter.RowConfigurationHandler" /> + type="page.onram.wirevpn.databinding.ObservableKeyedRecyclerViewAdapter.RowConfigurationHandler" /> - + - + - + + type="page.onram.wirevpn.model.ObservableTunnel" /> - - + diff --git a/ui/src/main/res/mipmap-hdpi/ic_launcher.png b/ui/src/main/res/mipmap-hdpi/ic_launcher.png index 45daa9a1..8973c588 100644 Binary files a/ui/src/main/res/mipmap-hdpi/ic_launcher.png and b/ui/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/ui/src/main/res/mipmap-hdpi/ic_launcher_round.png b/ui/src/main/res/mipmap-hdpi/ic_launcher_round.png index 41c38a15..8973c588 100644 Binary files a/ui/src/main/res/mipmap-hdpi/ic_launcher_round.png and b/ui/src/main/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/ui/src/main/res/mipmap-mdpi/ic_launcher.png b/ui/src/main/res/mipmap-mdpi/ic_launcher.png index 601407ed..8ebef330 100644 Binary files a/ui/src/main/res/mipmap-mdpi/ic_launcher.png and b/ui/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/ui/src/main/res/mipmap-mdpi/ic_launcher_round.png b/ui/src/main/res/mipmap-mdpi/ic_launcher_round.png index 064296e7..8ebef330 100644 Binary files a/ui/src/main/res/mipmap-mdpi/ic_launcher_round.png and b/ui/src/main/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/ui/src/main/res/mipmap-xhdpi/ic_launcher.png b/ui/src/main/res/mipmap-xhdpi/ic_launcher.png index ec479ebc..44106efc 100644 Binary files a/ui/src/main/res/mipmap-xhdpi/ic_launcher.png and b/ui/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/ui/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/ui/src/main/res/mipmap-xhdpi/ic_launcher_round.png index 668d67b2..44106efc 100644 Binary files a/ui/src/main/res/mipmap-xhdpi/ic_launcher_round.png and b/ui/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/ui/src/main/res/mipmap-xxhdpi/ic_launcher.png b/ui/src/main/res/mipmap-xxhdpi/ic_launcher.png index 4010a271..c1e28354 100644 Binary files a/ui/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/ui/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/ui/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/ui/src/main/res/mipmap-xxhdpi/ic_launcher_round.png index 1569994a..c1e28354 100644 Binary files a/ui/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and b/ui/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/ui/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/ui/src/main/res/mipmap-xxxhdpi/ic_launcher.png index d208e7a2..58f6513b 100644 Binary files a/ui/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/ui/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/ui/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/ui/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png index 1d4cc6d0..58f6513b 100644 Binary files a/ui/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and b/ui/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/ui/src/main/res/values-ar-rSA/strings.xml b/ui/src/main/res/values-ar-rSA/strings.xml index 73f6111a..ccf3324f 100644 --- a/ui/src/main/res/values-ar-rSA/strings.xml +++ b/ui/src/main/res/values-ar-rSA/strings.xml @@ -159,9 +159,8 @@ تحديد محرك تخزين الرجاء تثبيت مدير ملفات لتتمكن من تصفح الملفات أضف نفقاً لتبدأ - ♥️ تبرع لمشروع وايرجارد - كل مساهمة تساعد - شكرًا لك على دعم مشروع\n\nWireGuard! للأسف، نظرًا لسياسات Google، لا يُسمح لنا بالارتباط بجزء من صفحة الويب الخاصة بالمشروع حيث يمكنك التبرع. نأمل أن تتمكن من معرفة ذلك!\n\nشكرًا مرة أخرى على مساهمتك. + + تعطيل تصدير التكوين تعطيل تصدير الإعدادات يجعل المفاتيح الخاصة غير متاحة خوادم DNS diff --git a/ui/src/main/res/values-ca-rES/strings.xml b/ui/src/main/res/values-ca-rES/strings.xml index f2fe06cb..00e9f37c 100644 --- a/ui/src/main/res/values-ca-rES/strings.xml +++ b/ui/src/main/res/values-ca-rES/strings.xml @@ -107,9 +107,8 @@ Seleccioneu un disc d\'emmagatzematge Si us plau, instsleu un gestor de fitxers per navegar pels arxius Afegeix un túnel per començar - ♥ Donar al Projecte WireGuard - Totes les contribucions ajuden - Gràcies per donar suport al Projecte WireGuard!\n\nMalauradament, a causa de les polítiques de Google, no estem permesos a enllaçar a la part del web del projecte on pots realitzar una donació. Esperem que puguis trobar-ho!\n\nGràcies de nou per la teva contribució. + + Desactiva l\'exportació de configuracions Desactivar l\'exportacio de configuracions fa que les claus privades siguin menys accessibles Servidors DNS diff --git a/ui/src/main/res/values-cs-rCZ/strings.xml b/ui/src/main/res/values-cs-rCZ/strings.xml index 24568a8b..bea7427f 100644 --- a/ui/src/main/res/values-cs-rCZ/strings.xml +++ b/ui/src/main/res/values-cs-rCZ/strings.xml @@ -133,9 +133,8 @@ Vyberte úložný disk Prosím nainstalujte nástroj pro správu souborů pro procházení souborů Přidejte tunel, abyste mohli začít - ♥ Přispět na projekt WireGuard - Každý příspěvek pomáhá - Děkujeme, že podporujete projekt WireGuard!\n\nBohužel, kvůli pravidlům Googlu, nám není dovoleno odkazovat na část webové stránky projektu, kde můžete provést dar. Doufáme, že to zvládnete nějakým způsobem!\n\nJeště jednou děkujeme za váš příspěvek. + + Zakázat export konfigurace Zakázání exportu konfigurace ztíží přístup k privátním klíčům DNS servery diff --git a/ui/src/main/res/values-da-rDK/strings.xml b/ui/src/main/res/values-da-rDK/strings.xml index 7b9b4491..5ade5523 100644 --- a/ui/src/main/res/values-da-rDK/strings.xml +++ b/ui/src/main/res/values-da-rDK/strings.xml @@ -107,9 +107,8 @@ Vælg et lagerdrev Installér venligst et filhåndteringsværktøj til at gennemse filer Tilføj en tunnel for at komme i gang - ♥ Donér til WireGuard projektet - Et hvert bidrag hjælper - Tak fordi du støttede WireGuard-projektet!\n\nDesværre, på grund af Googles politikker, har vi ikke tilladelse til at linke til den del af projektets webside, hvor du kan donere. Forhåbentlig kan du finde frem til dette!\n\nVi takker igen for dit bidrag. + + Deaktivér eksportering af konfiguration Deaktivering af config eksport gør private nøgler mindre tilgængelige DNS-servere diff --git a/ui/src/main/res/values-de/strings.xml b/ui/src/main/res/values-de/strings.xml index 9e0aa973..1aad3343 100644 --- a/ui/src/main/res/values-de/strings.xml +++ b/ui/src/main/res/values-de/strings.xml @@ -107,9 +107,8 @@ Speicherlaufwerk auswählen Bitte installieren Sie ein Dateiverwaltungsprogramm, um Dateien zu durchsuchen Fügen Sie einen Tunnel hinzu, um loszulegen - ♥ Spende an das WireGuard-Projekt - Jeder Beitrag hilft - Vielen Dank für Ihre Unterstützung des WireGuard-Projekts!\n\nLeider ist es uns aufgrund der Google-Richtlinien nicht gestattet, den Abschnitt der Projekt-Webseite zu verlinken, wo Sie hätten spenden können. Hoffentlich finden Sie das heraus!\n\nNochmals vielen Dank für Ihren Beitrag. + + Konfigurationsexport deaktivieren Durch Deaktivieren des Konfigurationsexports werden private Schlüssel unzugänglicher DNS-Server diff --git a/ui/src/main/res/values-es-rES/strings.xml b/ui/src/main/res/values-es-rES/strings.xml index 1376ac31..8d9affbb 100644 --- a/ui/src/main/res/values-es-rES/strings.xml +++ b/ui/src/main/res/values-es-rES/strings.xml @@ -107,9 +107,8 @@ Selecciones un dispositivo de almacenamiento Por favor, instale una herramienta de gestión de archivos para navegar por archivos Agregue un túnel para empezar - ♥ Donar al Proyecto WireGuard - Todas las contribuciones ayudan - ¡Gracias por apoyar el proyecto WireGuard!\n\nLamentablemente, debido a las políticas de Google, no estamos autorizados a enlazar a la parte de la página web del proyecto donde puedes hacer una donación. ¡Esperemos que puedas averiguar esto!\n\nGracias de nuevo por tu contribución. + + Inhabilitar la exportación de configuración Desactivar la exportación de configuración hace que las claves privadas sean menos accesibles Servidores DNS diff --git a/ui/src/main/res/values-et-rEE/strings.xml b/ui/src/main/res/values-et-rEE/strings.xml index 9beaafd9..6162f215 100644 --- a/ui/src/main/res/values-et-rEE/strings.xml +++ b/ui/src/main/res/values-et-rEE/strings.xml @@ -107,10 +107,7 @@ Vali salvestusseade Failide vaatamiseks paigalda failide haldusvahend Alustamiseks lisa uus tunnel - ♥ Anneta WireGuard\'i projektile - Iga panus aitab - Aitäh, et toetad WireGuard\'i projekti!\n\nKahjuks ei saa me Google\'i eeskirjade tõttu linkida projekti veebilehele, kus saab annetusi teha. Loodetavasti leiad selle ise!\n\n -Aitäh veelkord sinu panuse eest. + Keela seadistuste eksportimine Seadistuste eksportimise keelamine teeb privaatvõtmetele ligipääsu keerulisemaks DNS-serverid diff --git a/ui/src/main/res/values-fa-rIR/strings.xml b/ui/src/main/res/values-fa-rIR/strings.xml index 03f01cb1..f5d737d0 100644 --- a/ui/src/main/res/values-fa-rIR/strings.xml +++ b/ui/src/main/res/values-fa-rIR/strings.xml @@ -108,9 +108,8 @@ حافظه ذخیره سازی موردنظر را انتخاب کنید برای مدیریت پوشه های حافظه، یک برنامه مدیریت فایل نصب کنید یک پروفایل تونل برای شروع انتخاب کنید - ♥ کمک مالی به پروژه WireGuard - هر کمک شما تاثیرگذار است - از اینکه از پروژه WireGuard حمایت می‌کنید متشکریم!\n\nمتأسفانه، به دلیل خط‌مشی‌های Google، ما مجاز به پیوند دادن به بخشی از صفحه وب پروژه که می‌توانید در آن کمک مالی کنید، نداریم. امیدواریم بتوانید این را درک کنید!\n\nباز هم از مشارکت شما سپاسگزاریم. + + غیرفعال سازی خروجی گرفتن از پیکربندی ها غیرفعال سازی خروجی گرفتن، دسترسی به کلیدهای خصوصی را کم می کند سرورهای DNS diff --git a/ui/src/main/res/values-fr/strings.xml b/ui/src/main/res/values-fr/strings.xml index d4d4b95f..4b4067b1 100644 --- a/ui/src/main/res/values-fr/strings.xml +++ b/ui/src/main/res/values-fr/strings.xml @@ -107,9 +107,8 @@ Sélectionner un disque de stockage Veuillez installer un utilitaire de gestion de fichiers pour parcourir les fichiers Ajouter un tunnel pour commencer - ♥ Faire un don au projet WireGuard - Chaque contribution aide - Merci de votre soutien au projet WireGuard !\n\nMalheureusement, en raisons des politiques de Google, nous ne pouvons pas vous rediriger vers la page vous permettant de faire un don. Heureusement, vous pouvez le trouver par vous-même !\n\nMerci encore pour votre soutien. + + Désactiver l\'export de configuration La désactivation de l\'export de configuration rend les clés privées moins accessibles Serveurs DNS diff --git a/ui/src/main/res/values-hu-rHU/strings.xml b/ui/src/main/res/values-hu-rHU/strings.xml index f16370e0..a7226e04 100644 --- a/ui/src/main/res/values-hu-rHU/strings.xml +++ b/ui/src/main/res/values-hu-rHU/strings.xml @@ -48,9 +48,8 @@ Jelöjle ki a mentéshez a meghatjót Kérem installáljon egy fájlkezelőt az állományok használatához Add hozzá az indításhoz az alagutat - ♥ Kérlek támogasd a WireGuard Projectet - Minden hozzájárulás segítség - Köszönjük hogy támogatja a WireGuard projektet!\n\nSajnos a Google szabályai miatt, sajnos nem adhatjuk itt meg a támogatásokat fogadó weboldal linkjét. Remélem ezt ki tudod deríteni!\n\nMégegyszer köszönjük a támogatásod. + + A konfiguráció exportálásának tiltása Ha letiltja a konfiguráció exportját akkor a privát kulcsok nem lesznek hozzáférhetőek DNS szerverek diff --git a/ui/src/main/res/values-in/strings.xml b/ui/src/main/res/values-in/strings.xml index d665eec1..87a090d0 100644 --- a/ui/src/main/res/values-in/strings.xml +++ b/ui/src/main/res/values-in/strings.xml @@ -94,9 +94,8 @@ Pilih lokasi penyimpanan Silakan instal aplikasi file manajer untuk memilih file Tambahkan tunnel untuk memulai - Donasi ke Proyek WireGuard - Setiap kontribusi anda sangat membantu - Terima kasih telah mendung Proyek WireGuard!\n\nAkan tetapi, dikarenakan kebijakan Google, Kami tidak diizinkan untuk menautkan bagian halaman website yang dapat digunakan untuk melakukan donasi. Semoga anda dapat menemukan solusi untuk kendala ini!\n\nTerima kasih sekali lagi atas kontribusi anda. + + Nonaktifkan ekspor konfigurasi Menonaktifkan ekspor konfigurasi akan membuat kunci pribadi sulit diakses Server DNS diff --git a/ui/src/main/res/values-it/strings.xml b/ui/src/main/res/values-it/strings.xml index 8fba2592..b4a17f05 100644 --- a/ui/src/main/res/values-it/strings.xml +++ b/ui/src/main/res/values-it/strings.xml @@ -107,9 +107,8 @@ Seleziona un\'unità di archiviazione Installa un\'utilità di gestione file per sfogliare i file Aggiungi un tunnel per iniziare - ♥ Dona al progetto WireGuard - Ogni contributo aiuta - Grazie per il sostegno al progetto WireGuard!\n\nPurtroppo, a causa delle politiche di Google, non siamo autorizzati a linkare la pagina del progetto dove puoi fare una donazione. Speriamo che la troverai!\n\nGrazie ancora per il tuo contributo. + + Disattiva esportazione config Disabilitare l\'esportazione della configurazione rende le chiavi private meno accessibili Server DNS diff --git a/ui/src/main/res/values-ja/strings.xml b/ui/src/main/res/values-ja/strings.xml index 78c8b5f3..9e355fa4 100644 --- a/ui/src/main/res/values-ja/strings.xml +++ b/ui/src/main/res/values-ja/strings.xml @@ -94,9 +94,8 @@ ストレージを選択 ファイルを参照するにはファイル管理アプリをインストールしてください トンネルを追加して開始する - ♥ WireGuard プロジェクトに寄付する - すべての貢献が役立ちます - WireGuard プロジェクトを支援していただきありがとうございます!\n\n残念ながら、Google のポリシーの影響で寄付のページへのリンクを記載することができません。見つけていただけることを願っています。\n\nもう一度、あなたの貢献に深く感謝します。 + + 設定のエクスポートを無効にする 設定のエクスポートを無効にすると、秘密鍵にアクセスされにくくなります DNS サーバ diff --git a/ui/src/main/res/values-ko-rKR/strings.xml b/ui/src/main/res/values-ko-rKR/strings.xml index 8120d436..1a9aae80 100644 --- a/ui/src/main/res/values-ko-rKR/strings.xml +++ b/ui/src/main/res/values-ko-rKR/strings.xml @@ -94,9 +94,8 @@ 저장소를 선택 파일을 찾는 데 사용할 파일 관리자를 설치하시오 시작하려면 터널을 추가하시오 - ♥ WireGuard 프로젝트에 기부해주세요 - 모든 기여가 도움이 됩니다 - WireGuard 프로젝트를 지원해 주셔서 감사합니다!\n\n안타깝게도 Google 정책으로 인해 프로젝트 웹페이지에서 기부할 수 있는 부분에 대한 링크가 허용되지 않습니다. 이 문제를 해결할 수 있기를 바랍니다!\n\n기여해 주셔서 다시 한번 감사드립니다. + + 설정 내보내기 기능을 중지 설정 내보내기 기능을 중지하면 개인키 유출을 줄일 수 있음 DNS 서버 diff --git a/ui/src/main/res/values-nl-rNL/strings.xml b/ui/src/main/res/values-nl-rNL/strings.xml index 0aaa7c70..0c824481 100644 --- a/ui/src/main/res/values-nl-rNL/strings.xml +++ b/ui/src/main/res/values-nl-rNL/strings.xml @@ -107,9 +107,8 @@ Selecteer een opslaglocatie Installeer een bestandsbeheer applicatie Voeg een tunnel toe om te beginnen - ♥️ Doneer aan het WireGuard Project - Elke bijdrage helpt - Bedankt voor het steunen van het WireGuard Project!\n\nHelaas, als gevolg van Google beleid, We mogen niet linken naar de webpagina van het project waar u een donatie kunt doen. Hopelijk kunt u deze zelf wel vinden!\n\nNogmaals bedankt voor uw bijdrage. + + Config export uitschakelen Het uitschakelen van configuratie export maakt privésleutels minder toegankelijk DNS-servers diff --git a/ui/src/main/res/values-no-rNO/strings.xml b/ui/src/main/res/values-no-rNO/strings.xml index 244cab55..6ad03320 100644 --- a/ui/src/main/res/values-no-rNO/strings.xml +++ b/ui/src/main/res/values-no-rNO/strings.xml @@ -107,9 +107,8 @@ Velg en lagringsenhet Vennligst installer et filhåndteringsverktøy for å bla i filer Opprett en ny tunnel for å komme i gang - ♥ Donér til WireGuard-prosjektet - Hvert bidrag hjelper - Takk for at du støtter WireGuard-prosjektet!\n\nPå grunn av Googles retningslinjer, kan vi dessverre ikke linke til den delen av prosjektets nettside der du kan donere. Forhåpentligvis klarer du å finne denne selv!\n\nVi takker igjen for ditt bidrag. + + Deaktiver eksport av konfigurasjon Deaktivering av konfigurasjonseksport gjør private nøkler mindre tilgjengelig DNS tjenere diff --git a/ui/src/main/res/values-pa-rIN/strings.xml b/ui/src/main/res/values-pa-rIN/strings.xml index 8ab9d4cd..6aef39c1 100644 --- a/ui/src/main/res/values-pa-rIN/strings.xml +++ b/ui/src/main/res/values-pa-rIN/strings.xml @@ -107,9 +107,8 @@ ਸਟੋਰੇਜ਼ ਡਰਾਈਵ ਚੁਣੋ ਫਾਇਲਾਂ ਬਰਾਊਜ਼ ਕਰਨ ਲਈ ਫਾਇਲ ਪਰਬੰਧਕੀ ਸਹੂਲਤ ਇੰਸਟਾਲ ਕਰੋ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਟਨਲ ਜੋੜੋ - ♥ ਵਾਇਰਗਾਰਡ ਪਰੋਜੈਕਟ ਨੂੰ ਦਾਨ ਦਿਓ - ਹਰ ਯੋਗਦਾਨ ਮਦਦਗਾਰ ਹੈ - ਵਾਇਰਗਾਰਡ (WireGuard) ਪ੍ਰੋਜੈਕਟ ਦੀ ਮਦਦ ਕਰਨ ਲਈ ਤੁਹਾਡਾ ਧੰਨਵਾਦ ਹੈ!\n\nਅਫ਼ਸੋਸ ਹੈ ਕਿ Google ਦੀਆਂ ਨੀਤੀਆਂ ਕਰਕੇ ਪ੍ਰੋਜੈਕਟ ਦੇ ਵੈੱਬ-ਸਫ਼ੇ, ਜਿੱਥੇ ਤੁਸੀਂ ਦਾਨ ਦੇ ਸਕਦੇ ਹੋ, ਸਾਨੂੰ ਇੱਥੇ ਨਹੀਂ ਲਿੰਕ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ। ਆਸ ਕਰਦੇ ਹਾਂ ਕਿ ਤੁਸੀਂ ਇਹ ਲੱਭ ਲਵੋਗੇ!\n\nਤੁਹਾਡੇ ਯੋਗਦਾਨ ਵਾਸਤੇ ਇੱਕ ਵਾਰ ਫੇਰ ਧੰਨਵਾਦ ਹੈ। + + ਸੰਰਚਨਾ ਐਕਸਪੋਰਟ ਕਰਨ ਨੂੰ ਅਸਮਰੱਥ ਕਰੋ ਸੰਰਚਨਾ ਐਕਸਪੋਰਟ ਕਰਨ ਉੱਤੇ ਰੋਕ ਲਾਉਣ ਨਾਲ ਪ੍ਰਾਈਵੇਟ ਕੁੰਜੀਆਂ ਲਈ ਪਹੁੰਚ ਘਟੇਗੀ DNS ਸਰਵਰ diff --git a/ui/src/main/res/values-pl-rPL/strings.xml b/ui/src/main/res/values-pl-rPL/strings.xml index 1a0f0fad..8ae6a172 100644 --- a/ui/src/main/res/values-pl-rPL/strings.xml +++ b/ui/src/main/res/values-pl-rPL/strings.xml @@ -133,9 +133,8 @@ Wybierz dysk pamięci Zainstaluj narzędzie do zarządzania plikami, aby przeglądać pliki Dodaj tunel, aby rozpocząć - ♥ Wpłać na rzecz projektu WireGuard - Każdy wkład pomaga - Dziękujemy za wsparcie projektu WireGuard!\n\nNiestety, ze względu na zasady Google, nie możemy umieszczać linków do części strony projektu, w której możesz przekazać darowiznę. Mamy nadzieję, że uda Ci się to rozgryźć!\n\nJeszcze raz dziękujemy za Twój wkład. + + Wyłącz eksportowanie konfiguracji Wyłączenie eksportowania konfiguracji sprawi, że klucze prywatne będą mniej dostępne Serwery DNS diff --git a/ui/src/main/res/values-pt-rBR/strings.xml b/ui/src/main/res/values-pt-rBR/strings.xml index d3a14455..bcf42d2a 100644 --- a/ui/src/main/res/values-pt-rBR/strings.xml +++ b/ui/src/main/res/values-pt-rBR/strings.xml @@ -107,9 +107,8 @@ Selecione uma unidade de armazenamento Por favor, instale um utilitário de gerenciamento de arquivos para procurar arquivos Adicione um túnel para começar - ♥️ Doar para o projeto WireGuard - Todas as contribuições ajudam - Obrigado por apoiar o Projeto WireGuard!\n\nInfelizmente, devido às políticas do Google, não temos permissão para vincular a parte da página do projeto onde você pode fazer uma doação. Esperamos que você consiga descobrir isso!\n\nObrigado novamente pela sua contribuição. + + Desativar exportação de configuração Desativar a exportação de configuração torna as chaves privadas menos acessíveis Servidores DNS diff --git a/ui/src/main/res/values-ro-rRO/strings.xml b/ui/src/main/res/values-ro-rRO/strings.xml index 16ee62f0..c49a8827 100644 --- a/ui/src/main/res/values-ro-rRO/strings.xml +++ b/ui/src/main/res/values-ro-rRO/strings.xml @@ -120,9 +120,8 @@ Selectează o unitate de stocare Instalează un serviciu de administrare a fișierelor pentru a căuta fișiere Adaugă un tunel pentru a începe - ♥ Donează pentru proiectul WireGuard - Fiecare contribuţie ajută - Vă mulțumim pentru sprijinul acordat Proiectului WireGuard!\n\nDin păcate, din cauza politicilor Google, nu avem voie să punem un link către pagina web a proiectului unde poți face o donație. Sperăm că vă puteți descurca!\n\nMulțumim din nou pentru contribuție. + + Dezactivează exportarea configurației Dezactivarea exportării configurației face mai puțin accesibile cheile private Servere DNS diff --git a/ui/src/main/res/values-ru/strings.xml b/ui/src/main/res/values-ru/strings.xml index 231ca930..3e5a6a83 100644 --- a/ui/src/main/res/values-ru/strings.xml +++ b/ui/src/main/res/values-ru/strings.xml @@ -133,9 +133,8 @@ Выберите накопитель Пожалуйста, установите утилиту управления файлами для их просмотра Добавьте туннель, чтобы начать - ♥ Пожертвовать проекту WireGuard - Каждое пожертвование помогает - Спасибо за поддержку проекта WireGuard!\n\nК сожалению, из-за политики Google, нельзя размещать ссылку на тот раздел сайта проекта, где можно сделать пожертвование. Надеемся, вы сможете разобраться самостоятельно!\n\nЕщё раз спасибо за ваш вклад. + + Отключить экспорт конфигурации Отключение экспорта конфигурации делает приватные ключи менее доступными DNS-серверы diff --git a/ui/src/main/res/values-sl/strings.xml b/ui/src/main/res/values-sl/strings.xml index f2ca4f44..b4a452be 100644 --- a/ui/src/main/res/values-sl/strings.xml +++ b/ui/src/main/res/values-sl/strings.xml @@ -133,9 +133,8 @@ Izberite podatkovni pogon Prosim namesti orodje za upravljanje datotek za njihov ogled Za začetek dodaj tunel - ♥ Doniraj za projekt WireGuard - Vsak prispevek šteje - Hvala, ker podpirate projekt WireGuard!\n\nŽal zaradi Googlove politike ne smemo objaviti povezave na del spletne strani projekta, kjer lahko opravite donacijo. Upamo, da se boste lahko znašli sami!\n\nŠe enkrat hvala za vaš prispevek. + + Onemogoči izvoz nastavitev Onemogočenje nastavitev za izvoz nastavitev naredi zasebne ključe manj dostopne Strežniki DNS diff --git a/ui/src/main/res/values-sv-rSE/strings.xml b/ui/src/main/res/values-sv-rSE/strings.xml index b477e3f0..7dead5d3 100644 --- a/ui/src/main/res/values-sv-rSE/strings.xml +++ b/ui/src/main/res/values-sv-rSE/strings.xml @@ -107,9 +107,8 @@ Välj en lagringsenhet Installera ett filhanteringsverktyg för att bläddra bland filer Lägg till en tunnel för att komma igång - ♥ Donera till WireGuard projektet - Varje bidrag hjälper - Tack för att du stödjer WireGuard projektet!\n\nPå grund av Googles policyer får vi dessvärre inte länka till den del av projektets webbsida där du kan göra en donation. Förhoppningsvis kan du hitta dit ändå!\n\nTack igen för ditt bidrag. + + Inaktivera export av konfiguration Inaktivering av konfigurationsexport gör privata nycklar mindre tillgängliga DNS-servrar diff --git a/ui/src/main/res/values-tr-rTR/strings.xml b/ui/src/main/res/values-tr-rTR/strings.xml index 3ffb7770..df190884 100644 --- a/ui/src/main/res/values-tr-rTR/strings.xml +++ b/ui/src/main/res/values-tr-rTR/strings.xml @@ -107,9 +107,8 @@ Bir depolama sürücüsü seçin Dosyalara göz atmak için lütfen bir dosya yönetim aracı yükleyin Başlamak için bir tünel ekleyin - ♥ WireGuard projesine bağış yap - Tüm bağışlarınız bizim için değerli - WireGuard projesini desteklediğiniz için teşekkür ederiz!\n\nNe yazık ki Google\'ın politikaları nedeniyle web sitemizin bağış yapabileceğiniz bölümüne bağlantı veremiyoruz. Umarız ilgili sayfayı kendiniz bulabilirsiniz.\n\nKatkılarınız için tekrar teşekkür ederiz. + + Yapılandırmayı dışa aktarmayı devre dışı bırak Yapıalandırmayı dışa aktarmayı devre dışı bırakırsanız özel anahtarlara erişmek zorlaşır DNS sunucuları diff --git a/ui/src/main/res/values-uk-rUA/strings.xml b/ui/src/main/res/values-uk-rUA/strings.xml index 089546e8..6efa9feb 100644 --- a/ui/src/main/res/values-uk-rUA/strings.xml +++ b/ui/src/main/res/values-uk-rUA/strings.xml @@ -133,9 +133,8 @@ Виберіть диск зберігання Будь ласка, встановіть провідник для перегляду файлів Додайте тунель, щоб почати - ♥️ Пожертвуйте на проект WireGuard - Кожен внесок допомагає - Дякуємо за підтримку проекту WireGuard!\n\nНа жаль, через політику Google нам заборонено розміщувати посилання на веб-сторінку проекту, де можна зробити пожертву. Сподіваємося на розуміння!\n\nЩе раз дякую за ваш внесок. + + Вимкнути експорт конфігурації Вимкнення експорту налаштувань робить приватні ключі менш доступними DNS-сервери diff --git a/ui/src/main/res/values-vi-rVN/strings.xml b/ui/src/main/res/values-vi-rVN/strings.xml index 79d8d6c3..5c83fa62 100644 --- a/ui/src/main/res/values-vi-rVN/strings.xml +++ b/ui/src/main/res/values-vi-rVN/strings.xml @@ -94,9 +94,8 @@ Chọn bộ lưu trữ Vui lòng cài đặt tệp tiện ích lưu trữ để tìm kiếm các tệp Thêm một tunnel để bắt đầu - ❤️ Đóng góp cho Dự án Wireguard - Mọi đóng góp đều giúp ích - Cảm ơn bạn đã ủng hộ WireGuard!\n\nThật tiếc, dựa trên điều khoản của Google, chúng tôi không thể đưa vào liên kết dẫn đến trang đóng góp ở trang chủ của dự án. Mong rằng bạn có thể tìm cách cho việc này!\n\nXin cảm ơn bạn một lần nữa vì đã đóng góp. + + Vô hiệu hóa xuất cấu hình Vô hiệu hóa xuất cấu hình sẽ giúp giảm khả năng truy cập vào private keys DNS servers diff --git a/ui/src/main/res/values-zh-rCN/strings.xml b/ui/src/main/res/values-zh-rCN/strings.xml index 7757e2fe..a1b72b9f 100644 --- a/ui/src/main/res/values-zh-rCN/strings.xml +++ b/ui/src/main/res/values-zh-rCN/strings.xml @@ -94,9 +94,8 @@ 选择一个存储驱动器 请安装一个文件管理工具以浏览文件 添加第一条网络隧道 - ♥ 为 WireGuard 捐赠 - 无论多寡,聚沙成塔 - 感谢您对 WireGuard 项目的支持!\n\n只可惜,受谷歌的政策所限,我们不能在此展示项目捐赠页面的链接,还望您自行访问捐赠页面!\n\n再次感谢您的贡献。 + + 禁止导出配置 禁止导出配置可降低私钥泄露的风险 DNS 服务器 diff --git a/ui/src/main/res/values-zh-rTW/strings.xml b/ui/src/main/res/values-zh-rTW/strings.xml index 332feded..b6daa120 100644 --- a/ui/src/main/res/values-zh-rTW/strings.xml +++ b/ui/src/main/res/values-zh-rTW/strings.xml @@ -94,9 +94,8 @@ 選擇一個儲存裝置 請安裝一個檔案管理程式以便瀏覽檔案 新增第一個通道 - ♥ 捐贈給 WireGuard 專案 - 任何的貢獻都能幫助我們 - 感謝您支援 Wireguard 計畫!\n\n由於 Google 的政策不允許我們將計畫官網的捐款連結放在應用程式中,希望您能自行造訪我們的官網來進行捐款!\n\n再次感謝您的貢獻。 + + 禁止匯出設定檔 禁止匯出設定檔可以降低私鑰被存取的機會 DNS 伺服器 diff --git a/ui/src/main/res/values/ic_launcher_background.xml b/ui/src/main/res/values/ic_launcher_background.xml index 500aaabb..290ff3d1 100644 --- a/ui/src/main/res/values/ic_launcher_background.xml +++ b/ui/src/main/res/values/ic_launcher_background.xml @@ -3,5 +3,5 @@ ~ SPDX-License-Identifier: Apache-2.0 --> - #871719 + #16233F diff --git a/ui/src/main/res/values/strings.xml b/ui/src/main/res/values/strings.xml index 32e797e6..8f26585c 100644 --- a/ui/src/main/res/values/strings.xml +++ b/ui/src/main/res/values/strings.xml @@ -66,7 +66,7 @@ External apps may toggle tunnels (advanced) Allow remote control apps Allowed IPs - WireGuard + Wire VPN %1$s\'s %2$s %s %1$s in %2$s @@ -93,7 +93,7 @@ Cannot rename configuration file “%s” Cannot save configuration for “%1$s”: %2$s Successfully saved configuration for “%s” - Create WireGuard Tunnel + Create Wire VPN Tunnel Cannot create local binary directory Cannot create file in downloads directory Create from scratch @@ -111,9 +111,6 @@ Select a storage drive Please install a file management utility to browse files Add a tunnel to get started - ♥ Donate to the WireGuard Project - Every contribution helps - Thank you for supporting the WireGuard Project!\n\nUnfortunately, due to Google\'s policies, we\'re not allowed to link to the part of the project webpage where you can make a donation. Hopefully you can figure this out!\n\nThanks again for your contribution. Disable config exporting Disabling config exporting makes private keys less accessible DNS servers @@ -180,8 +177,8 @@ number Cannot parse %1$s “%2$s” Peer - control WireGuard tunnels, enabling and disabling tunnels at will, potentially misdirecting Internet traffic - control WireGuard tunnels + control Wire VPN tunnels, enabling and disabling tunnels at will, potentially misdirecting Internet traffic + control Wire VPN tunnels Persistent keepalive Pre-shared key enabled @@ -203,7 +200,7 @@ Shell failed to start: %d Success. The application will now restart… Toggle All - Error toggling WireGuard tunnel: %s + Error toggling Wire VPN tunnel: %s wg and wg-quick are already installed Unable to install command-line tools (no root?) Install optional tools for scripting @@ -249,7 +246,7 @@ %1$s backend %2$s Checking %s backend version Unknown %s version - WireGuard for Android v%s + Wire VPN for Android v%s VPN service not authorized by user Unable to start Android VPN service Unable to export tunnels: %s diff --git a/ui/src/main/res/xml/preferences.xml b/ui/src/main/res/xml/preferences.xml index a7f9151f..1132dad5 100644 --- a/ui/src/main/res/xml/preferences.xml +++ b/ui/src/main/res/xml/preferences.xml @@ -4,7 +4,7 @@ --> - - - + + - - + + - +