wiki: contar lo que esta rama hace distinto, no Oasis otra vez
La portada abria con avisos y parrafos; ahora abre con una tira de las cuatro novedades y una tabla de que hay aqui que no este en el oficial, fila por fila. Y dice de entrada que lo generico —que es SSB, los pubs, para que sirve cada modulo— esta en la wiki de epsylon y no se va a repetir peor. Chats pasa a llamarse por lo que aporta, "Responder citando": era una pagina explicando los chats de Oasis con un apartado propio al final. Ahora es al reves, y se queda la parte interesante, que es como se hizo sin JavaScript en el cliente. Modulos se retira: explicaba una pantalla que es del oficial. Lo unico propio —que Karvan sale ahi, y como se declara siguiendo su forma— se lleva a Karvan. Fuera tres capturas que ilustraban funciones que no son de esta rama.
parent
82a14e2ea6
commit
b06fdfb042
10 changed files with 124 additions and 207 deletions
106
Chats.md
106
Chats.md
|
|
@ -1,97 +1,71 @@
|
||||||
# Chats
|
# Responder citando
|
||||||
|
|
||||||
> ⚠ Rama experimental, no oficial. El Oasis oficial es
|
> Lo único que esta rama cambia en los chats. Cómo funcionan los chats de Oasis está
|
||||||
> https://github.com/epsylon/oasis · [Volver a la portada](Home)
|
> en [su wiki](https://wiki.solarnethub.com/socialnet/overview) ·
|
||||||
|
> [Volver a la portada](Home)
|
||||||
|
|
||||||
Los chats de Oasis son **salas cifradas que sí se guardan**: cada mensaje se publica
|
En el Oasis oficial, dentro de un chat se escribe y ya. Si diez mensajes después
|
||||||
firmado en tu registro SSB y se replica a quien te siga. Son lo contrario de
|
alguien contesta a algo de arriba, no hay forma de saber a qué.
|
||||||
[Karvan](Karvan), que no guarda nada.
|
|
||||||
|
|
||||||
Esta rama no cambia cómo funcionan. Le añade una cosa: **responder citando** un
|
Esta rama añade **una flecha en cada burbuja**.
|
||||||
mensaje anterior.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 1. La lista
|
|
||||||
|
|
||||||
<img src="img/16-chats-lista.png" width="300" align="right">
|
|
||||||
|
|
||||||
Está en la categoría **Community**, junto a Karvan.
|
|
||||||
|
|
||||||
Los seis botones de arriba son filtros: **ALL**, **MINE**, **RECENT**, **FAVORITES**,
|
|
||||||
**OPEN** y **CLOSED**. El activo se queda en amarillo claro.
|
|
||||||
|
|
||||||
Debajo, **Create Chat** y un buscador por texto.
|
|
||||||
|
|
||||||
<br clear="all">
|
|
||||||
|
|
||||||
## 2. Cada chat es una tarjeta
|
|
||||||
|
|
||||||
<img src="img/17-chat-tarjeta.png" width="300" align="right">
|
|
||||||
|
|
||||||
Con su imagen, su título, su descripción y tres etiquetas de estado:
|
|
||||||
|
|
||||||
- **✓ OPEN** — admite gente nueva. El otro estado es CLOSED.
|
|
||||||
- **🔒 E2E** — los mensajes van cifrados de extremo a extremo.
|
|
||||||
- **<2w** — actividad reciente; sirve para ver de un vistazo qué chats están vivos.
|
|
||||||
|
|
||||||
Y **Participants**, cuánta gente hay dentro.
|
|
||||||
|
|
||||||
Arriba de la tarjeta están los botones de siempre de Oasis: propagar, favorito,
|
|
||||||
reportar, seguir.
|
|
||||||
|
|
||||||
<br clear="all">
|
|
||||||
|
|
||||||
## 3. Dentro del chat
|
|
||||||
|
|
||||||
<img src="img/18-chat-mensajes.png" width="300" align="right">
|
<img src="img/18-chat-mensajes.png" width="300" align="right">
|
||||||
|
|
||||||
Los mensajes en burbujas, con la fecha separando los días y la hora en cada uno.
|
Al tocar la **↩** de un mensaje, el formulario de abajo se prepara para responderle:
|
||||||
|
sale una cita con el autor y el principio del texto, y una **✕** para cancelar.
|
||||||
|
|
||||||
**La flecha ↩ de cada burbuja es lo que añade esta rama.** Al tocarla, el formulario
|
Al enviar, la respuesta lleva la cita dentro —la barra amarilla de la última burbuja de
|
||||||
de abajo se prepara para responder a ese mensaje: aparece una cita con el autor y el
|
la captura—, así que se ve a qué contesta sin buscarlo.
|
||||||
principio del texto, y una **✕** para cancelar.
|
|
||||||
|
|
||||||
Al enviar, la respuesta sale con la cita dentro —la barra amarilla de la última
|
Y ya está. No hay hilos, ni notificaciones, ni nada más: solo saber a qué se responde.
|
||||||
burbuja de la captura—, así que se ve a qué contesta sin tener que buscarlo.
|
|
||||||
|
|
||||||
<br clear="all">
|
<br clear="all">
|
||||||
|
|
||||||
### Cómo está hecho
|
## Cómo está hecho, que es la parte interesante
|
||||||
|
|
||||||
Sin JavaScript, como el resto de Oasis. El botón ↩ es un enlace a
|
**Sin una línea de JavaScript en el cliente.** Oasis funciona sin JS a propósito y esto
|
||||||
`?replyTo=<id>#chat-compose`; el backend lee ese parámetro, la vista pinta la cita y
|
no iba a ser la excepción:
|
||||||
mete un campo oculto en el formulario; al enviar, el identificador viaja con el
|
|
||||||
mensaje y se guarda en él.
|
|
||||||
|
|
||||||
Al pintar el hilo, la vista arma un índice de mensajes por identificador y resuelve
|
1. La **↩** es un enlace normal a `?replyTo=<id>#chat-compose`.
|
||||||
cada cita contra él. Si el mensaje citado ya no está —se borró, o es más viejo que lo
|
2. El backend lee ese parámetro y se lo pasa a la vista.
|
||||||
que se carga—, la burbuja simplemente sale sin cita.
|
3. La vista pinta la cita sobre el formulario y mete un campo oculto `replyTo`.
|
||||||
|
4. Al enviar, el identificador viaja con el mensaje y **se guarda dentro de él**.
|
||||||
|
5. Al pintar el hilo, la vista arma un índice de mensajes por identificador y resuelve
|
||||||
|
cada cita contra él.
|
||||||
|
|
||||||
## 4. Adjuntar una imagen
|
Si el mensaje citado ya no está —se borró, o es más viejo que lo que se carga—, la
|
||||||
|
burbuja sale sin cita en vez de romperse.
|
||||||
|
|
||||||
|
> Este arreglo salió de probarlo, no de leer el código: el identificador **se guardaba
|
||||||
|
> pero no se pintaba**, porque el modelo no lo copiaba al construir el mensaje. La cita
|
||||||
|
> aparecía al escribir y desaparecía al enviar.
|
||||||
|
|
||||||
|
## Adjuntar imágenes
|
||||||
|
|
||||||
<img src="img/19-selector-ficheros.png" width="300" align="right">
|
<img src="img/19-selector-ficheros.png" width="300" align="right">
|
||||||
|
|
||||||
**Upload media (max-size: 50MB)** abre el selector de fotos de Android.
|
Funciona, y en la APK oficial no: su envoltorio no implementa el método que abre el
|
||||||
|
selector de ficheros del sistema, así que el botón no hace nada. El de esta rama sí.
|
||||||
|
Ver [Compilar la APK](Compilar).
|
||||||
|
|
||||||
Que esto funcione depende de otro método del envoltorio,
|
Las fotos suben **sin sus metadatos**: la ubicación GPS, la marca del móvil y el número
|
||||||
`WebChromeClient.onShowFileChooser`. Sin él, tocar el botón no abre nada: es lo que le
|
de serie se quitan antes de guardarlas.
|
||||||
pasaba a una versión anterior del envoltorio de esta rama, y está arreglado.
|
|
||||||
|
|
||||||
> Las fotos se suben **sin sus metadatos**: la ubicación GPS, la marca del móvil y el
|
|
||||||
> número de serie se quitan antes de guardarlas. Solo se conserva la orientación.
|
|
||||||
|
|
||||||
<br clear="all">
|
<br clear="all">
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Cuándo usar cada cosa
|
## Chats o Karvan
|
||||||
|
|
||||||
| | [Chats](Chats) | [Karvan](Karvan) |
|
Son dos cosas distintas y conviene no confundirlas:
|
||||||
|
|
||||||
|
| | Chats | [Karvan](Karvan) |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| Dónde viven los mensajes | En tu registro SSB, en disco | Solo en memoria |
|
| Dónde viven los mensajes | En tu registro SSB, en disco | Solo en memoria |
|
||||||
| Cuánto duran | Para siempre | Hasta que vence la sala |
|
| Cuánto duran | Para siempre | Hasta que vence la sala |
|
||||||
| Se replican a la red | Sí | No |
|
| Se replican a la red | Sí | No |
|
||||||
| Quién puede entrar | Miembros del chat | Quien tenga el enlace |
|
| Quién entra | Miembros del chat | Quien tenga el enlace |
|
||||||
| Llamadas | No | Sí |
|
| Llamadas | No | Sí |
|
||||||
| Sirve para | Lo que quieres conservar | Lo que no |
|
| Para qué | Lo que quieres conservar | Lo que no |
|
||||||
|
|
|
||||||
139
Home.md
139
Home.md
|
|
@ -1,104 +1,77 @@
|
||||||
# Oasis Mobile — rama de desarrollo experimental
|
# Oasis Mobile — qué añade esta rama
|
||||||
|
|
||||||
> # ⚠ ESTO NO ES OASIS OFICIAL
|
> **⚠ No es Oasis oficial.** Es una rama experimental del hacklab sobre
|
||||||
>
|
> [el Oasis de epsylon](https://github.com/epsylon/oasis), sin afiliación con él.
|
||||||
> Esta wiki documenta una **rama de desarrollo experimental** mantenida por el
|
> Si quieres usar Oasis de verdad, **instala el oficial**. Los fallos de aquí se
|
||||||
> hacklab, **sin afiliación** con el proyecto original.
|
> reportan aquí, nunca a epsylon. Base: **0.9.5**. Rama: `PRUEBAS`.
|
||||||
>
|
|
||||||
> ## El Oasis oficial es el de epsylon: https://github.com/epsylon/oasis
|
|
||||||
>
|
|
||||||
> Si quieres **usar Oasis de verdad, instala el oficial**. Lo que se documenta aquí
|
|
||||||
> puede romperse, cambiar de forma incompatible o desaparecer sin aviso. No está
|
|
||||||
> auditado y no tiene garantía de ninguna clase.
|
|
||||||
>
|
|
||||||
> **Los fallos de esta rama se reportan aquí, nunca a epsylon.**
|
|
||||||
|
|
||||||
Versión base: **Oasis 0.9.5**. Rama: `PRUEBAS`.
|

|
||||||
|
|
||||||
|
**Esta wiki solo cuenta lo que esta rama hace distinto.** Lo demás —qué es SSB, cómo
|
||||||
|
funcionan los pubs, para qué sirve cada módulo de Oasis— está en la
|
||||||
|
[wiki del proyecto oficial](https://wiki.solarnethub.com/socialnet/overview), y no
|
||||||
|
tiene sentido repetirlo peor.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Qué es esto
|
## Lo que no existe en el Oasis oficial
|
||||||
|
|
||||||
Una rama que sigue de cerca las versiones de epsylon y añade dos cosas: una interfaz
|
| | Oficial | Esta rama |
|
||||||
pensada para el móvil y un módulo de **salas efímeras con llamadas**.
|
|---|---|---|
|
||||||
|
| **[Salas efímeras](Karvan)** | — | Karvan: mensajes que solo viven en memoria y se autodestruyen |
|
||||||
|
| **[Videollamadas](Llamadas)** | — | Audio y vídeo por WebRTC, sin servidores de terceros |
|
||||||
|
| **[Interfaz de móvil](Interfaz)** | El menú de escritorio en una pantalla pequeña | Panal de hexágonos, filtros y barra de accesos rápidos |
|
||||||
|
| **[Varias identidades](Identidades)** | Una por instalación | Varias en el mismo móvil, con aviso si dos comparten clave |
|
||||||
|
| **[Respuesta citada](Chats)** | — | Responder a un mensaje concreto dentro de un chat |
|
||||||
|
| **[Envoltorio Android propio](Compilar)** | APK sin permisos de cámara ni micrófono | Proyecto Gradle: permisos, subida de ficheros y servicio que sobrevive |
|
||||||
|
| **Metadatos de las fotos** | Se quitan solo si está `sharp`; en Android **nunca** | Se quitan siempre: GPS, marca, modelo, número de serie |
|
||||||
|
| **Servidor STUN** | Uno de Google, por defecto | Ninguno. TURN propio si lo configuras |
|
||||||
|
|
||||||
Todas las capturas de esta wiki están tomadas de la APK de la rama funcionando en un
|
## Y lo que cambia de lo que ya había
|
||||||
Pixel 9 (Android 16). No hay ningún montaje: es lo que se ve al usarla.
|
|
||||||
|
|
||||||
| Página | De qué va |
|
- **Los nombres de las categorías son los suyos** (Community, Library, Multiverse). La
|
||||||
|
rama llegó a cambiarlos y se revirtió: separarse de upstream en algo tan visible no
|
||||||
|
compensa.
|
||||||
|
- **Traducido a los 11 idiomas** de Oasis, también todo lo nuevo.
|
||||||
|
- Cuatro fallos de la propia rama, encontrados probando y arreglados: están en
|
||||||
|
[Si algo va mal](Problemas).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Por dónde empezar
|
||||||
|
|
||||||
|
| Página | Qué cuenta |
|
||||||
|---|---|
|
|---|---|
|
||||||
| **[La interfaz](Interfaz)** | Hexágonos, filtros, barra de accesos rápidos, botón por botón |
|
| **[Karvan](Karvan)** | Salas efímeras: crear, invitar, cuánto viven, qué protege y qué no |
|
||||||
| **[Karvan](Karvan)** | Salas que viven solo en memoria y se autodestruyen |
|
| **[Llamadas](Llamadas)** | Cómo se llama, por qué la APK oficial no puede, y el TURN |
|
||||||
| **[Llamadas](Llamadas)** | Audio y vídeo sobre WebRTC, y por qué la APK oficial no puede hacerlo |
|
| **[La interfaz](Interfaz)** | El panal, los filtros y la barra, botón por botón |
|
||||||
| **[Chats](Chats)** | Los chats cifrados de Oasis, con respuesta citada |
|
| **[Identidades](Identidades)** | Varias cuentas, y el aviso que evita perder una |
|
||||||
| **[Módulos](Modulos)** | Encender y apagar partes de la aplicación |
|
| **[Chats](Chats)** | Lo único que cambia ahí: responder citando |
|
||||||
| **[Identidades](Identidades)** | Varias cuentas en el mismo móvil, y el aviso que evita perder una |
|
| **[Compilar la APK](Compilar)** | Cómo se construye y cómo se publica una versión |
|
||||||
| **[Compilar la APK](Compilar)** | Cómo se construye, de dónde sale cada pieza |
|
|
||||||
| **[Estructura del código](Estructura)** | Dónde vive cada fichero y por qué ahí |
|
| **[Estructura del código](Estructura)** | Dónde vive cada fichero y por qué ahí |
|
||||||
| **[Si algo va mal](Problemas)** | Los fallos que han pasado de verdad, y su arreglo |
|
| **[Si algo va mal](Problemas)** | Los fallos que han pasado de verdad |
|
||||||
| **[Estado y hoja de ruta](Roadmap)** | Qué funciona, qué no, y qué está bloqueado |
|
|
||||||
| **[Qué NO tiene](Limitaciones)** | Lo que falta respecto al oficial, sin adornos |
|
| **[Qué NO tiene](Limitaciones)** | Lo que falta respecto al oficial, sin adornos |
|
||||||
|
| **[Estado](Roadmap)** | Qué está probado y qué no |
|
||||||
|
|
||||||
|
Todas las capturas están tomadas de la APK funcionando en un Pixel 9 con Android 16.
|
||||||
|
No hay ningún montaje.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## La pantalla principal
|
## Instalar
|
||||||
|
|
||||||
<img src="img/01-portada.png" width="300" align="right">
|
La APK **no está en ninguna tienda**: se descarga de las *releases* de este repositorio
|
||||||
|
y se instala a mano, con "orígenes desconocidos" activado.
|
||||||
|
|
||||||
Al abrir la aplicación hay tres zonas, y no cambian nunca de sitio:
|
Se instala **junto al Oasis oficial** sin pisarlo —el identificador de aplicación es
|
||||||
|
`net.laenre.oasis`, distinto del suyo—, así que puedes tener los dos y comparar.
|
||||||
|
|
||||||
**Arriba** — el logo (vuelve al inicio), los dos filtros **Personal** y **Social**,
|
Necesita **unos 350 MB libres**. El primer arranque tarda entre 15 y 60 segundos
|
||||||
y tu avatar (lleva a tu perfil).
|
porque descomprime el servidor; mientras, enseña una pantalla con un contador.
|
||||||
|
|
||||||
**En medio** — el panal de hexágonos. Cada hexágono es una categoría; al tocarlo se
|
> **Verifica la huella de la firma** antes de instalar una APK bajada de un servidor
|
||||||
abre su rejilla de módulos. Debajo, el mismo menú en forma de lista desplegable, que
|
> propio. La de cada versión se publica en su release y se comprueba con
|
||||||
es el que aparece en el resto de páginas.
|
> `apksigner verify --print-certs`.
|
||||||
|
|
||||||
**Abajo** — la barra de accesos rápidos, con hasta cuatro módulos elegidos por ti, el
|
|
||||||
botón **Edit** para cambiarlos, y **Peers** e **Invites** siempre a mano.
|
|
||||||
|
|
||||||
Está explicado botón a botón en **[La interfaz](Interfaz)**.
|
|
||||||
|
|
||||||
<br clear="all">
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Cómo se instala
|
|
||||||
|
|
||||||
La APK **no está en ninguna tienda**. Se descarga de las *releases* de este
|
|
||||||
repositorio y se instala a mano, con "orígenes desconocidos" activado.
|
|
||||||
|
|
||||||
Se instala **junto al Oasis oficial** sin pisarlo: el identificador de aplicación es
|
|
||||||
`net.laenre.oasis`, distinto del oficial. Puedes tener los dos y comparar.
|
|
||||||
|
|
||||||
> **Verifica siempre la huella de la firma** antes de instalar una APK descargada de
|
|
||||||
> un servidor propio. La huella de cada versión se publica en su release.
|
|
||||||
|
|
||||||
Necesita **unos 350 MB libres**: la APK ocupa 112 MB y el backend se descomprime
|
|
||||||
dentro de los datos de la aplicación la primera vez que arranca. Si no hay sitio, la
|
|
||||||
instalación falla con `INSTALL_FAILED_INSUFFICIENT_STORAGE`.
|
|
||||||
|
|
||||||
**El primer arranque tarda.** Se descomprime el backend y se levanta SSB: entre 10 y
|
|
||||||
60 segundos según el móvil. Mientras, la aplicación enseña una pantalla de estado con
|
|
||||||
los segundos que lleva esperando; no está colgada.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Las fotos suben sin tus metadatos
|
|
||||||
|
|
||||||
Al subir una imagen se le quitan los metadatos **antes** de guardarla: la ubicación
|
|
||||||
GPS, la marca y el modelo del móvil, el número de serie, la fecha. Vale para JPEG, PNG
|
|
||||||
y WebP.
|
|
||||||
|
|
||||||
Solo se conserva la **orientación** —para que las fotos verticales no salgan
|
|
||||||
tumbadas— y el perfil de color. Los píxeles no se tocan: no se recomprime nada.
|
|
||||||
|
|
||||||
Esto estuvo roto en Android durante un tiempo, y merece la pena saber por qué: el
|
|
||||||
limpiador dependía de una biblioteca con binarios nativos que **no se empaqueta en el
|
|
||||||
móvil**, y cuando no está, devolvía la imagen intacta sin decir nada. Ahora el
|
|
||||||
limpiador no depende de nada.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Licencia
|
## Licencia
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ Volver a tocar el hexágono cierra la rejilla.
|
||||||
Lo mismo con **Personal**: Avatar, CV, Agenda, Favorites, **Modules** y **Settings**.
|
Lo mismo con **Personal**: Avatar, CV, Agenda, Favorites, **Modules** y **Settings**.
|
||||||
|
|
||||||
Por aquí se llega a la pantalla de módulos, que es donde se encienden y apagan las
|
Por aquí se llega a la pantalla de módulos, que es donde se encienden y apagan las
|
||||||
partes de la aplicación. Ver [Módulos](Modulos).
|
partes de la aplicación, incluido [Karvan](Karvan).
|
||||||
|
|
||||||
<br clear="all">
|
<br clear="all">
|
||||||
|
|
||||||
|
|
|
||||||
27
Karvan.md
27
Karvan.md
|
|
@ -126,6 +126,33 @@ contra un adversario que ya controla tu dispositivo o el servidor.**
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Apagarlo
|
||||||
|
|
||||||
|
<img src="img/23-modules-karvan.png" width="300" align="right">
|
||||||
|
|
||||||
|
Karvan es un módulo como los demás: aparece en **Personal → Modules**, entre *Jobs* y
|
||||||
|
*L.A.R.P.*, y se apaga desde ahí.
|
||||||
|
|
||||||
|
Apagarlo lo quita del menú y de la barra de accesos rápidos, y su ruta pasa a devolver
|
||||||
|
un error. Las salas que hubiera abiertas se pierden, igual que al reiniciar.
|
||||||
|
|
||||||
|
Que esté ahí y no en un sitio propio es deliberado. Un módulo nuevo no se inventa su
|
||||||
|
forma de existir:
|
||||||
|
|
||||||
|
| Fichero | Qué se añadió |
|
||||||
|
|---|---|
|
||||||
|
| `views/modules_view.js` | Una línea en la lista, en orden alfabético |
|
||||||
|
| `configs/config-manager.js` | `"karvanMod": "on"` en la configuración por defecto |
|
||||||
|
| `views/main_views.js` | `renderKarvanLink()`, calcado de `renderPollsLink()` |
|
||||||
|
| `backend/karvan_routes.js` | Las rutas, todas detrás de `checkMod(ctx, 'karvanMod')` |
|
||||||
|
|
||||||
|
Esa última comprobación es la que hace que apagarlo apague de verdad: cada ruta
|
||||||
|
pregunta por el módulo antes de responder, igual que las de upstream.
|
||||||
|
|
||||||
|
<br clear="all">
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Lo mismo en el ordenador
|
## Lo mismo en el ordenador
|
||||||
|
|
||||||
Karvan está también en
|
Karvan está también en
|
||||||
|
|
|
||||||
56
Modulos.md
56
Modulos.md
|
|
@ -1,56 +0,0 @@
|
||||||
# Módulos
|
|
||||||
|
|
||||||
> ⚠ Rama experimental, no oficial. El Oasis oficial es
|
|
||||||
> https://github.com/epsylon/oasis · [Volver a la portada](Home)
|
|
||||||
|
|
||||||
Oasis trae 48 módulos y no todo el mundo quiere los 48. La pantalla de módulos los
|
|
||||||
enciende y apaga uno a uno; lo que apagas desaparece del menú y su ruta deja de
|
|
||||||
responder.
|
|
||||||
|
|
||||||
Se llega por el hexágono **Personal** → **Modules**.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## La pantalla
|
|
||||||
|
|
||||||
<img src="img/22-modules.png" width="300" align="right">
|
|
||||||
|
|
||||||
Arriba, dos botones que aplican un conjunto entero de golpe:
|
|
||||||
|
|
||||||
- **MOBILE** — deja encendido lo que tiene sentido en un móvil.
|
|
||||||
- **FULL** — enciende todo.
|
|
||||||
|
|
||||||
Debajo, la tabla: nombre, para qué sirve y una casilla. El nombre es un enlace a ese
|
|
||||||
módulo. Al final de la tabla está **Save settings**, que es lo que guarda los cambios.
|
|
||||||
|
|
||||||
<br clear="all">
|
|
||||||
|
|
||||||
## Karvan en la lista
|
|
||||||
|
|
||||||
<img src="img/23-modules-karvan.png" width="300" align="right">
|
|
||||||
|
|
||||||
**Karvan** aparece entre Jobs y L.A.R.P., en su sitio alfabético, con la misma forma
|
|
||||||
que los demás: *"Ephemeral rooms: messages live only in memory and self-destruct."*
|
|
||||||
|
|
||||||
Apagarlo hace desaparecer el módulo del menú y de la barra de accesos rápidos, y su
|
|
||||||
ruta pasa a devolver un error. Las salas que hubiera abiertas se pierden, como se
|
|
||||||
pierden al reiniciar.
|
|
||||||
|
|
||||||
<br clear="all">
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Cómo está declarado
|
|
||||||
|
|
||||||
Un módulo nuevo no se inventa una forma propia de existir: se declara donde están los
|
|
||||||
demás.
|
|
||||||
|
|
||||||
| Fichero | Qué se añadió |
|
|
||||||
|---|---|
|
|
||||||
| `src/views/modules_view.js` | Una línea en la lista, en orden alfabético |
|
|
||||||
| `src/configs/config-manager.js` | `"karvanMod": "on"` en la configuración por defecto |
|
|
||||||
| `src/views/main_views.js` | `renderKarvanLink()`, calcado de `renderPollsLink()` |
|
|
||||||
| `src/backend/fork_routes.js` | Las rutas, todas detrás de `checkMod(ctx, 'karvanMod')` |
|
|
||||||
|
|
||||||
Esa última comprobación es la que hace que apagarlo apague de verdad: cada ruta
|
|
||||||
pregunta por el módulo antes de responder, igual que hacen las rutas de upstream.
|
|
||||||
|
|
@ -10,7 +10,6 @@
|
||||||
- [Karvan · salas efímeras](Karvan)
|
- [Karvan · salas efímeras](Karvan)
|
||||||
- [Llamadas](Llamadas)
|
- [Llamadas](Llamadas)
|
||||||
- [Chats](Chats)
|
- [Chats](Chats)
|
||||||
- [Módulos](Modulos)
|
|
||||||
- [Identidades](Identidades)
|
- [Identidades](Identidades)
|
||||||
- [Compilar la APK](Compilar)
|
- [Compilar la APK](Compilar)
|
||||||
- [Estructura del código](Estructura)
|
- [Estructura del código](Estructura)
|
||||||
|
|
|
||||||
BIN
img/00-novedades.png
Normal file
BIN
img/00-novedades.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 195 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 88 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 203 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 133 KiB |
Loading…
Add table
Add a link
Reference in a new issue