«Mis libros» y la ficha del libro: unas cuantas mejoras #24

Closed
HBB wants to merge 0 commits from HBB:pr/mejoras-varias into main
First-time contributor

Ocho cosas sueltas que han salido de usar la aplicación a diario. Van juntas porque tocan las mismas pantallas.

  • Valorar deja de ser obligatorio. Marcar un libro como leído abría la reseña sin preguntar; ahora lo ofrece, y «Ahora no» cierra sin más.
  • «Leídos» se puede ver por autor, al lado de las series, con un abanico de portadas. Se agrupa por nombre y no por la URL: bookwyrm.social tiene a la misma persona dada de alta varias veces —Lucinda Riley es el autor 29068 y el 58144—, así que por URL salía repetida con sus libros repartidos.
  • Las páginas y el autor que faltan se pueden arreglar desde el perfil. El aviso lleva a un diálogo que escribe el dato en la instancia. Lo del autor es lo delicado: BookWyrm contesta al primer POST con una pantalla de confirmación, y elegir un autor que ya existe en vez de crear otro es justo lo que evita más duplicados.
  • La cuarta estantería de serie, la de los libros dejados a medias, que estaba sin enseñar, con «Dejar de leer» en el ⋮ y «Seguir leyendo» en la ficha. Sus nombres ya estaban traducidos desde siempre, sin nadie que los usara.
  • «Mis libros» se puede editar como el perfil: ordenar las estanterías, apagar las dos que no son el meollo, y ponerlas arriba o abajo para que caigan bajo el pulgar.
  • Las acciones de lectura, solo en los dos botones de abajo de la ficha, donde estaban repetidas.
  • El botón de atrás deshace un paso cada vez dentro de «Mis libros», en vez de salir de la aplicación de golpe. Solo desde la lista de estanterías se pregunta si se quiere salir.
  • Las novedades de la versión se pueden volver a leer. El aviso salía una vez al actualizar y se acababa ahí, y era además una lista que no se podía desplazar. Ahora el mismo diálogo, ya desplazable, se abre desde un aviso encima de las notificaciones — encima y no dentro, porque esa lista es la del servidor y el botón de vaciarla la borra entera.

Todo en los diecisiete idiomas. Probado en el teléfono contra bookwyrm.social.

Ocho cosas sueltas que han salido de usar la aplicación a diario. Van juntas porque tocan las mismas pantallas. - Valorar deja de ser obligatorio. Marcar un libro como leído abría la reseña sin preguntar; ahora lo ofrece, y «Ahora no» cierra sin más. - «Leídos» se puede ver por autor, al lado de las series, con un abanico de portadas. Se agrupa por nombre y no por la URL: bookwyrm.social tiene a la misma persona dada de alta varias veces —Lucinda Riley es el autor 29068 y el 58144—, así que por URL salía repetida con sus libros repartidos. - Las páginas y el autor que faltan se pueden arreglar desde el perfil. El aviso lleva a un diálogo que escribe el dato en la instancia. Lo del autor es lo delicado: BookWyrm contesta al primer POST con una pantalla de confirmación, y elegir un autor que ya existe en vez de crear otro es justo lo que evita más duplicados. - La cuarta estantería de serie, la de los libros dejados a medias, que estaba sin enseñar, con «Dejar de leer» en el ⋮ y «Seguir leyendo» en la ficha. Sus nombres ya estaban traducidos desde siempre, sin nadie que los usara. - «Mis libros» se puede editar como el perfil: ordenar las estanterías, apagar las dos que no son el meollo, y ponerlas arriba o abajo para que caigan bajo el pulgar. - Las acciones de lectura, solo en los dos botones de abajo de la ficha, donde estaban repetidas. - El botón de atrás deshace un paso cada vez dentro de «Mis libros», en vez de salir de la aplicación de golpe. Solo desde la lista de estanterías se pregunta si se quiere salir. - Las novedades de la versión se pueden volver a leer. El aviso salía una vez al actualizar y se acababa ahí, y era además una lista que no se podía desplazar. Ahora el mismo diálogo, ya desplazable, se abre desde un aviso encima de las notificaciones — encima y no dentro, porque esa lista es la del servidor y el botón de vaciarla la borra entera. Todo en los diecisiete idiomas. Probado en el teléfono contra bookwyrm.social.
HBB added 16 commits 2026-08-07 21:40:51 +00:00
Marcar un libro como leído abría el formulario de reseña sin preguntar,
así que quien solo quería apuntarlo tenía que salir de una pantalla que
no había pedido. Terminar un libro y valorarlo son dos cosas distintas.

