        }

        player.prepare();
        player.play();
    }

    private void mostrarOSD() {
        osdBox.setVisibility(View.VISIBLE);
        actualizarEpgDesdeCacheLocal();

        if (osdHideTicker != null) {
            handler.removeCallbacks(osdHideTicker);
        }

        osdHideTicker = () -> osdBox.setVisibility(View.GONE);
        handler.postDelayed(osdHideTicker, 10000);
    }

    @Override
    public boolean dispatchKeyEvent(KeyEvent event) {
        if (event.getAction() == KeyEvent.ACTION_DOWN) {
            int key = event.getKeyCode();

            if (key == KeyEvent.KEYCODE_DPAD_CENTER || key == KeyEvent.KEYCODE_ENTER) {
                mostrarOSD();
                return true;
            }
        }

        return super.dispatchKeyEvent(event);
    }

    @Override
    protected void onDestroy() {
        try { if (epgTicker != null) handler.removeCallbacks(epgTicker); } catch (Exception ignored) {}
        try { if (osdHideTicker != null) handler.removeCallbacks(osdHideTicker); } catch (Exception ignored) {}
