guia y android: el proyecto Gradle vuelve a como estaba; el icono en android/icono

La guia dice que el resto de android/ queda sin tocar. El icono adaptativo pasa a
android/icono/, de donde lo copia sobre_oficial.sh. En la guia, mobile_settings.js,
android/icono y por que la APK lleva una huella del codigo en el versionName.
This commit is contained in:
hacklab 2026-10-20 12:38:43 +02:00
parent e861b05946
commit 30ef2bd270
18 changed files with 51 additions and 12 deletions

View file

@ -90,6 +90,10 @@ Aquí se puede hacer lo que haga falta.
- `src/client/assets/themes/Acampada.css` y `styles/hive_acampada.css`: el skin
Acampada.
- `src/views/mobile_ui.js`: lo que se enchufa en vistas del dev.
- `src/views/mobile_settings.js`: los seis accesos de arriba de Ajustes (identidad,
perfil, portada, colores, comunidad y saludo) y los colores. Los colores se guardan
en la config (`mobileColors`) y salen en `/mobile-colors.css`, la última hoja; son
las variables `--a26-*` de Acampada, así que solo valen con ese skin.
- `src/views/mobile_modules_view.js`, `identities_view.js`: pantallas propias.
- `src/views/hive_views.js`: lanzador y barras de arriba y abajo.
- `src/views/mobile_icons.js`: los iconos.
@ -101,6 +105,9 @@ Aquí se puede hacer lo que haga falta.
- `src/client/assets/images/ux-*.svg`: nuestras imágenes.
- `android/scripts/sobre_oficial.sh`: monta la APK sobre la oficial del dev. El resto
de `android/` (el proyecto Gradle propio) queda como estaba, sin uso.
- `android/icono/`: el icono adaptativo (la isla del logo de Oasis sobre su fondo).
`sobre_oficial.sh` lo copia encima del de la APK oficial, que solo trae un PNG
cuadrado y el lanzador lo encoge dentro de un círculo blanco.
## Cómo hacer cada cosa
@ -198,8 +205,21 @@ Cosas que pasan:
- Al arrancar desaparecen `src/configs/banking-eco-history.json` y
`fediverse-accounts.json`. Antes del commit, `git checkout -- src/configs/`.
En el emulador (`Pixel_9_API_36` de Android Studio), la APK de depuración deja
inspeccionar la WebView desde `chrome://inspect`.
En el emulador, la APK de depuración deja inspeccionar la WebView desde
`chrome://inspect`. El `Pixel_9_API_36` de Android Studio está casi lleno; para
instalar la APK va mejor `Oasis_Pruebas` (12 GB, puerto 5556).
## La APK y la extracción del backend
La app del dev lleva nuestro código dentro de `assets/nodejs-project.zip` y al abrirse
lo descomprime en su carpeta de datos. Solo lo vuelve a descomprimir si cambia
`versionName.versionCode` (lo guarda en `nodejs-project/.version`). Si no cambia,
arranca con el código de la vez anterior aunque la APK sea nueva, y parece que se han
perdido los cambios (el CSS, por ejemplo). Por eso `sobre_oficial.sh` pone en el
`versionName` una huella del código (`1.3.3-hacklab.<huella>`): cada APK distinta se
descomprime de nuevo. La config de cada cual (`src/configs`) se guarda aparte y se
conserva.
## Lo que todavía está mal

View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Hexagono, el mismo motivo que la rejilla de navegacion de la interfaz -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp" android:height="108dp"
android:viewportWidth="108" android:viewportHeight="108">
<path
android:pathData="M54,28 L74,40 L74,64 L54,76 L34,64 L34,40 Z"
android:strokeColor="#FFB400" android:strokeWidth="5" android:fillColor="#00000000"/>
<path
android:pathData="M54,44 L63,49 L63,59 L54,64 L45,59 L45,49 Z"
android:fillColor="#FFB400"/>
</vector>

View file

@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- el logo de Oasis (la isla), el mismo que la app oficial; el fondo llena la forma
que ponga el lanzador (circulo, gota...) en vez de dejar un cuadrado dentro -->
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>

View file

@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- el logo de Oasis (la isla), el mismo que la app oficial; el fondo llena la forma
que ponga el lanzador (circulo, gota...) en vez de dejar un cuadrado dentro -->
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="ic_launcher_background">#121212</color>
</resources>

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- el logo de Oasis (la isla), el mismo que la app oficial; el fondo llena la forma
que ponga el lanzador (circulo, gota...) en vez de dejar un cuadrado dentro -->
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>

View file

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 81 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 134 KiB

Before After
Before After

View file

@ -97,9 +97,9 @@ grep -rl "\"$PKG_DEV\.[A-Z_]*\"" "$DEC"/smali* | xargs -r sed -i -E "s|\"$PKG_DE
# icono: el logo de la oficial, pero adaptativo. La oficial solo trae el PNG cuadrado
# y en Android 8+ el lanzador lo encoge dentro de un circulo blanco; con la capa de
# fondo y la de delante (app/src/main/res) la isla llena la forma del lanzador
# fondo y la de delante (android/icono) la isla llena la forma del lanzador
say "icono adaptativo"
RES="$HERE/app/src/main/res"
RES="$HERE/icono"
mkdir -p "$DEC/res/mipmap-anydpi-v26" "$DEC/res/drawable"
cp "$RES/mipmap-anydpi-v26/ic_launcher.xml" "$DEC/res/mipmap-anydpi-v26/"
cp "$RES/drawable/ic_launcher_background.xml" "$DEC/res/drawable/"