Snapgate te deja resolver desde la propia notificación: dos botones, Descartar y Subir, sin abrir la app. Parece una decisión de diseño cómoda. En realidad está condicionada por una regla del sistema que casi nadie conoce.
Desde Android 10, una app no puede tocar libremente ficheros que no ha creado. Para mover una foto que hizo la cámara hay que pedir consentimiento con un diálogo del sistema, y ese diálogo solo lo puede lanzar una Activity: es decir, la app tiene que estar abierta en pantalla.
Si «Subir» tuviera que mover el fichero, pulsar el botón abriría la app y te pondría delante otro diálogo. Dos toques más y la promesa de decidir en un gesto se va al traste.
Pero copiar es otra historia. El fichero copiado lo creamos nosotros, así que no hace falta permiso de nadie y funciona perfectamente en segundo plano. Por eso el botón de la notificación copia en lugar de mover, y el original queda apuntado en una cola de limpieza que se vacía después de una sola vez, con un único diálogo para todo el lote.
Ese es el precio, y es un precio real: durante un rato tienes la foto duplicada en el móvil. Nos pareció mejor que romper el gesto de un toque.
Todo lo anterior aplica a la ruta por carpetas, que es el plan B. Con la cuenta conectada, Snapgate sube la foto directamente por la API de Google Photos, y para eso solo necesita leer los bytes. Leer ya lo tenemos permitido.
Resultado: sin mover, sin copiar, sin duplicados y sin diálogos. Esa es la razón de que la cuenta de Google pasara de ser una función opcional escondida en ajustes a ser el camino principal del producto.
Hay un detalle que nació de una conversación y resultó ser estructural: una foto solo se te ofrece durante sus primeros minutos. Si no contestas, se queda en el móvil sin subir y deja de preguntar.
Suena a comodidad, y también es una red de seguridad. Impide que una instalación nueva —o un fallo en el cálculo de qué es «reciente»— te plante delante las novecientas fotos de tu carrete pidiéndote que decidas una por una. Nos pasó durante el desarrollo, y la ventana lo hace imposible pase lo que pase.