Initial commit - Folder Redirect App
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user