# 🔧 Actualización - Debug de Movimientos ## Problema Reportado Los movimientos no se estaban mostrando en la aplicación, solo el número de tarjeta y el saldo. ## ✅ Cambios Implementados ### 1. Mejorado el Manejo de Errores - **Antes**: Los errores al leer movimientos se "tragaban" silenciosamente - **Ahora**: Se capturan y muestran en la UI para debugging ### 2. Comandos APDU Múltiples He implementado 3 intentos diferentes para leer los registros de eventos: ```kotlin // Intento 1: SFI 0x08 (file 8) 0x80 0x2B [record] 0x45 0x1D // Intento 2: SFI 0x07 0x80 0x2B [record] 0x3D 0x1D // Intento 3: Comando simplificado 0x80 0x2B [record] 0x05 0x1D ``` Esto aumenta las posibilidades de éxito con diferentes implementaciones de tarjetas Calypso. ### 3. Status Words Flexibles Ahora la app reconoce: - `9000` - Éxito - `6A83` - Registro no encontrado (normal si no hay movimientos) - `6A82` - Archivo no encontrado (tarjeta sin historial) ### 4. UI con Información de Debug Ahora verás uno de estos escenarios: #### Caso A: Movimientos Encontrados ✅ ``` ┌─────────────────────────────┐ │ Últimos Movimientos │ │ │ │ Carga +10.00 € │ │ 15/03/2026 14:30 │ │ Línea 12 │ │ ... │ └─────────────────────────────┘ ``` #### Caso B: Sin Movimientos (con debug) 🔍 ``` ┌─────────────────────────────┐ │ Últimos Movimientos │ │ │ │ No se pudieron leer los │ │ movimientos │ │ │ │ Debug: Registro no │ │ encontrado │ └─────────────────────────────┘ ``` ## 🧪 Qué Probar Ahora 1. **Reinstala la app** con el nuevo APK: ``` app\build\outputs\apk\debug\app-debug.apk ``` 2. **Lee tu tarjeta nuevamente** 3. **Observa la sección "Últimos Movimientos"**: - Si ves movimientos: ¡Perfecto! ✅ - Si ves "No se pudieron leer...": Lee el mensaje de debug ## 📊 Posibles Resultados ### Resultado 1: Funciona Ahora ✅ Si los movimientos aparecen, significa que uno de los nuevos comandos funcionó. ### Resultado 2: "Debug: Registro no encontrado" ⚠️ **Significado**: La tarjeta no tiene registros de eventos disponibles para leer. **Posibles causas**: - La tarjeta es nueva y no tiene movimientos todavía - Los registros de eventos están en un archivo diferente - La tarjeta Millennium usa un formato propietario diferente **Solución**: Es normal. Algunas tarjetas no almacenan historial localmente. ### Resultado 3: Otro mensaje de error 🔍 Si ves otro error, por favor compártelo conmigo para investigar más. ## 🔬 Próximos Pasos según el Resultado ### Si Funciona: - ✅ Ya está todo listo - Puedes usar la app normalmente - Los movimientos se mostrarán cuando estén disponibles ### Si No Funciona: Necesitaré más información: 1. **¿Qué dice el mensaje de debug?** - El texto exacto que aparece en rojo 2. **¿Es una tarjeta usada o nueva?** - Si es nueva, puede no tener historial 3. **¿Puedes leer movimientos en la app oficial de iTranvias?** - Esto confirmaría que los datos existen ## 💡 Información Técnica ### Por qué pueden faltar los movimientos: 1. **Formato Propietario**: Algunas ciudades usan extensiones propietarias del formato Calypso 2. **Archivo Diferente**: Los eventos pueden estar en un SFI (Short File Identifier) diferente 3. **Sin Historial Local**: Algunas tarjetas no almacenan historial en el chip, solo en servidores 4. **Encriptación**: Algunos campos pueden estar encriptados y requerir claves específicas ### Comandos que estamos probando: Las tarjetas Calypso usan el comando READ RECORD (`0x2B`) con diferentes parámetros: - **P1**: Número de registro (1, 2, 3) - **P2**: SFI × 8 + modo (ej: `0x45` = SFI 8, modo 5) - **Le**: Longitud esperada (`0x1D` = 29 bytes) Estamos probando los SFI más comunes: - SFI 7 (típico para eventos de validación) - SFI 8 (típico para log de transacciones) - Modo directo sin SFI ## 📱 Instalación del APK Actualizado El nuevo APK está en: ``` app\build\outputs\apk\debug\app-debug.apk ``` Para instalar: 1. Transfiere el APK a tu teléfono 2. Abre el APK y permite la instalación 3. Si ya tenías la app instalada, se actualizará automáticamente ## ✅ Build Exitoso ``` BUILD SUCCESSFUL ✅ 35 tareas ejecutadas 7 cambios aplicados ``` --- ## 🎯 Resumen He mejorado significativamente la lectura de movimientos: - ✅ Múltiples comandos APDU (3 intentos) - ✅ Mejor manejo de errores - ✅ Información de debug visible - ✅ Status words más flexibles **Próximo paso**: Prueba la app actualizada y cuéntame qué mensaje ves en la sección de movimientos. --- **Actualización**: 9 de Marzo, 2026 **Versión**: 1.1 (Debug Build) **Estado**: Listo para probar