# Folder Redirect App Aplicación Android para redireccionar archivos entre carpetas automáticamente. ## Características - ✅ Agregar reglas de redirección (carpeta origen → carpeta destino) - ✅ Editar reglas existentes - ✅ Eliminar reglas - ✅ Activar/desactivar reglas individualmente - ✅ **Filtro por tipo de archivo** (Documentos, Imágenes, Videos) - ✅ **Filtro por patrón de nombre** (ej: RDT*, invoice_*, *.pdf) - ✅ **Solución híbrida de batería**: Polling rápido cuando la app está abierta + WorkManager en segundo plano - ✅ Servicio en segundo plano que monitorea las carpetas - ✅ Mueve archivos automáticamente cuando llegan a la carpeta de origen - ✅ Manejo de nombres duplicados (agrega timestamp) ## Requisitos - Android 7.0 (API 24) o superior - Permisos de almacenamiento ## Permisos La app solicita los siguientes permisos: - `READ_EXTERNAL_STORAGE` - Leer archivos de la carpeta de origen - `WRITE_EXTERNAL_STORAGE` - Escribir archivos en la carpeta de destino - `MANAGE_EXTERNAL_STORAGE` - Acceso completo al almacenamiento (Android 11+) - `FOREGROUND_SERVICE` - Ejecutar servicio en segundo plano ## Cómo usar 1. **Abrir la app** - Al iniciar, solicita permisos de almacenamiento 2. **Agregar regla**: - Presiona el botón flotante `+` - Ingresa la ruta absoluta de la carpeta de origen (ej: `/storage/emulated/0/Download`) - Ingresa la ruta absoluta de la carpeta de destino (ej: `/storage/emulated/0/MisDocumentos`) - Presiona "Guardar" 3. **Iniciar servicio**: - Presiona el botón "Iniciar Servicio" - El servicio se ejecutará en segundo plano monitoreando las carpetas 4. **Gestionar reglas**: - Usa el switch para activar/desactivar reglas individualmente - Presiona el ícono de editar para modificar una regla - Presiona el ícono de eliminar para borrar una regla ## Notas Importantes - Las carpetas de origen y destino deben existir antes de crear la regla - El servicio se detiene al cerrar la app (presionar "Detener Servicio") - Los archivos con nombres duplicados reciben un timestamp para evitar sobrescritura - Solo se monitorean archivos nuevos, no subcarpetas ## Estructura del Proyecto ``` app/src/main/java/com/folderredirect/app/ ├── MainActivity.kt # Actividad principal ├── FolderRule.kt # Modelo de datos ├── FolderRuleAdapter.kt # Adapter para RecyclerView ├── FolderMonitorService.kt # Servicio de monitoreo └── RulesManager.kt # Gestión de almacenamiento de reglas app/src/main/res/layout/ ├── activity_main.xml # Layout principal ├── item_folder_rule.xml # Item de la lista └── dialog_rule.xml # Diálogo para agregar/editar ``` ## Compilación ```bash # Abrir en Android Studio o compilar desde terminal ./gradlew assembleDebug # El APK se generará en: # app/build/outputs/apk/debug/app-debug.apk ``` ## Tecnologías - Kotlin - Androidx - Material Design 3 (Dynamic Colors) - RecyclerView - Foreground Service - **WorkManager** (segundo plano eficiente) - WatchService (Java NIO) - Gson (persistencia) ## 💡 Solución Híbrida de Batería La app usa un enfoque inteligente para ahorrar batería: ### **Cuando la app está abierta:** - ⚡ **Polling rápido (10 segundos)** - Movimiento casi instantáneo - 📱 El servicio en primer plano monitorea constantemente ### **Cuando la app está cerrada:** - 🔋 **WorkManager (15 minutos)** - Bajo consumo - 🔄 El sistema ejecuta verificaciones periódicas eficientes - 💤 Respeta el modo Doze y ahorro de batería ### **Ventajas:** - ✅ Movimiento rápido cuando usas la app - ✅ Ahorro de batería cuando está cerrada - ✅ Funciona incluso si cierras la app - ✅ Android no mata el proceso en segundo plano