diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml
index 06834dc..b52333d 100644
--- a/.gitea/workflows/release.yml
+++ b/.gitea/workflows/release.yml
@@ -28,14 +28,19 @@ jobs:
node --version
- name: Install Android SDK
+ # $HOME/android-sdk is a persistent runner volume — skip when warm.
run: |
- mkdir -p "$HOME/android-sdk/cmdline-tools"
- curl -sLo /tmp/ct.zip https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip
- unzip -q /tmp/ct.zip -d /tmp
- mv /tmp/cmdline-tools "$HOME/android-sdk/cmdline-tools/latest"
- yes | "$HOME/android-sdk/cmdline-tools/latest/bin/sdkmanager" --sdk_root="$HOME/android-sdk" --licenses >/dev/null 2>&1 || true
- "$HOME/android-sdk/cmdline-tools/latest/bin/sdkmanager" --sdk_root="$HOME/android-sdk" \
- "platform-tools" "platforms;android-36" "build-tools;36.0.0" >/dev/null
+ if [ ! -d "$HOME/android-sdk/platforms/android-36" ]; then
+ mkdir -p "$HOME/android-sdk/cmdline-tools"
+ curl -sLo /tmp/ct.zip https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip
+ unzip -q /tmp/ct.zip -d /tmp
+ mv /tmp/cmdline-tools "$HOME/android-sdk/cmdline-tools/latest"
+ yes | "$HOME/android-sdk/cmdline-tools/latest/bin/sdkmanager" --sdk_root="$HOME/android-sdk" --licenses >/dev/null 2>&1 || true
+ "$HOME/android-sdk/cmdline-tools/latest/bin/sdkmanager" --sdk_root="$HOME/android-sdk" \
+ "platform-tools" "platforms;android-36" "build-tools;36.0.0" >/dev/null
+ else
+ echo "SDK cache warm — skipping install"
+ fi
- name: Install app dependencies
run: cd app && npm ci --no-audit --no-fund
diff --git a/app/android/app/src/main/res/drawable/ic_launcher_background.xml b/app/android/app/src/main/res/drawable/ic_launcher_background.xml
index 883b2a0..35c52df 100644
--- a/app/android/app/src/main/res/drawable/ic_launcher_background.xml
+++ b/app/android/app/src/main/res/drawable/ic_launcher_background.xml
@@ -1,6 +1,18 @@
-
-
- -
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
diff --git a/app/android/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/android/app/src/main/res/drawable/ic_launcher_foreground.xml
new file mode 100644
index 0000000..8ea7c54
--- /dev/null
+++ b/app/android/app/src/main/res/drawable/ic_launcher_foreground.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/android/app/src/main/res/drawable/ic_launcher_monochrome.xml b/app/android/app/src/main/res/drawable/ic_launcher_monochrome.xml
new file mode 100644
index 0000000..f44ad24
--- /dev/null
+++ b/app/android/app/src/main/res/drawable/ic_launcher_monochrome.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
diff --git a/app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
index 9764d2a..80faec8 100644
--- a/app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
+++ b/app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -1,6 +1,6 @@
-
-
-
-
\ No newline at end of file
+
+
+
+
diff --git a/app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
index 9764d2a..80faec8 100644
--- a/app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
+++ b/app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -1,6 +1,6 @@
-
-
-
-
\ No newline at end of file
+
+
+
+
diff --git a/app/android/gradle.properties b/app/android/gradle.properties
index a16c21f..dbe4c11 100644
--- a/app/android/gradle.properties
+++ b/app/android/gradle.properties
@@ -10,7 +10,7 @@
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m
-org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m
+org.gradle.jvmargs=-Xmx8192m -XX:MaxMetaspaceSize=1024m
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
@@ -28,7 +28,9 @@ android.enablePngCrunchInReleaseBuilds=true
# Use this property to specify which architecture you want to build.
# You can also override it from the CLI using
# ./gradlew -PreactNativeArchitectures=x86_64
-reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
+# arm64 only: Pixel is arm64-v8a; x86/v7a builds are wasted time + APK bloat.
+# Add back x86_64 temporarily if an emulator build is ever needed.
+reactNativeArchitectures=arm64-v8a
# Use this property to enable support to the new architecture.
# This will allow you to use TurboModules and the Fabric render in