/** * Ostatni kontekst odtwarzania (in-memory, bieżąca sesja apki). PlayerScreen go zapisuje, * BugReportFAB dokleja do auto-kontekstu zgłoszenia. Dzięki temu playback-bugi ("nie gra", * "audio się rozjeżdża") od razu niosą: które źródło/serwer, host CDN, pozycję i ostatni * błąd, bez dopytywania usera. Reset przy restarcie apki (dotyczy tylko ostatniego odtwarzania). */ export type LastPlayback = { origin?: string; quality?: string; host?: string; positionSec?: number; mode?: string; error?: string; }; let _last: LastPlayback = {}; export function setLastPlayback(patch: LastPlayback): void { _last = { ..._last, ...patch }; } export function getLastPlayback(): LastPlayback { return _last; } /** Jednolinijkowy opis do doklejenia w bug-report (albo '' gdy nic nie grało). */ export function formatLastPlayback(): string { const p = _last; if (!p.origin && !p.host) return ''; const bits = [p.origin || p.host]; if (p.quality) bits.push(p.quality); if (p.mode) bits.push(p.mode); if (p.positionSec != null) bits.push(`@${p.positionSec}s`); if (p.error) bits.push(`err:${p.error.slice(0, 60)}`); return bits.filter(Boolean).join(' '); }