Ahora se pregunta: «Anmeld» abre la reseña de siempre y «Ahora no» cierra
la ficha, como al mover el libro a cualquier otra estantería. El libro ya
está guardado en las dos ramas; lo único que cambia es si se reseña.

Vale para las dos formas de terminar un libro: cambiarlo de estantería y
el «Terminar de leer» del progreso.
Junto al icono de las series hay ahora otro de autores: primero la lista
de quien escribe, en orden alfabético y con sus portadas en abanico, y al
elegir uno, sus libros.

Un libro escrito a varias manos sale bajo cada una de ellas, que es lo
que se espera al mirar «qué he leído de esta persona». Se agrupa por la
URL del autor, que es lo estable —dos autores pueden llamarse igual y un
nombre puede corregirse—, emparejándola con los nombres del
enriquecimiento, que vienen en el mismo orden. Cuando las cuentas no
cuadran, se agrupa por el texto entero antes que repartirlo mal.

Dentro de un autor manda la ordenación de la estantería, y sin elegir
ninguna sus libros salen alfabéticos, que es como se busca en la obra de
alguien. Por eso el menú de ordenar sigue estando dentro de un autor,
mientras que dentro de una serie no: allí el orden es el de lectura.

Se agrupa por nombre y no por la URL del autor, que sería lo estable sobre
el papel: la instancia tiene a la misma persona dada de alta varias veces
—Lucinda Riley es el autor 29068 y el 58144, Stieg Larsson el 220080 y el
2624— y por URL salían repetidos en la lista, con sus libros repartidos
entre las fichas.
El abanico de portadas enseñaba cinco fijas, un número puesto a ojo: en un
móvil normal caben siete y media tarjeta quedaba vacía, y en uno estrecho
la última se habría salido por el borde.

Ahora se mide el ancho de verdad de la tarjeta y se pintan las que caben.
Como el abanico es el mismo en series y en autores, sale de las dos a una
función aparte en vez de estar copiado.
Las estadísticas avisan de que hay libros sin número de páginas y que por
eso no cuentan en el total, pero no había nada que hacer al respecto salvo
ir a la web y editar la ficha de cada uno. Ahora ese mismo aviso lleva a
la lista de esos libros, con un hueco para el número y un botón de guardar
por libro. Guardado uno, desaparece de la lista, el aviso baja de número y
sus páginas entran en el total; cuando no queda ninguno, el aviso se va.

Sobre cómo se guarda: el número de páginas es del libro y no de quien lo
lee, así que esto cambia la ficha para toda la instancia. Y el formulario
de edición de BookWyrm es un ModelForm de veintisiete campos donde lo que
no se envía se guarda vacío —mandar solo las páginas borraría la ficha
entera—, de modo que se pide el formulario, se cambia un solo campo y se
devuelve completo, igual que hace el navegador: sesenta y un campos con
sus repeticiones, las casillas sin marcar fuera (marcarlas quitaría
autores) y la portada intacta, que al no reenviarse se queda como está.
El diálogo lo advierte y guarda de uno en uno, nunca en bloque.

Que se guardó lo dice el 302: el cliente de la app no sigue las
redirecciones, y un formulario con algo mal se devuelve a sí mismo con un
200 sin haber guardado nada.
Las estadísticas avisan de que hay libros de los que no se sabe el autor y
que por eso no cuentan en «Autores más leídos», igual que pasaba con las
páginas. Ahora ese aviso lleva a la lista de esos libros, con un hueco para
el nombre y un botón de guardar por libro; guardado uno, el aviso baja de
número y el autor entra en el recuento sin volver a pedir nada a la
instancia, porque el nombre se queda también en el enriquecimiento local.

Un autor no se guarda a la primera, y ahí está la diferencia con las
páginas: como en BookWyrm un autor es una ficha suya y no un campo del
libro, la instancia contesta con una pantalla preguntando si es alguno de
los que ya tiene. Es donde se evitan los duplicados —esta instancia ya
arrastra cinco «Dan Brown» distintos—, así que la pregunta se le pasa a
quien está delante en vez de decidir por él. Las opciones son de tres
clases y no dos: los que ya tienen ficha, los candidatos que BookWyrm saca
del registro ISNI, y dar de alta a uno nuevo con solo el nombre. Se
distinguen por lo que se envía —un número, una dirección web o el nombre—,
se enseñan con la línea de debajo que pone en qué se diferencian («Autor de
tal libro»), que es lo único con lo que se puede elegir entre cinco que se
llaman igual, y se ordenan poniendo primero los que ya existen, que son los
que hay que elegir para no duplicar.

