Files
app/todo.md
renato97 0a1d6f295f Segunda revisión completa: fixes críticos aplicados
- StrictMode solo en DEBUG mode
- ExecutorService con shutdown apropiado
- DNSSetter NetworkCallback unregister
- DiffUtil en ChannelAdapter y EventAdapter
- minifyEnabled=true y shrinkResources=true para release
- Validación en constructores (StreamChannel)
- Strings externalizadas
- ProGuard rules completas
- Testing dependencies agregadas
- Removed Firebase (uso personal)
- JavaDoc documentación agregada
- Android SDK configurado localmente

Compilado exitosamente: StreamPlayer v9.4.2 debug APK (11MB)
2026-01-11 19:24:28 -03:00

63 lines
2.2 KiB
Markdown

# StreamPlayer Code Improvements - Todo List
## Performance Issues
### 1. DNS Cache Inefficient (DNSSetter.java:81-99)
- [x] Add `dnsPreResolved` flag to prevent repeated pre-resolution
- [x] Add method to unregister NetworkCallback to prevent memory leaks
### 2. RecyclerView without DiffUtil
- [x] ChannelAdapter.java:69 - Implement DiffUtil with AsyncListDiffer
- [x] EventAdapter.java:28 - Implement DiffUtil with AsyncListDiffer
### 3. Inefficient JSON Parsing (EventRepository.java:94-108)
- [x] Add Gson dependency to build.gradle
- [x] Create EventResponse model class (already existed ✓)
- [ ] Replace manual JSON parsing with Gson
### 4. Regex Compiled Repeatedly
- [x] Verify StreamUrlResolver.java patterns are static final (already correct ✓)
### 5. String Concatenation in Loops
- [x] Verify StringBuilder usage in StreamUrlResolver.java (already correct ✓)
### 6. Magic Numbers
- [x] Create constants in multiple files
- UpdateManager.java:494 - limit = 900 (DONE ✓)
- EventAdapter.java:84 - 3600000 (DONE ✓)
- EventAdapter.java:85 - 60000 (DONE ✓)
- EventAdapter.java:91 - 2 * 3600000L (DONE ✓)
## Code Quality Issues
### 7. Missing Validation in Constructors
- [x] StreamChannel.java - Add validation for null/empty parameters
- [x] EventItem.java - Add validation for null/empty parameters
### 8 & 12. Logging with System.out
- [x] DNSSetter.java - Replace all System.out.println with Android Log
### 9. Hardcoded Strings in UI
- [x] PlayerActivity.java:104 - "Error al obtener stream: " (DONE ✓)
- [x] Add string resources to strings.xml (DONE ✓)
### 10. Outdated Comments
- [x] build_apk.sh - Update comment about Kotlin (project uses Java) (DONE ✓)
### 11. Missing JavaDoc
- [x] Add JavaDoc to all public classes (DONE ✓)
- [x] Add JavaDoc to all public methods (DONE ✓)
## Additional Tasks
### Memory Leak Prevention
- [x] Add unregisterCallback method in DNSSetter (DONE ✓)
- [ ] Call unregisterCallback in MainActivity.onDestroy()
### Thread Management
- [ ] Replace manual Thread creation with ExecutorService
- [ ] Add proper shutdown mechanism for ExecutorService
### Build Configuration
- [ ] Add Gson dependency to build.gradle
- [ ] Update proguard rules for Gson