diff --git a/.github/workflows/nc-android-apk.yml b/.github/workflows/nc-android-apk.yml
new file mode 100644
index 0000000000..ea12e94f1d
--- /dev/null
+++ b/.github/workflows/nc-android-apk.yml
@@ -0,0 +1,127 @@
+name: NC Android APK Release
+
+on:
+ workflow_dispatch:
+ push:
+ branches:
+ - "release/nc-android-v[0-9].[0-9].[0-9]*"
+
+jobs:
+ build:
+ name: Build APK
+ runs-on: ubuntu-latest
+ env:
+ ANDROID_HOME: ${{ github.workspace }}/android-sdk
+ NDK_VERSION: 25.1.8937393
+ NDK_HOME: ${{ env.ANDROID_HOME }}/ndk/${{ env.NDK_VERSION }}
+ SDK_PLATFORM_VERSION: android-33
+ SDK_BUILDTOOLS_VERSION: 33.0.1
+
+ steps:
+ - name: Install Dependencies (Linux)
+ # https://next--tauri.netlify.app/next/guides/getting-started/prerequisites/linux/#1-system-dependencies
+ run: |
+ sudo apt-get update
+ sudo apt-get -y install \
+ libwebkit2gtk-4.0-dev \
+ build-essential \
+ curl \
+ wget \
+ libssl-dev \
+ libgtk-3-dev \
+ squashfs-tools \
+ libayatana-appindicator3-dev \
+ librsvg2-dev
+
+ - name: Install Java
+ uses: actions/setup-java@v3
+ with:
+ distribution: "temurin"
+ java-version: "17"
+
+ - name: Install Android SDK manager
+ # https://developer.android.com/studio/command-line/sdkmanager
+ run: |
+ curl -sS https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip -o cmdline-tools.zip
+ unzip cmdline-tools.zip
+ mkdir -p $ANDROID_HOME/cmdline-tools/latest
+ mv cmdline-tools/* $ANDROID_HOME/cmdline-tools/latest
+ rm -rf cmdline-tools
+
+ - name: Install Android S/NDK
+ run: |
+ echo y | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses
+ echo y | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager \
+ "platforms;$SDK_PLATFORM_VERSION" \
+ "platform-tools" \
+ "ndk;$NDK_VERSION" \
+ "build-tools;$SDK_BUILDTOOLS_VERSION"
+
+ - name: Install Rust toolchain
+ uses: dtolnay/rust-toolchain@stable
+
+ - name: Install tauri cli
+ run: cargo install tauri-cli --version "^2.0.0-alpha.2"
+
+ - name: Install rust android targets
+ run: |
+ rustup target add aarch64-linux-android \
+ armv7-linux-androideabi \
+ i686-linux-android \
+ x86_64-linux-android
+
+ - name: Setup Nodejs
+ uses: actions/setup-node@v3
+ with:
+ node-version: 18
+
+ - name: Install yarn
+ run: |
+ npm i -g yarn
+ yarn --version
+
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Build frontend code
+ run: |
+ yarn install --frozen-lockfile
+ yarn build
+ yarn workspace @nym/nym-connect-android webpack:prod
+
+ - name: Build APK
+ working-directory: nym-connect-android
+ env:
+ WRY_ANDROID_PACKAGE: net.nymtech.nym_connect_android
+ WRY_ANDROID_LIBRARY: nym_connect_android
+ # TODO build with release profile (--release), it will requires
+ # to sign the APK. For now build with debug profile to avoid that
+ run: cargo tauri android build --debug --apk
+
+ # TODO add the version number to APK name
+ - name: Rename APK artifact
+ run: |
+ mv nym-connect-android/src-tauri/gen/android/nym_connect_android/app/build/outputs/apk/universal/debug/app-universal-debug.apk \
+ nym-connect-debug.apk
+
+ - name: Upload APK artifact
+ uses: actions/upload-artifact@v3
+ with:
+ name: nc-apk-debug
+ path: nym-connect-debug.apk
+
+ publish:
+ name: Publish APK
+ needs: build
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Download binary artifact
+ uses: actions/download-artifact@v3
+ with:
+ name: nc-apk-debug
+ path: apk
+ # TODO add a step to upload the APK somewhere
+ # - name: Publish
+ # uses: ???
diff --git a/nym-connect-android/README.md b/nym-connect-android/README.md
index 73e541083d..a97d3c8ea0 100644
--- a/nym-connect-android/README.md
+++ b/nym-connect-android/README.md
@@ -21,10 +21,11 @@ https://next--tauri.netlify.app/next/guides/getting-started/prerequisites/linux#
## Installation
-Inside the `nym-connect-android` directory, run the following command:
+Inside the `nym-connect-android` directory, run the following commands:
```
yarn install
+yarn prewebpack:dev
```
## Development
@@ -34,7 +35,7 @@ or a real [device](https://developer.android.com/studio/run/device) connected.
Inside the `nym-connect-android/src-tauri` directory, run the following command:
```
-WRY_ANDROID_PACKAGE=net.nymtech.nym_connect_android WRY_ANDROID_LIBRARY=nym_connect_android cargo tauri android dev
+yarn dev
```
#### Debugging
@@ -43,10 +44,11 @@ https://next--tauri.netlify.app/next/guides/debugging/application#mobile
## Production
-To build the application bundles (APK and AAB files), run the build command.
+To build the APK, run the build commands.
```
-WRY_ANDROID_PACKAGE=net.nymtech.nym_connect_android WRY_ANDROID_LIBRARY=nym_connect_android cargo tauri android build
+yarn webpack:prod
+WRY_ANDROID_PACKAGE=net.nymtech.nym_connect_android WRY_ANDROID_LIBRARY=nym_connect_android cargo tauri android build --debug --apk
```
# Storybook
diff --git a/nym-connect-android/package.json b/nym-connect-android/package.json
index 2d9c094109..13e96efdde 100644
--- a/nym-connect-android/package.json
+++ b/nym-connect-android/package.json
@@ -8,9 +8,9 @@
"webpack:dev": "yarn webpack serve --config webpack.dev.js",
"webpack:dev:onlyThis": "yarn webpack serve --config webpack.dev.js",
"webpack:prod": "yarn webpack --progress --config webpack.prod.js",
- "tauri:dev": "RUST_DEBUG=1 yarn tauri dev",
- "tauri:build": "yarn tauri build",
- "dev": "run-p webpack:dev tauri:dev",
+ "tauri:dev": "WRY_ANDROID_PACKAGE=net.nymtech.nym_connect_android WRY_ANDROID_LIBRARY=nym_connect_android cargo tauri android dev",
+ "tauri:build": "WRY_ANDROID_PACKAGE=net.nymtech.nym_connect_android WRY_ANDROID_LIBRARY=nym_connect_android cargo tauri android build",
+ "dev": "run-p webpack:dev:onlyThis tauri:dev",
"prebuild": "yarn --cwd .. build",
"build": "run-s webpack:prod tauri:build",
"storybook": "start-storybook -p 6006",
diff --git a/nym-connect-android/src-tauri/Cargo.toml b/nym-connect-android/src-tauri/Cargo.toml
index e967c9729a..6b9ddc186a 100644
--- a/nym-connect-android/src-tauri/Cargo.toml
+++ b/nym-connect-android/src-tauri/Cargo.toml
@@ -19,9 +19,6 @@ crate-type = ["staticlib", "cdylib", "rlib"]
# tauri-build = { version = "2.0.0-alpha.0", features = [] }
tauri-build = { git = "https://github.com/tauri-apps/tauri", branch = "next", features = [] }
-# tauri-codegen = "2.0.0-alpha.0"
-# tauri-macros = "2.0.0-alpha.0"
-
[dependencies]
anyhow = "1.0"
bip39 = "1.0"
@@ -41,8 +38,7 @@ serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
serde_repr = "0.1"
tap = "1.0.1"
-# TODO swithing to `rfd101` temporarily, untill https://github.com/tauri-apps/tauri/pull/6174 is merged
-tauri = { git = "https://github.com/tauri-apps/tauri", branch = "rfd101", features = ["clipboard-write-text", "native-tls-vendored", "notification-all", "shell-open", "system-tray", "window-close", "window-minimize", "window-start-dragging"] }
+tauri = { git = "https://github.com/tauri-apps/tauri", branch = "next", features = ["clipboard-write-text", "native-tls-vendored", "notification-all", "shell-open", "system-tray", "window-close", "window-minimize", "window-start-dragging"] }
tendermint-rpc = "0.23.0"
thiserror = "1.0"
tokio = { version = "1.24.1", features = ["sync", "time"] }
@@ -70,3 +66,7 @@ custom-protocol = ["tauri/custom-protocol"]
# opt-level = "s"
# lto = true
+[profile.release]
+strip = true
+opt-level = "s"
+lto = true
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/.gitignore b/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/.gitignore
deleted file mode 100644
index eddc6bd989..0000000000
--- a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/src/main/java/net/nymtech/nym-connect-android/generated
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/build.gradle.kts b/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/build.gradle.kts
deleted file mode 100644
index 56d94386ff..0000000000
--- a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/build.gradle.kts
+++ /dev/null
@@ -1,112 +0,0 @@
-plugins {
- id("com.android.application")
- id("org.jetbrains.kotlin.android")
- id("rustPlugin")
-}
-
-android {
- compileSdk = 33
- defaultConfig {
- manifestPlaceholders["usesCleartextTraffic"] = "false"
- applicationId = "net.nymtech.nym_connect_android"
- minSdk = 24
- targetSdk = 33
- versionCode = 1
- versionName = "1.0"
- }
- sourceSets.getByName("main") {
- // Vulkan validation layers
- val ndkHome = System.getenv("NDK_HOME")
- jniLibs.srcDir("${ndkHome}/sources/third_party/vulkan/src/build-android/jniLibs")
- }
- buildTypes {
- getByName("debug") {
- manifestPlaceholders["usesCleartextTraffic"] = "true"
- isDebuggable = true
- isJniDebuggable = true
- isMinifyEnabled = false
- packagingOptions {
- jniLibs.keepDebugSymbols.add("*/arm64-v8a/*.so")
-
- jniLibs.keepDebugSymbols.add("*/armeabi-v7a/*.so")
-
- jniLibs.keepDebugSymbols.add("*/x86/*.so")
-
- jniLibs.keepDebugSymbols.add("*/x86_64/*.so")
- }
- }
- getByName("release") {
- isMinifyEnabled = false
- // proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
- }
- }
- flavorDimensions.add("abi")
- productFlavors {
- create("universal") {
- val abiList = findProperty("abiList") as? String
-
- dimension = "abi"
- ndk {
- abiFilters += abiList?.split(",")?.map { it.trim() } ?: listOf(
- "arm64-v8a", "armeabi-v7a", "x86", "x86_64",
- )
- }
- }
- create("arm64") {
- dimension = "abi"
- ndk {
- abiFilters += listOf("arm64-v8a")
- }
- }
-
- create("arm") {
- dimension = "abi"
- ndk {
- abiFilters += listOf("armeabi-v7a")
- }
- }
-
- create("x86") {
- dimension = "abi"
- ndk {
- abiFilters += listOf("x86")
- }
- }
-
- create("x86_64") {
- dimension = "abi"
- ndk {
- abiFilters += listOf("x86_64")
- }
- }
- }
-
- assetPacks += mutableSetOf()
- namespace = "net.nymtech.nym_connect_android"
-}
-
-rust {
- rootDirRel = "../../../../"
- targets = listOf("aarch64", "armv7", "i686", "x86_64")
- arches = listOf("arm64", "arm", "x86", "x86_64")
-}
-
-dependencies {
- implementation("androidx.webkit:webkit:1.5.0")
- implementation("androidx.appcompat:appcompat:1.5.1")
- implementation("com.google.android.material:material:1.7.0")
- testImplementation("junit:junit:4.13.2")
- androidTestImplementation("androidx.test.ext:junit:1.1.4")
- androidTestImplementation("androidx.test.espresso:espresso-core:3.5.0")
-}
-
-afterEvaluate {
- android.applicationVariants.all {
- tasks["mergeUniversalReleaseJniLibFolders"].dependsOn(tasks["rustBuildRelease"])
- tasks["mergeUniversalDebugJniLibFolders"].dependsOn(tasks["rustBuildDebug"])
- productFlavors.filter { it.name != "universal" }.forEach { _ ->
- val archAndBuildType = name.capitalize()
- tasks["merge${archAndBuildType}JniLibFolders"].dependsOn(tasks["rustBuild${archAndBuildType}"])
- }
- }
-}
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/.editorconfig b/nym-connect-android/src-tauri/gen/android/nym_connect_android/.editorconfig
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/.editorconfig
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/.editorconfig
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/.gitignore b/nym-connect-android/src-tauri/gen/android/nym_connect_android/.gitignore
similarity index 59%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/.gitignore
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/.gitignore
index 1eed4c2fbd..b2ed2681b2 100644
--- a/nym-connect-android/src-tauri/gen/android/nym-connect-android/.gitignore
+++ b/nym-connect-android/src-tauri/gen/android/nym_connect_android/.gitignore
@@ -9,8 +9,6 @@
/.idea/assetWizardSettings.xml
.DS_Store
build
-/buildSrc/src/main/java/net/nymtech/nym-connect-android/kotlin/BuildTask.kt
-/buildSrc/src/main/java/net/nymtech/nym-connect-android/kotlin/RustPlugin.kt
/captures
.externalNativeBuild
.cxx
diff --git a/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/.gitignore b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/.gitignore
new file mode 100644
index 0000000000..cd06a0a15a
--- /dev/null
+++ b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/.gitignore
@@ -0,0 +1 @@
+/src/main/java/net/nymtech/nym_connect_android/generated
diff --git a/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/build.gradle.kts b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/build.gradle.kts
new file mode 100644
index 0000000000..a81c779421
--- /dev/null
+++ b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/build.gradle.kts
@@ -0,0 +1,111 @@
+plugins {
+ id("com.android.application")
+ id("org.jetbrains.kotlin.android")
+ id("rustPlugin")
+}
+
+android {
+ compileSdk = 33
+ defaultConfig {
+ manifestPlaceholders["usesCleartextTraffic"] = "false"
+ applicationId = "net.nymtech.nym_connect_android"
+ minSdk = 24
+ targetSdk = 33
+ versionCode = 1
+ versionName = "1.0"
+ }
+ sourceSets.getByName("main") {
+ // Vulkan validation layers
+ val ndkHome = System.getenv("NDK_HOME")
+ jniLibs.srcDir("${ndkHome}/sources/third_party/vulkan/src/build-android/jniLibs")
+ }
+ buildTypes {
+ getByName("debug") {
+ manifestPlaceholders["usesCleartextTraffic"] = "true"
+ isDebuggable = true
+ isJniDebuggable = true
+ isMinifyEnabled = false
+ packagingOptions {
+ jniLibs.keepDebugSymbols.add("*/arm64-v8a/*.so")
+
+ jniLibs.keepDebugSymbols.add("*/armeabi-v7a/*.so")
+
+ jniLibs.keepDebugSymbols.add("*/x86/*.so")
+
+ jniLibs.keepDebugSymbols.add("*/x86_64/*.so")
+ }
+ }
+ getByName("release") {
+ isMinifyEnabled = false
+ proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
+ }
+ }
+ flavorDimensions.add("abi")
+ productFlavors {
+ create("universal") {
+ val abiList = findProperty("abiList") as? String
+
+ dimension = "abi"
+ ndk {
+ abiFilters += abiList?.split(",")?.map { it.trim() } ?: listOf( "arm64-v8a", "armeabi-v7a", "x86", "x86_64",
+ )
+ }
+ }
+ create("arm64") {
+ dimension = "abi"
+ ndk {
+ abiFilters += listOf("arm64-v8a")
+ }
+ }
+
+ create("arm") {
+ dimension = "abi"
+ ndk {
+ abiFilters += listOf("armeabi-v7a")
+ }
+ }
+
+ create("x86") {
+ dimension = "abi"
+ ndk {
+ abiFilters += listOf("x86")
+ }
+ }
+
+ create("x86_64") {
+ dimension = "abi"
+ ndk {
+ abiFilters += listOf("x86_64")
+ }
+ }
+ }
+
+ assetPacks += mutableSetOf()
+ namespace = "net.nymtech.nym_connect_android"
+}
+
+rust {
+ rootDirRel = "../../../../"
+ targets = listOf("aarch64", "armv7", "i686", "x86_64")
+ arches = listOf("arm64", "arm", "x86", "x86_64")
+}
+
+dependencies {
+ implementation("androidx.webkit:webkit:1.5.0")
+ implementation("androidx.appcompat:appcompat:1.5.1")
+ implementation("com.google.android.material:material:1.7.0")
+ testImplementation("junit:junit:4.13.2")
+ androidTestImplementation("androidx.test.ext:junit:1.1.4")
+ androidTestImplementation("androidx.test.espresso:espresso-core:3.5.0")
+}
+
+afterEvaluate {
+ android.applicationVariants.all {
+ tasks["mergeUniversalReleaseJniLibFolders"].dependsOn(tasks["rustBuildRelease"])
+ tasks["mergeUniversalDebugJniLibFolders"].dependsOn(tasks["rustBuildDebug"])
+ productFlavors.filter{ it.name != "universal" }.forEach { _ ->
+ val archAndBuildType = name.capitalize()
+ tasks["merge${archAndBuildType}JniLibFolders"].dependsOn(tasks["rustBuild${archAndBuildType}"])
+ }
+ }
+}
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/proguard-rules.pro b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/proguard-rules.pro
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/proguard-rules.pro
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/proguard-rules.pro
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/AndroidManifest.xml b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/AndroidManifest.xml
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/AndroidManifest.xml
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/AndroidManifest.xml
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/java/net/nymtech/nym-connect-android/MainActivity.kt b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/java/net/nymtech/nym_connect_android/MainActivity.kt
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/java/net/nymtech/nym-connect-android/MainActivity.kt
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/java/net/nymtech/nym_connect_android/MainActivity.kt
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/jniLibs/arm64-v8a/libnym_connect_android.so b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/jniLibs/arm64-v8a/libnym_connect_android.so
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/jniLibs/arm64-v8a/libnym_connect_android.so
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/jniLibs/arm64-v8a/libnym_connect_android.so
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/jniLibs/armeabi-v7a/libnym_connect_android.so b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/jniLibs/armeabi-v7a/libnym_connect_android.so
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/jniLibs/armeabi-v7a/libnym_connect_android.so
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/jniLibs/armeabi-v7a/libnym_connect_android.so
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/jniLibs/x86/libnym_connect_android.so b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/jniLibs/x86/libnym_connect_android.so
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/jniLibs/x86/libnym_connect_android.so
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/jniLibs/x86/libnym_connect_android.so
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/jniLibs/x86_64/libnym_connect_android.so b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/jniLibs/x86_64/libnym_connect_android.so
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/jniLibs/x86_64/libnym_connect_android.so
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/jniLibs/x86_64/libnym_connect_android.so
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/drawable/ic_launcher_background.xml b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/drawable/ic_launcher_background.xml
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/drawable/ic_launcher_background.xml
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/drawable/ic_launcher_background.xml
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/layout/activity_main.xml b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/layout/activity_main.xml
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/layout/activity_main.xml
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/layout/activity_main.xml
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-hdpi/ic_launcher.png
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-hdpi/ic_launcher.png
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-hdpi/ic_launcher.png
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-mdpi/ic_launcher.png
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-mdpi/ic_launcher.png
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-mdpi/ic_launcher.png
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/values-night/themes.xml b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/values-night/themes.xml
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/values-night/themes.xml
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/values-night/themes.xml
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/values/colors.xml b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/values/colors.xml
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/values/colors.xml
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/values/colors.xml
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/values/strings.xml b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/values/strings.xml
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/values/strings.xml
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/values/strings.xml
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/values/themes.xml b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/values/themes.xml
similarity index 98%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/values/themes.xml
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/values/themes.xml
index 1de86a4c9a..7178979168 100644
--- a/nym-connect-android/src-tauri/gen/android/nym-connect-android/app/src/main/res/values/themes.xml
+++ b/nym-connect-android/src-tauri/gen/android/nym_connect_android/app/src/main/res/values/themes.xml
@@ -13,4 +13,4 @@
- ?attr/colorPrimaryVariant
-
+
\ No newline at end of file
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/build.gradle.kts b/nym-connect-android/src-tauri/gen/android/nym_connect_android/build.gradle.kts
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/build.gradle.kts
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/build.gradle.kts
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/buildSrc/build.gradle.kts b/nym-connect-android/src-tauri/gen/android/nym_connect_android/buildSrc/build.gradle.kts
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/buildSrc/build.gradle.kts
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/buildSrc/build.gradle.kts
diff --git a/nym-connect-android/src-tauri/gen/android/nym_connect_android/buildSrc/src/main/java/net/nymtech/nym_connect_android/kotlin/BuildTask.kt b/nym-connect-android/src-tauri/gen/android/nym_connect_android/buildSrc/src/main/java/net/nymtech/nym_connect_android/kotlin/BuildTask.kt
new file mode 100644
index 0000000000..63289a3731
--- /dev/null
+++ b/nym-connect-android/src-tauri/gen/android/nym_connect_android/buildSrc/src/main/java/net/nymtech/nym_connect_android/kotlin/BuildTask.kt
@@ -0,0 +1,45 @@
+package net.nymtech
+
+import java.io.File
+import org.gradle.api.DefaultTask
+import org.gradle.api.GradleException
+import org.gradle.api.logging.LogLevel
+import org.gradle.api.tasks.Input
+import org.gradle.api.tasks.InputDirectory
+import org.gradle.api.tasks.PathSensitive
+import org.gradle.api.tasks.PathSensitivity
+import org.gradle.api.tasks.TaskAction
+
+open class BuildTask : DefaultTask() {
+ @InputDirectory
+ @PathSensitive(PathSensitivity.RELATIVE)
+ var rootDirRel: File? = null
+ @Input
+ var target: String? = null
+ @Input
+ var release: Boolean? = null
+
+ @TaskAction
+ fun build() {
+ val rootDirRel = rootDirRel ?: throw GradleException("rootDirRel cannot be null")
+ val target = target ?: throw GradleException("target cannot be null")
+ val release = release ?: throw GradleException("release cannot be null")
+ val home = (System.getenv("HOME") ?: "")
+ val cargo_home = (System.getenv("CARGO_HOME") ?: "$home/.cargo")
+ println("gradle Rust plugin: CARGO_HOME $cargo_home")
+ project.exec {
+ workingDir(File(project.projectDir, rootDirRel.path))
+ executable("""$cargo_home/bin/cargo-tauri""")
+ args(listOf("tauri", "android", "android-studio-script"))
+ if (project.logger.isEnabled(LogLevel.DEBUG)) {
+ args("-vv")
+ } else if (project.logger.isEnabled(LogLevel.INFO)) {
+ args("-v")
+ }
+ if (release) {
+ args("--release")
+ }
+ args(listOf("--target", target))
+ }.assertNormalExitValue()
+ }
+}
\ No newline at end of file
diff --git a/nym-connect-android/src-tauri/gen/android/nym_connect_android/buildSrc/src/main/java/net/nymtech/nym_connect_android/kotlin/RustPlugin.kt b/nym-connect-android/src-tauri/gen/android/nym_connect_android/buildSrc/src/main/java/net/nymtech/nym_connect_android/kotlin/RustPlugin.kt
new file mode 100644
index 0000000000..5e8dcdb3ac
--- /dev/null
+++ b/nym-connect-android/src-tauri/gen/android/nym_connect_android/buildSrc/src/main/java/net/nymtech/nym_connect_android/kotlin/RustPlugin.kt
@@ -0,0 +1,59 @@
+package net.nymtech
+
+import org.gradle.api.DefaultTask
+import org.gradle.api.GradleException
+import org.gradle.api.Plugin
+import org.gradle.api.Project
+import java.io.File
+import java.util.*
+
+const val TASK_GROUP = "rust"
+
+open class Config {
+ var rootDirRel: String? = null
+ var targets: List? = null
+ var arches: List? = null
+}
+
+open class RustPlugin : Plugin {
+ private lateinit var config: Config
+
+ override fun apply(project: Project) {
+ config = project.extensions.create("rust", Config::class.java)
+ project.afterEvaluate {
+ if (config.targets == null) {
+ throw GradleException("targets cannot be null")
+ }
+ if (config.arches == null) {
+ throw GradleException("arches cannot be null")
+ }
+ for (profile in listOf("debug", "release")) {
+ val profileCapitalized = profile.capitalize(Locale.ROOT)
+ val buildTask = project.tasks.maybeCreate(
+ "rustBuild$profileCapitalized",
+ DefaultTask::class.java
+ ).apply {
+ group = TASK_GROUP
+ description = "Build dynamic library in $profile mode for all targets"
+ }
+ for (targetPair in config.targets!!.withIndex()) {
+ val targetName = targetPair.value
+ val targetArch = config.arches!![targetPair.index]
+ val targetArchCapitalized = targetArch.capitalize(Locale.ROOT)
+ val targetBuildTask = project.tasks.maybeCreate(
+ "rustBuild$targetArchCapitalized$profileCapitalized",
+ BuildTask::class.java
+ ).apply {
+ group = TASK_GROUP
+ description = "Build dynamic library in $profile mode for $targetArch"
+ rootDirRel = config.rootDirRel?.let { File(it) }
+ target = targetName
+ release = profile == "release"
+ }
+ buildTask.dependsOn(targetBuildTask)
+ project.tasks.findByName("preBuild")?.mustRunAfter(targetBuildTask)
+ }
+ }
+ }
+ }
+}
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/gradle.properties b/nym-connect-android/src-tauri/gen/android/nym_connect_android/gradle.properties
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/gradle.properties
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/gradle.properties
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/gradle/wrapper/gradle-wrapper.jar b/nym-connect-android/src-tauri/gen/android/nym_connect_android/gradle/wrapper/gradle-wrapper.jar
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/gradle/wrapper/gradle-wrapper.jar
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/gradle/wrapper/gradle-wrapper.jar
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/gradle/wrapper/gradle-wrapper.properties b/nym-connect-android/src-tauri/gen/android/nym_connect_android/gradle/wrapper/gradle-wrapper.properties
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/gradle/wrapper/gradle-wrapper.properties
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/gradle/wrapper/gradle-wrapper.properties
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/gradlew b/nym-connect-android/src-tauri/gen/android/nym_connect_android/gradlew
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/gradlew
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/gradlew
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/gradlew.bat b/nym-connect-android/src-tauri/gen/android/nym_connect_android/gradlew.bat
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/gradlew.bat
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/gradlew.bat
diff --git a/nym-connect-android/src-tauri/gen/android/nym-connect-android/settings.gradle b/nym-connect-android/src-tauri/gen/android/nym_connect_android/settings.gradle
similarity index 100%
rename from nym-connect-android/src-tauri/gen/android/nym-connect-android/settings.gradle
rename to nym-connect-android/src-tauri/gen/android/nym_connect_android/settings.gradle
diff --git a/nym-connect-android/src-tauri/tauri.conf.json b/nym-connect-android/src-tauri/tauri.conf.json
index 0572848f3b..2e50e25325 100644
--- a/nym-connect-android/src-tauri/tauri.conf.json
+++ b/nym-connect-android/src-tauri/tauri.conf.json
@@ -6,8 +6,8 @@
"build": {
"distDir": "../dist",
"devPath": "http://localhost:9000",
- "beforeDevCommand": "yarn webpack:dev:onlyThis",
- "beforeBuildCommand": "yarn webpack:prod"
+ "beforeDevCommand": "",
+ "beforeBuildCommand": ""
},
"tauri": {
"bundle": {