Por dentro reaprovecha el envío del formulario completo que ya se hacía
para las páginas: se saca a una función aparte, porque la pantalla de
confirmación devuelve otra vez el mismo formulario y hay que volver a
mandarlo entero junto con la elección. Como allí, el 302 es lo que dice que
se guardó.

De paso, el aviso de las páginas pasa a ser un plural: con un solo libro
decía «1 libros».
Las cadenas de los dos diálogos solo estaban en inglés, español y danés, así
que en el resto de idiomas el aviso se leía en inglés dentro de una pantalla
traducida. Se añaden a los catorce que faltaban, respetando las formas
plurales de cada lengua —checo y rumano con «few», polaco y ucraniano con
«few» y «many»— y las comillas que cada una usa, que es lo que ya hacían las
cadenas traducidas de verdad, no las heredadas del castellano.
BookWyrm trae de serie una cuarta estantería, «stopped-reading», donde van
los libros que uno decide no terminar. La aplicación no la enseñaba, así que
para verlos había que ir a la web —y los nombres llevaban traducidos a los
diecisiete idiomas desde siempre, sin nada que los usara—. Ahora sale en
«Mis libros», la primera de la lista, porque es la que se va a buscar a
propósito: a las otras tres se llega sola.

Abriendo uno de esos libros, el botón de abajo dice «Seguir leyendo», en el
mismo sitio donde un libro pendiente dice «Empezar a leer», que es la misma
decisión. Por dentro es lo mismo también: cambia el estado de lectura a
«start», y de eso se encarga BookWyrm de sacarlo de donde estaba, así que el
libro desaparece de la estantería sin tener que quitarlo a mano.

De paso, la búsqueda ya sabe cómo se llama: un libro guardado en esa
estantería enseñaba «stopped-reading» tal cual, en crudo y en inglés, porque
solo estaban puestos los nombres de las otras tres.

Queda fuera, a propósito, marcar un libro como dejado a medias desde la
aplicación: la lista de estanterías del menú de ⋮ sigue ofreciendo solo tres.
Por ahora la estantería se llena desde la web y aquí se lee y se retoma.
La estantería de los libros dejados a medias ya se veía, pero no había forma
de meter uno en ella: había que ir a la web. Ahora el menú de ⋮ de un libro
que se está leyendo ofrece «Dejar de leer», debajo de actualizar el progreso.
Solo aparece leyendo, que es lo único que se puede dejar.

Va por el mismo camino que empezar y terminar un libro, porque dejarlo a
medias es un estado de lectura de BookWyrm y no una estantería cualquiera:
basta con añadir «stop» a los estados que ya se enviaban, y de sacarlo de
«Leyendo» se encarga la instancia. Si el estado fallara, sigue en pie el
recurso de siempre, que es reenviarlo por el formulario de estanterías.

Se queda fuera de la lista de «Cambiar de estantería» a propósito: allí se
mueve un libro de sitio, y esto no es moverlo, es rendirse con él. Se
deshace desde la propia estantería con «Seguir leyendo».
El perfil deja ordenar y apagar sus bloques desde «Editar página»; la
pantalla de las estanterías no dejaba nada. Ahora tiene el mismo botón
abajo, con un diálogo hermano del suyo: se arrastran las estanterías
para ordenarlas, se apagan las que no se usan y se elige contra qué
borde se apoyan las tarjetas.

Solo dos llevan interruptor: abandonados y por leer. Quien no deja
libros a medias, o no apunta lo que piensa leer, tiene ahí una tarjeta
que no abre nunca. «Leyendo» y «Leídos» no se pueden quitar porque son
el sentido de la pantalla; su interruptor se enseña encendido y fijo en
vez de dejar un hueco, para que se vea que ahí también está decidido.

Lo de arriba o abajo es por la mano: son cuatro tarjetas como mucho en
una pantalla alta, y arriba dejan medio móvil en blanco con el pulgar
estirado. El título no se mueve, que es de la pantalla y no de la
lista. Si con letra muy grande las tarjetas no caben, la columna llena
el hueco y se desplaza, y la alineación deja de notarse.

