Ke stažení

v2.14.0 Co je nového?

Poslední aktualizace: 00:05 31.5.2026

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
Plánované funkce
  • 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ý ArcadeGameScaffold s 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ý ArcadeGameScaffold pro 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í do MaterialApp.router
  • **Nastavení jazyka** — v nastavení je nová volba jazyka aplikace se systémovou, českou a anglickou možností, uložená přes SettingsService a SettingsProvider
  • **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ůraz funguje stejně jako Dů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** — SyncService použí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ší EventDetailService pro 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í _gameId konstanty 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ý ArcadeVariantChoice sjednocuje 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/compass s 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/settings pro 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** — StopwatchEvent ukládá příznak závodního režimu a seznam účastníků; StopwatchResult ukládá mezičasy (lapTimes); doplněny Hive adaptéry pro zpětně kompatibilní čtení starších záznamů
  • **Závislosti** — přidáno sensors_plus pro 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>() ve dispose() způsobovalo „markNeedsBuild called when tree was locked"; opraveno přes _explorerProvider uložený v didChangeDependencies + addPostFrameCallback
  • **h3_core migrace** — migrace h3_flutterh3_core pro podporu dart2wasm (WASM web build); oprava Android cross-compilation z Windows (chybějící -lm linker 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ý model CellRevisit
  • **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** — ExplorerForegroundService zajišť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** — CachedTileProvider ukládá mapové dlaždice lokálně pro použití bez připojení

Vylepšení

  • **Explorer API** — fetchExplorerCells rozšířeno o parametr since pro inkrementální synchronizaci a vrací serverTime; syncExplorerCells nově vrací počty accepted/rejected/teleport
  • **Admin přehled** — admin může přepnout zobrazení na všechny uživatele; AuthProvider nově vystavuje groupId a getter isAdmin
  • **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 _changed př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 hintsEnabled se 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 games objektu** — když /api/me nevrá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/me vrací volitelný objekt games s 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** — GamesListScreen přestavěn na statický _allGames seznam s id klíč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 + metoda ApiService.reportWord() pro odeslání hlášení na server
Verze 2.3.2

Opravy

  • **Wordle / Hangman — délka slova dne** — getDailyWord nepředávalo serveru min_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/pool a /words/daily nově přijímají parametr pos; klient posílá pos=noun pro 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** — GameProvider a _GameChatTab pollují i na webu (FCM onMessage není 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** — notificationclick handler 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]++), isWon testuje r % 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; reRegisterToken př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._webToken cachuje JWT pro rychlý přístup bez async čtení ze SecureStorage; aktualizuje se při saveTokens a clearTokens

Refaktoring

  • **Auth token ve widgetech** — všechny obrazovky a widgety přešly z Map<String, String> _authHeaders na String? _authToken; hlavičky se sestavují on-demand přes getter
  • **PersonDetailScreen, PersonsListScreen** — převedeny ze StatelessWidget na StatefulWidget pro 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.json podporuje klíče windows_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.dart s GoRouter; redirect logika pro nepřihlášeného uživatele a nekonfigurovaný server
  • **Inicializace před runApp** — checkAuthStatus se 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.addListener mí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_plus 7.1.1, device_info_plus 12.4.0, package_info_plus 9.0.1, path_provider_android 2.3.1, image_picker_android 0.8.13+16
Verze 1.9.5

Nové funkce

  • **Přílohy — více rozlišení** — model Attachment a EventAttachment nově obsahuje urlMedium a urlLarge; detail obrázku používá urlLarge, thumbnail v nástěnce a feedu urlMedium (lepší kvalita)

Opravy

  • **Web push notifikace (Safari PWA)** — requestPermission() přesunuto do window.tabisRequestNotificationPermission definované v index.html (čistý JS kontext); Safari tak správně rozpozná user gesture i z Flutter/WASM
  • **Firebase web token** — getToken() nyní předává vapidKey pro webovou platformu
  • **Hive** — registrovány adaptéry pro ArcadeGameResult a ArcadeSavedGame
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.json aktuá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 po OpenFilex.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.ps1 nově podporuje přepínače -Android, -Windows, -Web pro 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 provisional notifikací správně vyhodnocen jako povoleno (ne jako zamítnuto)
  • Lokace: unableToDetermine a výjimky v GPS správně nastavují banner "lokace nedostupná"
  • User-Agent header 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_games místo attachments
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-Info header 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_chat zvýší 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 na false
  • Build skript generuje downloads objekt s per-ABI URL v version.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 isGameNotification a gameSessionId na modelu AppNotification
  • Opraven eventId — pro herní notifikace se refId nepovaž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í currentTurnPersonId a bIsMyTurn
  • sMyBoardState a sOpponentBoardState se 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_links a connectivity_plus jsou 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, legalMoves z 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čen K
  • 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_URL env 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.note způsoboval runtime crash v attachments_screen
  • Future.wait type 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
  • DropdownButtonFormField deprecated valueinitialValue v multiplayer screen
  • Chybějící mounted check v initState callbacku (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)
39c013bdc0b72b87a3cd62f1b1edf85c82fdd3dbc062f3e09ccf101de1113570
tabis2-app-2.14.0-arm64-v8a.apk
f9ba0d1824c859eb2bb6aaaa196a8dc4b5c3a048799e979543b82220dc2839fa
tabis2-app-2.14.0-armeabi-v7a.apk
d48530c8e2092c520ceedd2bfd781e1bc26eb78a191d81b4ff1f494bfe2e5095
tabis2-app-2.14.0-x86_64.apk
09f09dd09d641147eb4ebb57ca29c99acf8abb0aef4b342162354c2cda378aa2
tabis2-app_2.8.0-1_amd64.deb
11955bc3bb30103e8b689447c401acde4c3f7fbf5bda59f6c4f5918b1b3f4711
tabis2-app-2.14.0-windows.msix
d774edf97024a50043c806863e03fe1e428b9ba1c26843964c7e03d393b52549
tabis2-app-2.14.0-windows.zip
1e425e95bb55825f6342d838d2f73d5576fccba80c5781cf32c906a87a04f290
tabis2-app-2.14.0-web.tar.gz

© TabIS v1.26.1 Ochrana osobních údajů