- Remove DeviceRegistry.java (dashboard integration)
- Remove VPS IP from build.gradle
- Remove personal Gitea token from UpdateManager
- Add configurable UPDATE_CHECK_URL for updates
- Clean README to be generic and PR-ready
- Clean update manifests
- Remove Docker files and .env from repo
- Enable fadeScrollbars=false in RecyclerView
- Improve visibility of scrollbar
fix: Prevent navigation focus escape at end of list
- Implement custom LinearLayoutManager to intercept focus search
- Block FOCUS_DOWN action at the last item
- Remove legacy OnKeyListener and OnScrollListener
Problemas corregidos:
1. Scroll Listener Corregido (último evento cortado)
- Cambiado de findFirstVisibleItemPosition() a findLastCompletelyVisibleItemPosition()
- Ahora el scroll solo se detiene cuando el último elemento está completamente visible
- Antes: el último evento aparecía solo a la mitad
2. Barra de Scroll Más Visible
- Opacidad aumentada de #4DFFFFFF (30%) a #CCFFFFFF (80%)
- Ancho de barra: 8dp (antes no definido)
- Estilo cambiado de outsideOverlay a insideInset
- scrollbarFadeDuration="0" para siempre visible
- Radio de esquinas: 4dp (antes 2dp)
3. URL Única (eliminar bloqueos de ISP)
- Eliminado sistema de fallback múltiples URLs
- Ahora usa solo: https://streamtp10.com/eventos.json
- Eliminado KEY_WORKING_URL y lógica de fallback
- Código más simple y eficiente
Archivos modificados:
- app/src/main/java/com/streamplayer/EventRepository.java (simplificado)
- app/src/main/java/com/streamplayer/MainActivity.java (scroll fix)
- app/src/main/res/drawable/scrollbar_vertical.xml (más visible)
- app/src/main/res/layout/activity_main.xml (scrollbar config)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Cambios implementados:
1. Botón de Actualización Más Visible (para control remoto)
- Nuevo archivo: btn_refresh_selector.xml con estados de foco
- Color ámbar brillante (#FFC107) cuando está enfocado
- Borde grueso (4dp) para mejor visibilidad
2. Prevención de Navegación Entre Secciones
- Modificado: MainActivity.java showEvents()
- Agregado OnScrollListener que detiene scroll al final de eventos
- Previene paso accidental a sección de canales
3. Barra de Indicador de Scroll
- Nuevo archivo: scrollbar_vertical.xml (drawable)
- Modificado: activity_main.xml con atributos de scrollbar
- Barra visual derecha como indicador de posición
Archivos modificados:
- app/src/main/java/com/streamplayer/MainActivity.java
- app/src/main/res/layout/activity_main.xml
- app/src/main/res/values/colors.xml
Archivos nuevos:
- app/src/main/res/drawable/btn_refresh_selector.xml
- app/src/main/res/drawable/scrollbar_vertical.xml
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Incremented version to 9.4.2 (versionCode: 94200)
- Added custom AlertDialog theme with white text styling
- Enhanced visual consistency for all dialog components
- Improved theme overlay for better readability
- Applied custom styling to update and blocked dialogs
- Better contrast and visual hierarchy in dialogs
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Implement DeviceRegistry for remote device management
- Add dashboard for device tracking and blocking
- Remote device blocking capability with admin control
- Support for device aliasing and notes
- Enhanced device management interface
- Dashboard with real-time device status
- Configurable registry URL in build config
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Implement UpdateManager to check Gitea releases for new versions
- Add update dialogs with mandatory/optional update support
- Integrate DownloadManager for APK downloads
- Add FileProvider configuration for app installation
- Support update-manifest.json for version control enforcement
- Add comprehensive update strings and error handling
- Include gradlew executable permissions
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Android TV Enhancements:
- SectionAdapter.java: New section-based content organization
- Enhanced MainActivity with improved section management
- Optimized ChannelAdapter for better TV navigation
- Modernized activity_main.xml with section layout
- Professional color scheme for Android TV
- Updated strings for better TV experience
New UI Components:
- bg_section_indicator.xml: Visual section indicators
- item_section.xml: Section-based layout structure
- color/**: State-aware colors for TV focus states
- Enhanced focus management for D-pad navigation
Technical Improvements:
- Better memory management with section-based loading
- Improved RecyclerView performance
- Enhanced visual feedback for TV remote control
- Professional color palette optimized for TV screens
- Consistent design language throughout app
All v8.0 features maintained:
- Audio background fix (onStop() lifecycle)
- Real-time events with Argentina timezone
- Alphabetical channel sorting
- DNS bypass for global access
- Tab navigation (Channels/Events)
- Complete Android TV optimization
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Major Features:
- Dual tab interface (Channels and Events) with visible focus
- Real-time event status calculation (Live, Upcoming, Finished)
- Smart caching system for events (24-hour cache)
- Argentina timezone support (America/Argentina/Buenos_Aires)
UI/TV Improvements:
- Focusable tabs with bg_tab_selector for D-pad navigation
- Visual feedback with highlighted borders on focused tabs
- Consistent design between tabs and content cards
- Enhanced TV navigation experience
Real-Time Event System:
- EventRepository: Centralized event management with 24h cache
- EventAdapter: Optimized RecyclerView for event listings
- EventItem: Structured data model for events
- Dynamic status calculation (remaining time, live duration, completion)
- Automatic link normalization to global2.php
Technical Implementation:
- activity_main.xml: Complete dual-tab layout
- item_event.xml: Dedicated event item layout with RecyclerView
- bg_tab_selector.xml: Tab states (selected, focused, pressed)
- MainActivity.java: Tab switching and event management
- Automatic URL processing for seamless PlayerActivity integration
Time Zone Features:
- Argentina local time (America/Argentina/Buenos_Aires)
- Real-time status updates without page refresh
- "En Xh Ym" for upcoming events
- "En vivo durante 2h" status for live events
- "Finalizado" status for completed events
Solutions:
- Fixed web page "En vivo" not updating issue
- Provides always-current event status in app
- Direct event-to-player navigation without manual intervention
- Improved TV navigation with clear visual feedback
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update AndroidManifest.xml for TV compatibility
- Add ChannelAdapter with D-pad navigation support
- Update MainActivity for TV UI optimization
- Add Android TV specific resources:
- banner_streamplayer.xml for TV launcher
- bg_channel_item_selector for focus states
- values-sw720dp for large screens
- integers.xml for TV configurations
- Update item_channel.xml for TV navigation
- Remove unused mobile-specific drawable
Features:
- Android TV Leanback support
- D-pad navigation optimization
- TV-optimized layouts and focus management
- Large screen resources for TV displays
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Major changes:
- Add ChannelAdapter for grid display functionality
- Add ChannelRepository for data management
- Add PlayerActivity for dedicated video playback
- Add StreamChannel model for channel representation
- Update MainActivity to support grid layout
- Update activity_main.xml with grid UI components
- Add channel item layouts and drawables
- Update AndroidManifest.xml with new activity
- Update build.gradle dependencies
This implements the requested "grilla arreglada" functionality with proper channel grid display and management.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>