Se guarda como la del perfil —los ids separados por comas, con un "-"
delante de las apagadas— en dos claves nuevas de DataStore que se
escriben juntas: se deciden en el mismo diálogo y con una sola
pulsación de Guardar, así que la pantalla no debe ver medio cambio.
Los ids van aparte del slug de BookWyrm para poder renombrar las
constantes sin descolocar lo ya guardado, y una disposición vieja o
manipulada a mano no puede dejar la pantalla sin estanterías. 9 pruebas.

Apagar una estantería solo esconde su tarjeta: la búsqueda sigue
pudiendo abrirla al saltar a un libro suyo.

Las cadenas nuevas van en castellano, inglés y danés; faltan los otros
catorce idiomas. Guardar, cancelar, restablecer y la descripción del
asa se reutilizan del diálogo del perfil, que dicen lo mismo y ya están
traducidas.
El progreso llevaba un lápiz a la derecha que abría un diálogo con dos
botones: actualizar progreso y terminar de leer. Desde la 1.2.2 la barra
de abajo de la ficha ya ofrece esos dos mismos botones, en las tres
pestañas y sin abrir nada. El lápiz se quedó de antes, cuando la barra
no los tenía, y lo único que hacía era un rodeo hasta lo mismo.

Se van el lápiz y su diálogo. El progreso vuelve a ser lo que dice: la
línea, la página impresa equivalente si el progreso venía en porcentaje,
y la barra. Actualizarlo sigue estando en el botón de abajo y en el menú
de tres puntos.

`book_reading_actions` se queda sin usar en los diecisiete idiomas; no
se borra por si la barra vuelve a cambiar.
Con media pantalla cada uno, «Actualizar progreso» partía en dos líneas
y el botón crecía al doble de alto que el de al lado, con la fila entera
desnivelada. Ahora una sola línea: la letra un punto más pequeña y el
hueco de los lados recortado, que es lo que hace falta para que quepa en
danés y en castellano, los dos idiomas con las palabras más largas.

Si algún día no cupiera, se corta con puntos suspensivos en vez de
deformar la fila.
Convive con la release por el sufijo del identificador, pero en el cajón
de aplicaciones salían dos iconos iguales con el mismo nombre y no había
manera de saber cuál se abría. Se vio probando: la instalada era la
nueva y aun así parecía que no estaba.

Va en el conjunto de fuentes de depuración y no como resValue porque
`app_name` ya existe en el principal y darían recurso duplicado.
Las doce cadenas que solo estaban en castellano, inglés y danés: los
autores de «Leídos», el aviso que ofrece reseñar un libro terminado y
todo el diálogo de «Editar página» de las estanterías.
Estando dentro de una estantería, el botón de atrás del móvil salía de
la aplicación de golpe. Ahora hace lo mismo que el botón de la pantalla:
de una serie o un autor a su lista, de ahí a la estantería y luego a la
lista de estanterías. Solo desde ahí se pregunta si se quiere salir.

La lógica de «Volver» se saca a una lambda que usan el botón y el atrás,
para que no puedan quedar en desacuerdo. Las fichas y los diálogos ya se
cerraban solos y no se tocan.

El carrusel tiene compuestas también las pestañas de al lado, así que la
pantalla solo atiende el atrás mientras es la que se ve; sin eso, un
toque en «Actividad» se lo llevaba esta.
El aviso de novedades salía una vez al actualizar y se acababa ahí: quien
lo cerraba sin leerlo no volvía a dar con él. Y es una lista larga que en
la pantalla de un móvil hay que poder desplazar, cosa que tampoco se podía
hacer, así que lo que no cabía quedaba cortado sin más.

Ahora el mismo diálogo, ya desplazable, se abre también desde un aviso
arriba de las notificaciones. Leerlo no lo quita de en medio —se puede
abrir las veces que haga falta—; se va cuando se dice que se vaya, con la
×, y no vuelve hasta la versión siguiente.

Va *encima* de la lista y no dentro: esa es la del servidor —el botón de
vaciarla la borra entera, y una tarjeta con avatar y remitente haría pasar
por persona lo que dice la propia app—. Por lo mismo lleva su propia marca
de «visto»: la del diálogo del arranque se gasta al cerrarlo, y compartirla
habría hecho desaparecer el aviso justo al abrir la app.

El número de versión y el texto que le toca quedan además en un solo sitio
(Changelog), que es lo que hay que cambiar al publicar.
Owner

Muy buenos añadidos, muchas gracias, ya los he fusionado

Muy buenos añadidos, muchas gracias, ya los he fusionado
ferlagod closed this pull request 2026-08-09 07:25:15 +00:00

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
ferlagod/rocinante_android!24
No description provided.