Poslední aktualizace: 00:05 31.5.2026
Vylepšení & Opravy
- **Komentáře — hlasové zprávy** — komentářové vstupy v detailu události i nástěnce umí podržením mikrofonu nahrát hlasovou zprávu a zobrazit ji jako přehratelný komentář
- **Offline komentáře** — hlasové komentáře se ukládají do pending fronty, synchronizují se jako multipart upload a pending obrazovka rozlišuje textové a audio komentáře
- **API událostí v2** — události, komentáře a přílohy umí číst nové v2 payloady včetně audio metadat, osob, timestampů a bezpečnějšího mazání změněných událostí
- **Multiplatformní audio** — přidána závislost
record, mikrofonní oprávnění pro Android/iOS a registrace audio pluginů pro desktopové platformy - **Dokumentace** — doplněn postup pro 32bit Linux web kiosk build a související poznámky
- **Testy** — doplněny focused testy pro audio komentáře, v2 event payload a rozlišení offline/server sync chyb
Vylepšení & Opravy
- **Přílohy — úprava existujícího obrázku** — obrázek otevřený z detailu přílohy lze stáhnout do editoru a uložit zpět jako novou přílohu ke stejné události
- **Přílohy — zachování originálu** — úprava existující přílohy nechává původní soubor beze změny a novou kopii pojmenuje podle přihlášeného uživatele, pokud je známý
- **Detail přílohy** — obrazovka detailu obrázku má novou akci pro editaci včetně průběhového stavu a lokalizovaných hlášek pro přípravu/chybu
- **Testy** — doplněny focused testy pro pojmenování upravených kopií včetně bezpečného očištění jména uživatele
Vylepšení & Opravy
- **Přílohy — úprava obrázků před odesláním** — vybrané nebo vyfocené obrázky se dají před nahráním otevřít v editoru, případně odeslat rovnou bez úprav
- **Přílohy — upravené kopie** — při úpravě se nahraje původní obrázek i upravená kopie s příponou
_upraveno, takže originál zůstává zachovaný - **Editor obrázků — nálepky a koláže** — editor nově podporuje zoom, nálepky, základní ikonové vrstvy a vložení dalšího obrázku z galerie jako vrstvy
- **Lokalizace editoru** — doplněny české a anglické texty pro volbu úpravy přílohy a nový sticker/gallery panel
- **Testy** — doplněny focused testy pro název upravené kopie, konfiguraci editoru a dialog volby úpravy obrázku
- Co dál? :D
Celý changelog
Verze 2.14.0 Nové
Vylepšení & Opravy
- **Komentáře — hlasové zprávy** — komentářové vstupy v detailu události i nástěnce umí podržením mikrofonu nahrát hlasovou zprávu a zobrazit ji jako přehratelný komentář
- **Offline komentáře** — hlasové komentáře se ukládají do pending fronty, synchronizují se jako multipart upload a pending obrazovka rozlišuje textové a audio komentáře
- **API událostí v2** — události, komentáře a přílohy umí číst nové v2 payloady včetně audio metadat, osob, timestampů a bezpečnějšího mazání změněných událostí
- **Multiplatformní audio** — přidána závislost
record, mikrofonní oprávnění pro Android/iOS a registrace audio pluginů pro desktopové platformy - **Dokumentace** — doplněn postup pro 32bit Linux web kiosk build a související poznámky
- **Testy** — doplněny focused testy pro audio komentáře, v2 event payload a rozlišení offline/server sync chyb
Verze 2.13.1
Vylepšení & Opravy
- **Přílohy — úprava existujícího obrázku** — obrázek otevřený z detailu přílohy lze stáhnout do editoru a uložit zpět jako novou přílohu ke stejné události
- **Přílohy — zachování originálu** — úprava existující přílohy nechává původní soubor beze změny a novou kopii pojmenuje podle přihlášeného uživatele, pokud je známý
- **Detail přílohy** — obrazovka detailu obrázku má novou akci pro editaci včetně průběhového stavu a lokalizovaných hlášek pro přípravu/chybu
- **Testy** — doplněny focused testy pro pojmenování upravených kopií včetně bezpečného očištění jména uživatele
Verze 2.13.0
Vylepšení & Opravy
- **Přílohy — úprava obrázků před odesláním** — vybrané nebo vyfocené obrázky se dají před nahráním otevřít v editoru, případně odeslat rovnou bez úprav
- **Přílohy — upravené kopie** — při úpravě se nahraje původní obrázek i upravená kopie s příponou
_upraveno, takže originál zůstává zachovaný - **Editor obrázků — nálepky a koláže** — editor nově podporuje zoom, nálepky, základní ikonové vrstvy a vložení dalšího obrázku z galerie jako vrstvy
- **Lokalizace editoru** — doplněny české a anglické texty pro volbu úpravy přílohy a nový sticker/gallery panel
- **Testy** — doplněny focused testy pro název upravené kopie, konfiguraci editoru a dialog volby úpravy obrázku
Verze 2.12.0
Vylepšení & Opravy
- **Přílohy — kreslení obrázků** — zdroj příloh umí založit nový ruční nákres přes editor a nahrát ho k události z detailu události i centrální obrazovky příloh
- **Editor kreslení** — přidán samostatný editor s lokalizovanými texty, exportem do souboru a bezpečným předáním názvu/souboru zpět do upload toku
- **Přílohy — lokalizace zdrojů** — volby fotoaparátu, galerie, videa, kreslení a přiřazení existující přílohy používají nové lokalizační klíče
- **Vybavení — servisní záznamy** — servisní záznamy ukládají technika přes ID osoby, formulář nabízí výběr z táborníků a seznam zobrazuje lokalizované hodnoty záznamů
- **Testy** — doplněny focused testy pro export kreslení, lokalizaci editoru, picker zdroje přílohy a servisní záznam vybavení
Verze 2.11.1
Vylepšení & Opravy
- **Arkádové hry — druhá migrace** — Minesweeper, Sudoku, Planarity a Mapové dlaždice používají sdílený
ArcadeGameScaffolds portrait taby a landscape panelem - **Arkádové hry — landscape ovládání** — sdílený scaffold umí volitelný landscape zoom, Map Tiles/Planarity/Sudoku/Minesweeper mají v landscape víc místa pro hlavní herní plochu a Sudoku má kompaktní boční číselník
- **Nástěnka — filtr původu** — filtr uživatelských/systémových událostí se ukládá do nastavení a po návratu na nástěnku se znovu použije
- **Táborníci — editace hesla** — payload pro úpravu táborníka je testovatelný helper a pole hesla při editaci vidí vedoucí i administrátoři
- **Testy** — doplněny focused testy pro arcade scaffold, tábornické helpery a perzistenci filtru nástěnky
Verze 2.11.0
Vylepšení & Opravy
- **Arkádové hry — společný scaffold** — přidán sdílený
ArcadeGameScaffoldpro herní obrazovky s portrait app barem a landscape bočním panelem - **Arkádové hry — první migrace** — 2048, Snake, Lights Out, Number Rush, Stany a stromy a Color Match používají nový scaffold se zachovanými herními taby, historií, leaderboardem a sync akcemi
- **Landscape režim her** — v landscape zůstává herní plocha viditelná a pravidla, historie i žebříček jsou dostupné přes boční panel; stavové řádky se přesouvají z plochy do kompaktního titulku/panelu
- **Nápověda her** — obsah nápovědy je znovupoužitelný jako
GameHelpContent, takže stejná pravidla fungují v dialogu i v landscape panelu - **Dashboard rychlé akce** — titul a prázdný stav jsou lokalizované a delší popisky tlačítek se vejdou bez rozbití mřížky
- **Testy** — doplněny testy pro nový arcade scaffold a dashboard quick actions
Verze 2.10.2
Vylepšení & Opravy
- **Multiplayer — odesílání tahů** — opakované odeslání tahu se při čekání na server ignoruje a herní plocha je během odesílání zablokovaná s lokalizovaným stavem
- **Battleship setup** — potvrzení rozmístění lodí má ochranu proti dvojitému odeslání a během submitu vypíná undo, změnu orientace i další pokládání lodí
- **Průzkumník světa** — spodní statistiky jsou přesunuté do samostatného widgetu s lokalizovanými popisky a testovaným formátováním kroků/plochy
- **Lokalizace** — doplněny české a anglické texty pro stav odesílání multiplayer tahu, Battleship setup a statistiky Průzkumníka světa
- **Testy** — doplněny regresní testy pro blokování herních akcí při submitu a testy pro world explorer stats bar/formátování
Verze 2.10.1
Vylepšení & Opravy
- **Nastavení — rozdělení obrazovky** — vzhled, jazyk, rok tábora, notifikace, rychlé akce, QR volby, údržba dat, server a informace o aplikaci jsou přesunuté do samostatných widgetů
- **Nastavení — lokalizace** — doplněny české a anglické texty pro další části nastavení včetně dialogů, snackbarů a stavů notifikačních oprávnění
- **Nastavení — helpery** — stav oprávnění notifikací, úprava notifikačních preferencí a položky rychlých akcí používají menší testované helpery
- **Průzkumník světa** — chybový stav oprávnění, upozornění na GPS na pozadí a položky statistik jsou vytažené do samostatných widgetů s lokalizovanými popisky
- **Testy** — doplněny cílené widget/helper/lokalizační testy pro nové settings a world explorer komponenty
Verze 2.10.0
Vylepšení & Opravy
- **Lokalizace aplikace** — přidán základ Flutter
gen-l10n, české a anglické ARB soubory, generované lokalizační třídy a napojení lokalizací doMaterialApp.router - **Nastavení jazyka** — v nastavení je nová volba jazyka aplikace se systémovou, českou a anglickou možností, uložená přes
SettingsServiceaSettingsProvider - **Rychlé akce** — popisky dashboardových rychlých akcí a jejich nastavení používají sdílené definice a lokalizované texty bez změny stabilních uložených klíčů
- **Detail události a přílohy** — oprávnění detailu události a dohledání náhledu přílohy jsou přesunuté do menších testovaných helperů
- **Testy** — doplněny cílené testy pro lokalizaci, jazyk nastavení, rychlé akce, oprávnění detailu události a cache URL příloh
Verze 2.9.9
Vylepšení & Opravy
- **Dashboard — rozdělení obrazovky** — horní akce, obsah seznamu, stavové bannery, poslední synchronizace, logout dialog, dialog změny uživatele a update download sheet jsou přesunuté do samostatných widgetů
- **Dashboard — helpery** — serverová konfigurace rychlých akcí/her a výběr událostí pro načítání reakcí jsou přesunuté do testovaných helperů
- **Detail události** — app bar akce a hlavní obsah načteného detailu jsou samostatné widgety se zachovanými callbacky a provider logikou v obrazovce
- **Pending změny** — karty pending událostí, táborníků, komentářů a příloh plus sdílené status/empty-state widgety jsou vytažené do
lib/widgets/pending_changes/ - **Testy** — doplněny cílené widget/helper testy pro dashboard, detail události a pending changes komponenty
Verze 2.9.8
Vylepšení & Opravy
- **Anagram — diakritika** — slova s rozloženými českými diakritickými znaky se před rozdělením na písmena normalizují, takže např.
Důrazfunguje stejně jakoDůraz - **Multiplayer — vytvoření hry** — dialog pro založení multiplayer hry je přesunutý do samostatného widgetu včetně voleb hry, výběru soupeře a federovaných soupeřů
- **Multiplayer — federace** — payload pro známé i vyhledané vzdálené hráče je přesunutý do testovaného helperu
- **Stopky — české texty** — opraveny poškozené české popisky ve stopkových ovládacích prvcích a seznamu účastníků závodu
- **Testy** — doplněny testy pro Anagram diakritiku, federované soupeře a vytvoření multiplayer hry
Verze 2.9.7
Vylepšení & Opravy
- **Multiplayer — seznam her** — pozvánky, filtrovací lišta, karta session, výběr soupeře a volby při zakládání hry jsou vytažené do samostatných widgetů se zachovanými callbacky, navigací a stavem obrazovky
- **Multiplayer — helpery** — filtrování sessions, rozhodnutí o Battleship setup navigaci a prezentace názvů/ikon/stavů her jsou přesunuté do testovaných helperů
- **Stopky — výsledky a časomíra** — timer display, race controls, badge pořadí a řádky mezičasů/pokusů jsou samostatné widgety
- **Stopky — výsledkové souhrny** — vyhodnocení nejlepších pokusů a výběr závodních účastníků používají samostatné testované helpery
- **Testy** — doplněny widget/pure testy pro nové multiplayer a stopwatch komponenty
Verze 2.9.6
Vylepšení & Opravy
- **Stopky — měřicí obrazovka** — seznam mezičasů, standardní ovládací tlačítka a seznam účastníků závodu jsou vytažené do samostatných widgetů se zachovaným chováním měření
- **Stopky — výběr táborníků** — filtrování táborníků, iniciály avatarů a výchozí vybraný táborník jsou přesunuté do testovaných helperů
- **Data a události** — filtrování událostí podle roku, párování události s osobou a obecné hledání první shody používají samostatné testované helpery
- **Synchronizace** — kontrola zastaralosti sync dat a upload pending příloh jsou vytažené do samostatných helperů
- **Pending změny** — viditelnost pending položek používá sdílený helper místo lokální logiky
- **Testy** — doplněny cílené testy pro nové helpery a stopwatch widgety
Verze 2.9.5
Vylepšení & Opravy
- **Pending položky — factory helpery** — vytváření pending táborníků, událostí a QR skenů je přesunuté do samostatných testovaných helperů; zachováno trimování polí, timestampy i API JSON pro QR skeny
- **Synchronizace — výběr položek** —
SyncServicepoužívá sdílený helper pro určení, které pending/error položky se mají znovu synchronizovat - **Pending přílohy — cleanup souborů** — mazání lokální kopie pending přílohy při odstranění z fronty je přesunuté do async helperu
- **Komentáře ve feedu** — odesílání pending komentáře používá sdílený helper se zachovaným offline uložením, syncem podle vybraného roku a obnovou karty události
- **Testy** — doplněny cílené testy pro pending factory helpery, sync filtr a mazání lokálních pending příloh
Verze 2.9.4
Vylepšení & Opravy
- **Dashboard a nastavení roku** — obnovení karmy a změna vybraného roku jsou přesunuté do testovaných helperů; po změně roku se spouští sync a aktualizují se detail uživatele, historie i dashboard
- **Události — seznam a offline fallback** — seznam událostí používá menší service wrapper pro auth/API/reaction data a offline fallback řadí lokální události deterministicky od nejnovějších
- **Komentáře a přílohy událostí** — ukládání pending komentářů a frontování pending příloh je vytažené do samostatných testovaných helperů se zachovaným sync/offline chováním
- **Pending změny** — prezentace stavu pending položek používá sdílený helper pro ikonu, barvu a text, místo opakované logiky v obrazovce
- **Testy** — doplněny cílené testy pro dashboard refresh, komentáře, pending přílohy, offline řazení událostí, pending status prezentaci a změnu vybraného roku
Verze 2.9.3
Vylepšení & Opravy
- **Detail události — offline fallback** — výběr lokální/current události při výpadku detailu je přesunutý do testovaného helperu a obrazovka používá menší
EventDetailServicepro auth, reakce, úpravy, mazání, přílohy a uploady - **Přílohy a vybavení — datové služby** — obrazovka příloh a detail vybavení používají tenké service wrappery pro API/cache/auth volání; UI, dialogy, navigace a offline chování zůstávají na obrazovkách
- **Vybavení — servisní záznamy** — přidání servisního záznamu v detailu vybavení nově správně označí obrazovku jako změněnou před obnovou dat
- **Arkádové hry — výsledkový dialog** — Lights Out, Planarity a Stany/Stromy používají společný dialog pro skóre, čas/tahy a stav synchronizace výsledku
- **Arkádové hry — leaderboardy** — volitelný přepínač variant zůstává viditelný i při načítání, prázdném žebříčku nebo chybě načtení
- **Testy** — doplněny cílené testy pro fallback detailu události, stav synchronizace arcade výsledku a viditelnost hlavičky leaderboardu ve všech stavech
Verze 2.9.2
Vylepšení & Opravy
- **Arkádové hry — interní ID her** — 2048, Color Match, CPS, Flappy, Lights Out, Minesweeper, Snake a Stany/Stromy používají lokální
_gameIdkonstanty pro historii, leaderboardy, ukládání rozehraných her, nápovědu a synchronizaci výsledků - **Arkádové hry — údržba kódu** — odstraněny opakované literály herních ID bez změny herních ploch, časovačů, skórování, metadata klíčů nebo viditelných popisků
Verze 2.9.1
Vylepšení & Opravy
- **Arkádové hry — výběr variant** — sdílený
ArcadeVariantChoicesjednocuje volby obtížnosti/režimu napříč arkádami a nahrazuje lokální variant option třídy - **Arkádové hry — leaderboardy** — Anagram, Slovní loterie, Simon Says, Flappy, Color Match, Minesweeper a Stany/Stromy používají společný přepínač variant v leaderboardu a oddělují vybranou herní variantu od varianty zobrazeného žebříčku
- **Arkádové hry — rozehrané hry** — pokračování nebo zahození uložené hry používá společný handler; hry nově kontrolují uložené varianty napříč všemi podporovanými obtížnostmi a po zahození správně nastaví odpovídající variantu
- **Arkádové hry — start bez dialogů** — Flappy, Color Match, Minesweeper a Stany/Stromy nahrazují blokující výběr obtížnosti inline start panelem stejně jako ostatní arkádové hry
Verze 2.9.0
Nové funkce
- **Arkádové hry — uložené rozehrané hry** — 2048, Snake, Sudoku, Lights Out a Number Rush mají úvodní panel a navazují na sdílený dialog pro pokračování v rozehrané hře; Wordle a Mapové dlaždice používají stejný resume dialog jako ostatní arkády
- **Události — filtrování původu** — přidány filtry původu událostí pro přehlednější práci se seznamy a kartami událostí
Vylepšení & Opravy
- **Velký refaktor startu aplikace** — bootstrap, registr providerů, service graph, navigace, deep linky a push notifikace jsou rozdělené do menších modulů s testy pro auth lifecycle, deep link parsing a navigaci z herních notifikací
- **Dashboard, události a přílohy** — hlavní obrazovka, detail události, feed a práce s přílohami jsou rozdělené do znovupoužitelných widgetů a helperů; zachováno offline chování, uploady i chráněné media URL
- **Arkádové hry — sdílené UI** — skóre, leaderboardy, historie, synchronizační stav, výběr variant a dialogy rozehraných her používají společné komponenty napříč hrami; sjednoceno chování a odstraněna duplicitní logika
- **Multiplayer a stopky** — herní plocha, chat, pravidla, stavové bannery, taby a stopwatch picker/leaderboard komponenty jsou extrahované do samostatných widgetů pro jednodušší údržbu
- **Vybavení a osoby** — detail vybavení a detail osoby používají menší karty/tably pro servis, zápůjčky, přílohy, profil, historii událostí a karmu
- **Wordle** — lepší zpracování diakritiky ve slovních kontrolách a doplněné testy herní logiky
- **Průzkumník** — nastavení a provider mají doplněné bezpečnější zacházení se sdílením polohy a stavem obrazovky
Verze 2.8.0
Nové funkce
- **Kompas** — nový modul
/home/compasss animovaným kompasem, GPS souřadnicemi, výškou, indikací přesnosti GPS a volitelným zobrazením sdílených uživatelů z Průzkumníku přímo na růžici; dostupný jako rychlá akce na dashboardu a v nastavení rychlých akcí - **Kompas — nastavení** — nová obrazovka
/home/compass/settingspro zapnutí/vypnutí vodováhy, GPS údajů, satelitního signálu a uživatelů z Průzkumníku; volby se ukládají do SharedPreferences - **Stopky — závodní režim** — disciplínu lze založit jako závod, vybrat více účastníků, odstartovat společně a postupně zapisovat doběhy jednotlivých táborníků; výsledky se ukládají jednotlivě a používají stejnou offline synchronizaci jako běžné měření
- **Stopky — mezičasy** — běžný režim měření podporuje tlačítko „Kolo“, zobrazení mezičasů během měření a rozpad mezičasů ve výsledcích
Vylepšení & Opravy
- **Stopky — účastníci a avatary** — výběr táborníků v závodním režimu podporuje multiselect, vybrat vše / odznačit vše a vyhledávání; měření umí zobrazovat profilové fotky táborníků přes chráněné media URL s auth tokenem
- **Stopky — synchronizace** — pending výsledky stopek se nově zahrnují do
SyncService.syncAll()i do nativního background syncu; sync loguje počet čekajících výsledků a chyby jednotlivých odeslání - **Stopky — lokální modely** —
StopwatchEventukládá příznak závodního režimu a seznam účastníků;StopwatchResultukládá mezičasy (lapTimes); doplněny Hive adaptéry pro zpětně kompatibilní čtení starších záznamů - **Závislosti** — přidáno
sensors_pluspro akcelerometr a barometr používané kompasem/vodováhou
Verze 2.7.0
Nové funkce
- **Stopky** — nový modul pro časomíru závodů a aktivit; správa událostí (StopwatchListScreen), měření času s offline zápisem výsledků (StopwatchTimingScreen); výsledky se synchronizují se serverem (
POST /api/v2/stopwatch/results); rychlá akce na dashboardu; viditelnost v nastavení rychlých akcí - **Průzkumník — Cestovatel** — sekce „Cestovatel" ve statistikách zobrazuje státy světa s vlajkami a procentem prozkoumání; všechny geo-úrovně jako samostatné sekce; zobrazují se jen navštívené regiony
- **Průzkumník — vrstva ortofoto** — přepínání mezi mapou OSM a ortofoto snímkem
Vylepšení & Opravy
- **Průzkumník — oprava dispose** —
context.read<WorldExplorerProvider>()vedispose()způsobovalo „markNeedsBuild called when tree was locked"; opraveno přes_explorerProvideruložený vdidChangeDependencies+addPostFrameCallback - **h3_core migrace** — migrace
h3_flutter→h3_corepro podporu dart2wasm (WASM web build); oprava Android cross-compilation z Windows (chybějící-lmlinker flag)
Verze 2.6.0
Nové funkce
- **Průzkumník světa — Fáze 3** — kompletní rozšíření GPS hex-mapového modulu: skóre a leaderboard (
/api/v2/explorer/score,/api/v2/explorer/leaderboard), postup v regionech, krokoměr (pedometer) počítá kroky při průzkumu každé buňky, kompas zobrazuje orientaci na mapě - **Záznamy revisitů** — opakované návštěvy prozkoumané buňky se sledují a synchronizují se serverem (
/api/v2/explorer/revisits/sync); nový modelCellRevisit - **Sdílení polohy** — živé sdílení GPS pozice s ostatními uživateli; přehled odchozích i příchozích sdílení (
/api/v2/explorer/sharing/*) - **Android foreground service** —
ExplorerForegroundServicezajišťuje nepřetržité sledování GPS na pozadí i při zamčeném telefonu; notifikace s tlačítkem „Zastavit" - **Nastavení Průzkumníku** — nová obrazovka (
WorldExplorerSettingsScreen) s nastavením záznamu trasy (zapnout/vypnout, interval 10 s / 30 s / 1 min / 5 min), průhlednosti hexagonů a oprávnění GPS - **Statistiky Průzkumníku** — nová obrazovka (
WorldExplorerStatsScreen) se skóre, počtem buněk, kroky, přehledem regionů a leaderboardem - **Záznam trasy** — periodický záznam GPS bodů s konfigurovatelným intervalem; body se zobrazují na mapě jako linie
- **Offline cache dlaždic** —
CachedTileProviderukládá mapové dlaždice lokálně pro použití bez připojení
Vylepšení
- **Explorer API** —
fetchExplorerCellsrozšířeno o parametrsincepro inkrementální synchronizaci a vracíserverTime;syncExplorerCellsnově vrací počtyaccepted/rejected/teleport - **Admin přehled** — admin může přepnout zobrazení na všechny uživatele;
AuthProvidernově vystavujegroupIda getterisAdmin - **Průhlednost hexagonů** — nastavitelná průhlednost (0–100 %) s persistencí do SharedPreferences
- **Rychlá akce** — zkrácení popisku „Průzkumník" → „Průzkum" pro lepší zobrazení v mřížce rychlých akcí
Verze 2.5.0
Nové funkce
- **Anagram** — nová arkádová hra; složte slovo z přeházených písmen; podpora Slovo dne a vlastního výběru délky; leaderboard
- **Editace servisních záznamů** — servisní záznamy lze nyní upravovat přes popup menu (Upravit / Smazat) v detailu vybavení; formulář předvyplní stávající hodnoty
Vylepšení
- **Servisní záznamy — nová pole** — přidáno pole Natankované litry (zobrazuje se jen u typu „Tankování"), Stav tachometru (km) a jméno/příjmení technika; pole se zobrazují v přehledu záznamu
- **Oprava
_changedpři smazání záznamu** — nadřazená obrazovka správně detekuje změnu a načte aktuální data i po smazání záznamu
Verze 2.4.1
Interní
- **CLAUDE.md — workflow a principy** — doplněny sekce Workflow Orchestration, Task Management a Core Principles pro lepší řízení AI asistenta při vývoji
Verze 2.4.0
Nové funkce
- **Simon Says** — nová arkádová hra; zapamatuj si a zopakuj stále delší sekvenci barevných tlačítek; 3 obtížnosti (Začátečník / Pokročilý / Expert); Expert má 6 barev a vyšší rychlost; zvukový doprovod (generované tóny); scoreboard
- **Planarity — varianta Extrémní** — 20 uzlů s náhodnou rekurzivní triangulací (bez dominantního hubu), výrazně těžší na rozmotan než Fan triangulace
Vylepšení
- **Inline selektor variant (Planarity + Mapové dlaždice)** — výběr obtížnosti se zobrazuje přímo v záložce "Hra" místo blokujícího AlertDialogu; selektor se zobrazí při startu i po volbě "Nová hra"
- **Mapové dlaždice — Valašsko** — přidána skupina měst (Vsetín, Hovězí, Huslenky, Halenkov, Valašské Karlovice, Zděchov); dlaždice se nyní centrují na zvolené město s náhodným posunem ±1 pro variabilitu
- **Slovní loterie — klikací písmena** — písmena v herní ploše jsou teď tlačítka; klepnutím se písmeno přidá do vstupního pole; nové tlačítko Backspace pro mazání posledního písmene; hint text upraven
- **Sudoku — ukládání nápověd** — stav
hintsEnabledse nyní ukládá do save-state spolu s pohyby a chybami
Verze 2.3.5
Opravy
- **Viditelnost her — reset při chybějícím
gamesobjektu** — když/api/menevrátí klíčgames(nebo vrátínull), zapíše se prázdná mapa → všechny hry se zobrazí; dříve zůstával starý persisted stav a skryté hry zůstávaly skryté navždy
Verze 2.3.4
Nové funkce
- **Serverem řízená viditelnost her** —
/api/mevrací volitelný objektgamess klíči herních ID a hodnotou"visible"/"hidden"; hra bez klíče je ve výchozím stavu viditelná (fallback); konfigurace se persistuje do SharedPreferences a aplikuje na seznam her v reálném čase - **Datově řízený seznam her** —
GamesListScreenpřestavěn na statický_allGamesseznam sidklíči; sekce se generují dynamicky, takže zmizí i hlavička, pokud jsou všechny hry v sekci skryté
Verze 2.3.3
Nové funkce
- **Hlášení nevhodného slova** — hráč může nahlásit nevhodné/chybné slovo v Hangmanovi i Wordle; tlačítko „Nahlásit slovo" dostupné v dialogu výsledku i v AppBaru po skončení hry; dialog s výběrem důvodu (vulgarita, překlep, nesrozumitelné, jiné) a volitelnou poznámkou
- **API endpoint
/api/v2/words/report** — novýApiConfig.wordsReport+ metodaApiService.reportWord()pro odeslání hlášení na server
Verze 2.3.2
Opravy
- **Wordle / Hangman — délka slova dne** —
getDailyWordnepředávalo serverumin_length/max_length; server vracel libovolně krátká slova (např. „AR"); nyní se posílá správný rozsah délky (Wordle: 5–5, Hangman: dle varianty)
Verze 2.3.1
Opravy
- **Slovní hry — filtrování slov** — API endpointy
/words/poola/words/dailynově přijímají parametrpos; klient posílápos=nounpro Hangman i Wordle → server vrací jen podstatná jména v 1. pádě jednotného čísla (slovníkový tvar), bez vulgarit - **Cache denního slova** — cache key rozšířen o
pos, aby různé filtrové režimy nekolidovaly
Verze 2.3.0
Nové funkce
- **Sudoku** — nová logická hra s generátorem a validátorem; tři obtížnosti; route
/home/games/sudoku - **Šibenice (Hangman)** — nová slovní hra s načítáním slov ze serveru; variabilní délka slov; daily challenge; route
/home/games/hangman - **WordPoolService** — sdílená služba pro správu lokálního poolu slov; stahuje pool ze serveru na pozadí, cachuje do SharedPreferences; fallback na vestavěný seznam při offline
- **Serverové slovo dne** — Wordle i Hangman stahují denní slovo z
/api/v2/words/daily; cachuje se lokálně do půlnoci
Verze 2.2.4
Opravy
- **Web push — iOS Safari** — FCM se na webu neinicializuje automaticky (Safari vyžaduje user gesture); povolení se vyžádá až přes UI tlačítko; je-li uživatel odmítl, zobrazí se návod místo otevření nastavení OS
- **Web push — polling jako záloha** —
GameProvidera_GameChatTabpollují i na webu (FCMonMessagenení na Safari PWA spolehlivý); interval 60 s pro provider, 5 s pro chat - **Chat badge** — unread počítadlo se zvyšuje jen když chat záložka není aktivní; jinak se rovnou scrolluje na konec a označí jako přečtené
- **Klik na web notifikaci** —
notificationclickhandler v service workeru přesměruje na/home/games/multiplayer/{sessionId}nebo seznam her u pozvánky; fokusuje existující okno nebo otevírá nové - **Mapové dlaždice** — rotace je kumulativní (
rotations[i]++),isWontestujer % 4 == 0; předchozí logika způsobovala chybu při rychlém klikání (overflow z modulo race)
Refaktoring
- **PushNotificationService** —
_setupListeners()a_fetchAndRegisterToken()extrahovány jako metody;reRegisterTokenpřidává guard_initialized
Verze 2.2.0
Nové funkce
- **Mapové dlaždice** — nová arkádová hra: složi mapu z otočených dílků; výběr podkladu OSM nebo ortofoto; skóre = počet dlaždic × 2000 / čas; route
/home/games/map-tiles - **Obrázky na webu s JWT** —
ApiConfig.mediaUrl()přidává token jako query parametr?token=...pro cesty/media/; prohlížeč tak může načíst chráněné obrázky přes<img>tag (který Authorization hlavičku nepodporuje) - **In-memory cache tokenu** —
ApiConfig._webTokencachuje JWT pro rychlý přístup bez async čtení ze SecureStorage; aktualizuje se přisaveTokensaclearTokens
Refaktoring
- **Auth token ve widgetech** — všechny obrazovky a widgety přešly z
Map<String, String> _authHeadersnaString? _authToken; hlavičky se sestavují on-demand přes getter - **PersonDetailScreen, PersonsListScreen** — převedeny ze
StatelessWidgetnaStatefulWidgetpro načítání auth tokenu
Verze 2.1.0
Nové funkce
- **In-app aktualizace pro Windows a Linux** — stažení a spuštění instalátoru přímo z aplikace (MSIX/ZIP pro Windows, DEB/AppImage pro Linux);
version.jsonpodporuje klíčewindows_msix,windows_zip,linux_deb,linux_appimage
Verze 2.0.0
Architektura
- **go_router** — migrace na
go_router ^14.0.0; všechny obrazovky mají vlastní URL cestu (/home/events,/home/persons/:id,/home/settings, …) - **Web URL routing** — refresh stránky v prohlížeči zůstane na správné obrazovce; deep linky fungují přímo
- **Centralizovaný router** — nový
lib/router.dartsGoRouter; redirect logika pro nepřihlášeného uživatele a nekonfigurovaný server - **Inicializace před runApp** —
checkAuthStatusse volá před spuštěním aplikace; žádný loading spinner na startu - **Auth lifecycle** — spouštění/zastavování služeb (notifikace, push, update, hry) se děje přes
authProvider.addListenermísto v jednotlivých obrazovkách - **ConnectivityProvider v dashboardu** — online/offline přechod spouští sync automaticky
Verze 1.9.6
Závislosti
- **Upgrade balíčků** —
connectivity_plus7.1.1,device_info_plus12.4.0,package_info_plus9.0.1,path_provider_android2.3.1,image_picker_android0.8.13+16
Verze 1.9.5
Nové funkce
- **Přílohy — více rozlišení** — model
AttachmentaEventAttachmentnově obsahujeurlMediumaurlLarge; detail obrázku používáurlLarge, thumbnail v nástěnce a feeduurlMedium(lepší kvalita)
Opravy
- **Web push notifikace (Safari PWA)** —
requestPermission()přesunuto dowindow.tabisRequestNotificationPermissiondefinované vindex.html(čistý JS kontext); Safari tak správně rozpozná user gesture i z Flutter/WASM - **Firebase web token** —
getToken()nyní předávávapidKeypro webovou platformu - **Hive** — registrovány adaptéry pro
ArcadeGameResultaArcadeSavedGame
Verze 1.9.2
Opravy
- **Kontrola verze** — primárně se načítá z
tabis-app.seru.cz/download/version.json; pokud není dostupné, záloha na/app/version.jsonaktuálního serveru
Verze 1.9.1
Opravy
- **APK po aktualizaci** — smazání staženého APK přesunuto do
didChangeAppLifecycleState(resume); původní mazání ihned poOpenFilex.open()způsobovalo chybu instalace, protože PackageInstaller ještě nestačil soubor přečíst
Verze 1.9.0
Nové funkce
- **Server quick actions** — server může vynucovat/povolovat/zakazovat rychlé akce na dashboardu; povinné akce jsou označeny a nelze je v nastavení vypnout
- **Build script parametry** —
build_release.ps1nově podporuje přepínače-Android,-Windows,-Webpro selektivní sestavení jen vybraných platforem
Opravy
- **Web push notifikace (Safari)** — opraveno povolování notifikací v Safari PWA pomocí přímého JS interop (
Notification.requestPermission()bez async vrstvy Firebase) - Stav
provisionalnotifikací správně vyhodnocen jako povoleno (ne jako zamítnuto) - Lokace:
unableToDeterminea výjimky v GPS správně nastavují banner "lokace nedostupná" User-Agentheader odesílán jen na nativních platformách, web používáX-Client-Info- Google Sign-In tlačítko má fixní šířku 240px (správné zobrazení na webu)
- Výchozí quick actions po prvním spuštění:
qr_gamesmístoattachments
Verze 1.8.3
Nové hry
- **Slovní losování** — nová arkádová hra: z náhodných písmen (7, 9 nebo 12) skládej česká slova, server validuje platnost, bodování dle délky slova (3 pím. = 1 bod, 4 = 2 body, …)
Opravy
- Po otevření stažené aktualizace se soubor automaticky smaže (nezanechává zbytečné APK v úložišti)
- Web build bez
--base-href(správné hostování v rootu) - Přidán
X-Client-Infoheader pro web požadavky
Verze 1.8.2
Opravy
- URL pro stahování release souborů přesměrováno na tabis-app.seru.cz/download
- Přidán samostatný build script pro Linux (release_linux.sh)
- pubspec.lock vyřazen z gitu (různé verze Flutter SDK na různých strojích)
- Web build v PS1 skriptu bez --base-href (hostování v rootu)
Verze 1.8.1
Opravy
- Hledání min: zoom mřížky přepsán správně (SizedBox.expand + constrained:false + LayoutBuilder), zoom se resetuje při otočení telefonu
- Lodní bitva landscape: desky vedle sebe nyní správně scrollují, layout stabilnější
- Stažení aktualizace: spodní padding pod navigační lištou opraven ručně přes viewPadding
Verze 1.8.0
Web Push (PWA)
- Push notifikace nyní fungují i ve webové verzi aplikace (Flutter Web / PWA)
- Na iOS stačí přidat TabIS na plochu jako PWA (iOS 16.4+) — notifikace o tazích, pozvánkách a výsledcích her chodí stejně jako na Androidu
- Přidán VAPID klíč pro Web Push do Firebase konfigurace
- Nový Service Worker (
firebase-messaging-sw.js) zpracovává push notifikace na pozadí v prohlížeči - Server registruje web tokeny s
platform=web— stejné FCM API jako Android
Verze 1.7.1
Opravy
- Vyskakovací okna (bottom sheety) se již nevykreslují pod systémovou navigační lištou na novějších Androidech
Verze 1.7.0
Federace — hry přes více serverů
- Nový typ soupeře "Jiný server" v dialogu vytvoření hry
- Výběr serveru + vyhledávání hráčů na vzdáleném serveru
- Seznam dříve hraných protivníků z jiných serverů (rychlá volba)
- Ikona globusu na kartě hry s federovaným hráčem
- Modely
FederationServer,RemotePlayer,KnownRemotePlayer
Lodní bitva — landscape mód
- Otočením telefonu do landscape se zobrazí útočná a vlastní deska vedle sebe (side-by-side)
- Imerzivní mód v landscape (skryje systémové UI)
QR Stopovaná
- Přesunuta do vlastní obrazovky; seznam her v hlavní nabídce je zjednodušen
Hledání min
- Mřížka v landscape vyplní celou dostupnou plochu místo zachování poměru stran
Chat — chytřejší polling
- Chat se přihlásí jako push listener; polling (každých 5 s) se spustí jen jako záloha pokud push notifikace nejsou aktivní
Push notifikace
- FCM token se automaticky znovu zaregistruje po přihlášení nebo přepnutí účtu
Přihlašovací obrazovka
- „To nejsem já" nyní přejde na výběr serveru místo přepnutí do plného formuláře
Výběr serveru
- Zobrazí se tlačítko Zpět pokud je obrazovka navigovatelná (otevřena z přihlášení)
Název hry
- Piškvorky a dáma zobrazují variantu (velikost, počet k výhře) v titulku obrazovky
Pravidla her
- Přidána pravidla pro Reversi a Mezinárodní dámu (10×10)
- Česká dáma oddělena od Mezinárodní dámy s vlastním textem pravidel
Verze 1.6.0
Výběr serveru
- Nová obrazovka výběru serveru zobrazí se při prvním spuštění aplikace
- Seznam serverů se načítá dynamicky ze
servers.json(fallback na hardcoded seznam) - Podpora vlastní URL serveru (ruční zadání)
- Po odhlášení nebo ze Nastavení lze server kdykoli změnit
- Indikátor aktuálního serveru na přihlašovací obrazovce
Hledání min — landscape mód
- Otočením telefonu do landscape se skryje AppBar a aktivuje imerzivní mód
- Kompaktní info bar zobrazuje počet min, čas a odkryté buňky
- Mřížka je zoomovatelná (pinch-to-zoom, až 5×) přes
InteractiveViewer
Hledání min — touch select
- První klepnutí na buňku ji zvýrazní žlutě (výběr)
- Druhé klepnutí buňku skutečně otevře — zabraňuje náhodným tahům na dotykovém displeji
Oprava build skriptu
- Opravena URL v
version.json:/downloads→/download
Verze 1.5.0
Chat v herní obrazovce
- Herní obrazovka má nově 3 záložky: Hra, Chat, Pravidla
- Chat zobrazuje zprávy v reálném čase s odesíláním nových zpráv
- Badge s počtem nepřečtených zpráv na záložce Chat
- Push notifikace typu
game_chatzvýší unread badge bez refreshe hry
Pravidla her
- Přidána pravidla a popis ovládání pro: Šachy, Piškvorky, Lodní bitvu, Dámu
Oprava: pozvánka ke hře
- Pozvaný hráč vidí v herní obrazovce tlačítka Přijmout / Odmítnout
- Dříve oba hráči viděli "Čeká na přijetí soupeřem…" a hra uvízla v deadlocku
Verze 1.4.0
In-app aktualizace (Android)
- Stahování APK přímo v aplikaci s progress barem a možností zrušení
- Výběr APK dle ABI zařízení (arm64-v8a, x86_64, …) ze
version.json - Bottom sheet pro volbu: stáhnout v aplikaci nebo otevřít v prohlížeči
- Po stažení se automaticky spustí systémový instalátor
- Přidán příznak
ENABLE_SELF_UPDATE— pro Google Play buildy nastav nafalse - Build skript generuje
downloadsobjekt s per-ABI URL vversion.json
Notifikace → navigace do hry
- Klepnutí na FCM push notifikaci (na pozadí i po ukončení) otevře herní session
- Klepnutí na herní notifikaci v notifikačním centru naviguje přímo do hry
- Pending navigace — pokud app ještě není připravena, navigace proběhne po přihlášení
Dáma — vícenásobné skoky
- Nový chain systém: figury i skoky tvoří řetězec políček
- Tah se odesílá ve formátu
32-28-15(libovolný počet skoků) - Zelené zvýraznění vybrané figury, žluté zvýraznění meziskoků
- Opraveno zobrazení dámek: ♕/♛ místo ♔/♚
- Opravena detekce prefixu barvy (case-insensitive)
- Platí pro mezinárodní (10×10) i českou (8×8) dámu
Notifikace — herní typy
- Ikony a barvy (teal) pro typy:
game_invitation,game_move,game_over,game_abandoned,game_setup_ready - Gettery
isGameNotificationagameSessionIdna modeluAppNotification - Opraven
eventId— pro herní notifikace serefIdnepovažuje za event ID
Verze 1.3.4
Šachy
- Kroužek zvýrazňuje bitelné soupeřovy figurky při výběru vlastní figurky
- Dialog výběru figurky při promoci zobrazuje název figurky pod symbolem (Wrap místo Row)
- Legální tahy vyžadují data ze serveru — bez nich se indikátory nezobrazí
Lodě (Battleship)
- Opravena priorita vykreslování buněk: potopená loď má přednost před zásahem a minutím
- Po tahu se session automaticky refreshne pokud server nevrátil aktualizovaný stav desky
Multiplayer
- Herní obrazovka se refreshuje při návratu aplikace do popředí
- Po tahu bota se správně nastaví
currentTurnPersonIdabIsMyTurn sMyBoardStateasOpponentBoardStatese propagují ze serverové odpovědi na tah- Výběr protihráče při zakládání hry zobrazuje celé jméno (
fullName)
Obecné
- Opravy pro Windows:
app_linksaconnectivity_plusjsou přeskočeny (nepodporují Windows)
Verze 1.3.3
Šachy
- Zobrazení legálních tahů na desce (tečky na dostupných polích)
- Zvýraznění krále červeně při šachu + SnackBar upozornění
- Dialog pro výběr figurky při promoce pěšce
- Přidána pole
inCheck,sanMove,legalMovesz odpovědi serveru
Česká dáma (`dama_czech`)
- Nový herní typ — 8×8 deska, políčka 1–32 dle české notace
- Dostupná v seznamu her i při vytváření nové hry
Piškvorky
- Konfigurovatelná velikost desky při vytváření hry (10 / 13 / 15 / 19)
- Konfigurovatelný počet kamenů v řadě pro výhru (3 / 4 / 5)
- Dynamický grid reaguje na libovolnou velikost ze serveru
Notifikace
- Banner v herní obrazovce pokud jsou notifikace zamítnuté (PvP hry)
- Tlačítko „Povolit" otevře nastavení systému
Verze 1.3.2
Lodě (Battleship)
- Opravena souřadnicová konvence — server posílá
[col, row](x,y), opraveno rozmísťování lodí i výstřely - Potopené lodě soupeře zobrazeny zeleně (místo červené)
Piškvorky
- Opraveno mapování souřadnic — server vrací
[col, row, piece](x,y), byl chybně čten jako[row, col]
Reversi
- Opravena detekce prázdného políčka (prázdný řetězec
""je nyní považován za prázdno) - Opravena barva kamenů — server posílá
'W'/'B', nikoli'white'/'black'
Dáma
- Přepracováno na 10×10 desku (mezinárodní pravidla)
- Otočení desky pro černého hráče — vlastní figurky jsou vždy dole
- Tahy odesílány v mezinárodní notaci (číslo políčka 1–50, formát
'32-28') - Opraveno vykreslování figur — prefix
w/b, král označenK - Lze vybírat pouze vlastní figurky
Přihlášení
- Odstraněn nadbytečný avatarový ikona z přihlašovacího formuláře
Obecné
- Výchozí filtr v seznamu her nastaven na
active - API URL konfigurovatelná přes
--dart-define=API_BASE_URL=...(bez nutnosti změny kódu) - Build skript podporuje
API_BASE_URLenv proměnnou pro všechny platformy
Verze 1.3.0
Upgrade
- Flutter SDK upgrade na 3.41.6 / Dart 3.9
- Major package upgrady: mobile_scanner 5→7, geolocator 13→14, flutter_local_notifications 20→21, connectivity_plus 6→7, app_links 6→7
- Minor/patch upgrady: firebase_core, firebase_messaging, dio, fl_chart, shared_preferences, video_player + 35 dalších závislostí
Opravy
- Nullable
event.notezpůsoboval runtime crash v attachments_screen Future.waittype inference chyba v api_service (equipment barcode lookup)- Async context (
use_build_context_synchronously) na 6 místech — potenciální crash po návratu ze suspended async operace DropdownButtonFormFielddeprecatedvalue→initialValuev multiplayer screen- Chybějící
mountedcheck vinitStatecallbacku (multiplayer sessions) - Dead debug kód odstraněn z api_service
Verze 1.2.11
Nové funkce
- Korespondenční hry (multiplayer): Šachy, Piškvorky, Lodě, Reversi, Dáma
- Herní session list se statusy a čekajícími pozvánkami
- Přijímání/odmítání pozvánek přímo z aplikace
- Vytváření nových her (vs. hráč i vs. bot s výběrem obtížnosti)
- Herní desky: Piškvorky 15×15, Šachy 8×8 (FEN + UCI vstup), Reversi 8×8, Dáma 8×8, Bitevní lodě 10×10
- Rozmísťování lodí pro Battleship (tap + orientace)
- Push notifikace pro herní události (game_invitation, game_move, game_over, game_abandoned, game_setup_ready)
- Offline cache herních sessions přes Hive
- Debug API logger pro herní requesty (aktivní pouze v debug módu, výpis přes 🎮 prefix)
Kontrolní součty (SHA-256)
© TabIS v1.26.1 Ochrana osobních údajů