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

2.2 KiB

StreamPlayer Code Improvements - Todo List

Performance Issues

1. DNS Cache Inefficient (DNSSetter.java:81-99)

  • Add dnsPreResolved flag to prevent repeated pre-resolution
  • Add method to unregister NetworkCallback to prevent memory leaks

2. RecyclerView without DiffUtil

  • ChannelAdapter.java:69 - Implement DiffUtil with AsyncListDiffer
  • EventAdapter.java:28 - Implement DiffUtil with AsyncListDiffer

3. Inefficient JSON Parsing (EventRepository.java:94-108)

  • Add Gson dependency to build.gradle
  • Create EventResponse model class (already existed ✓)
  • Replace manual JSON parsing with Gson

4. Regex Compiled Repeatedly

  • Verify StreamUrlResolver.java patterns are static final (already correct ✓)

5. String Concatenation in Loops

  • Verify StringBuilder usage in StreamUrlResolver.java (already correct ✓)

6. Magic Numbers

  • 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

  • StreamChannel.java - Add validation for null/empty parameters
  • EventItem.java - Add validation for null/empty parameters

8 & 12. Logging with System.out

  • DNSSetter.java - Replace all System.out.println with Android Log

9. Hardcoded Strings in UI

  • PlayerActivity.java:104 - "Error al obtener stream: " (DONE ✓)
  • Add string resources to strings.xml (DONE ✓)

10. Outdated Comments

  • build_apk.sh - Update comment about Kotlin (project uses Java) (DONE ✓)

11. Missing JavaDoc

  • Add JavaDoc to all public classes (DONE ✓)
  • Add JavaDoc to all public methods (DONE ✓)

Additional Tasks

Memory Leak Prevention

  • 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