Files

113 lines
3.7 KiB
Markdown

# 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