- 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)
63 lines
2.2 KiB
Markdown
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 |