Ke stažení

v2.59.1 Co je nového?

Poslední aktualizace: 17:48 28.7.2026

Verze 2.59.1 Nové

Opravy

  • **Korespondenční hry proti botovi — dvojitý refresh herní plochy** — po tahu bota (a stejně tak po FCM notifikaci, periodickém refreshi nebo tlačítku obnovit) appka aplikovala čerstvý stav hry dvakrát za sebou — jednou ručně po dokončení requestu, jednou přes listener, který se spustí synchronně už uvnitř samotného volání. Herní plocha se tak viditelně překreslila dvakrát (podobný problém byl dřív opraven u Prší a Uno).
Verze 2.59.0

Nové funkce

  • **Poker (Texas Hold'em)** — nová korespondenční hra pro 2-8 hráčů (proti botovi i lidem). Na rozdíl od ostatních karetních her (Prší, Uno) jedna hra = celý zápas na žetony přes víc rozdání, ne jen jedno kolo — appka ukáže konec hry až když zbyde jediný hráč se žetony, vypadlé hráče mezitím jen označí jako "vypadl". Na stole jsou vidět společné karty (flop/turn/river), vlastní 2 karty, žetony/sázky/pot všech hráčů a dealer/blind odznaky. Na tah je 60 sekund, po vypršení appka sama zkontroluje nebo zahodí kartu. Při zakládání hry lze zvolit počáteční žetony a velikost big blindu.
Verze 2.58.1

Opravy

  • **Průzkumník světa — pád mapy při gestu ("LatLng is not finite")** — poslední známá poloha načtená z OS při startu trackování (getLastKnownPosition) se ukládala bez kontroly na NaN/Infinity souřadnice, na rozdíl od živého GPS streamu, kde už taková kontrola byla. Vadná cachovaná pozice se pak dostala do mapy jako výchozí centrum a appka spadla při prvním gestu (zoom/posun).
Plánované funkce
  • Co dál? :D
Celý changelog
Verze 2.59.1 Nové

Opravy

  • **Korespondenční hry proti botovi — dvojitý refresh herní plochy** — po tahu bota (a stejně tak po FCM notifikaci, periodickém refreshi nebo tlačítku obnovit) appka aplikovala čerstvý stav hry dvakrát za sebou — jednou ručně po dokončení requestu, jednou přes listener, který se spustí synchronně už uvnitř samotného volání. Herní plocha se tak viditelně překreslila dvakrát (podobný problém byl dřív opraven u Prší a Uno).
Verze 2.59.0

Nové funkce

  • **Poker (Texas Hold'em)** — nová korespondenční hra pro 2-8 hráčů (proti botovi i lidem). Na rozdíl od ostatních karetních her (Prší, Uno) jedna hra = celý zápas na žetony přes víc rozdání, ne jen jedno kolo — appka ukáže konec hry až když zbyde jediný hráč se žetony, vypadlé hráče mezitím jen označí jako "vypadl". Na stole jsou vidět společné karty (flop/turn/river), vlastní 2 karty, žetony/sázky/pot všech hráčů a dealer/blind odznaky. Na tah je 60 sekund, po vypršení appka sama zkontroluje nebo zahodí kartu. Při zakládání hry lze zvolit počáteční žetony a velikost big blindu.
Verze 2.58.1

Opravy

  • **Průzkumník světa — pád mapy při gestu ("LatLng is not finite")** — poslední známá poloha načtená z OS při startu trackování (getLastKnownPosition) se ukládala bez kontroly na NaN/Infinity souřadnice, na rozdíl od živého GPS streamu, kde už taková kontrola byla. Vadná cachovaná pozice se pak dostala do mapy jako výchozí centrum a appka spadla při prvním gestu (zoom/posun).
Verze 2.58.0

Nové funkce

  • **Korespondenční hry — landscape režim** — obrazovka hry (šachy, piškvorky, lodě, reversi, dáma, mlýn, vlci a ovce, logik, člověče, prší, uno) teď má stejné chování na šířku jako arkádové hry: deska se roztáhne přes celou obrazovku a stav/chat/pravidla/menu se schovají do vysouvacího bočního panelu. V pravém horním rohu navíc přibyla vždy viditelná tlačítka pro rychlý refresh dat a rychlé otevření chatu (s odznakem počtu nepřečtených zpráv), aby nebylo nutné kvůli tomu rozbalovat celý panel.
Verze 2.57.0

Nové funkce

  • **Notifikace — filtrování podle kategorie** — v seznamu notifikací přibyl filtr podle kategorie (Události, Chat, Hry, Bezpečnost, Ostatní) vedle stávajících Vše/Nepřečtené, nově dostupný i na mobilu (dřív šel filtr přepínat jen na tabletu na šířku). Tlačítko "Přečíst" teď při zvolené kategorii označí za přečtené jen notifikace z ní, ne úplně všechny. Přehled na tabletu na šířku navíc u každé kategorie ukazuje i počet nepřečtených.
Verze 2.56.0

Nové funkce

  • **Chat — seznam účastníků místnosti** — v konverzaci (skupinové/soukromé místnosti) přibyla v hlavičce ikona účastníků, která otevře jejich seznam s online stavem. Zakladatel místnosti odsud může zvát další lidi i kohokoliv odebrat, ostatní účastníci mohou přes stejné tlačítko místnost sami opustit.

Opravy

  • **Chat — appka mohla spadnout při vstupu do konverzace nebo do seznamu místností** — notifikace o změně stavu appka občas poslala uprostřed vykreslování obrazovky (initState), což u Flutteru může appku shodit. Notifikace se teď odkládá na příští snímek, stejně jako se to už dřív řešilo při zavírání konverzace.
  • **Sdílení souborů do appky (share intent) mohlo appku shodit na Windows a Linuxu** — appka se tam pokoušela zavolat nativní pluginy, které tam vůbec neexistují (jsou jen pro Android/iOS). Sdílení teď na těchto platformách appku prostě ignoruje.
Verze 2.55.3

Opravy

  • **Chat — pád appky při zavírání konverzace** — pokud se celý strom obrazovek zbořil naráz (např. appka se zavírala, zatímco jste byli v konverzaci), appka mohla spadnout na "Null check operator used on a null value" při odchodu z chatu.
  • **Chat — nesrozumitelné "0" pod názvem místnosti** — seznam místností pod názvem ukazoval jen holé číslo (počet zpráv) bez popisku. Teď je tam "0 zpráv", "3 zprávy" apod.
  • **Chat — zbytečný našeptávací text v poli pro psaní zprávy** — odstraněn.
Verze 2.55.2

Opravy

  • **Průzkumník — trasy ztracené po vybité baterce nebo zabití appky na pozadí** — pokud appka skončila (chcípla baterka, zabil ji systém, pád) dřív, než se sledování v Průzkumníku řádně zastavilo, rozepsaná trasa zůstala navždy neviditelná i neodeslaná na server — poloha/objevené buňky se přitom synchronizovaly normálně, takže to vypadalo, že appka trasu "sní". Appka teď při startu takové nedokončené trasy z minulé session sama dopočítá a doplní, ať se normálně zobrazí v historii a odešlou na server.
  • **Průzkumník — pád appky při dotyku mapy po chybném GPS fixu** — vzácný neplatný (NaN) souřadnicový údaj z GPS mohl appku nechat spadnout hned při prvním gestu (posun/zoom) na mapě. Neplatné souřadnice se teď rovnou zahazují u zdroje.
Verze 2.55.1

Opravy

  • **Chat — zbytečná spotřeba baterie na pozadí** — živé WS spojení chatu se dřív nezavíralo, když appka odešla na pozadí (jen se přestal pollovat počet nepřečtených), a mohlo se i tiše pokoušet o reconnect mimo popředí appky. Nové zprávy na pozadí appka stejně řeší přes push notifikace, takže teď se socket při přechodu na pozadí odpojí a při návratu do popředí (i s návratem do rozečtené místnosti) zase připojí.
Verze 2.55.0

Nové funkce

  • **Živý chat** — nová záložka „Chat" na nástěnce (s odznakem počtu nepřečtených) otevírá seznam konverzací: přímé zprávy s ostatními uživateli i skupinové místnosti (veřejné/soukromé, založení nové místnosti a zvaní dalších lidí). V konverzaci appka posílá a přijímá zprávy v reálném čase přes WebSocket, umí i přílohu obrázku. Při offline režimu se odeslané zprávy zařadí do fronty a odešlou po obnovení spojení. Push notifikace o nové zprávě appku nasměruje rovnou do dané konverzace; na nástěnce quick action i notifikace mají vlastní ikonu chatu.
Verze 2.54.1

Opravy

  • **Znovu zapnutý záznam trasy v Průzkumníkovi světa** — problém s GPS na pozadí, kvůli kterému jsme dřív doporučovali záznam trasy vypnout, je opravený. Appka teď při aktualizaci na tuto verzi záznam trasy jednorázově znovu zapne úplně všem, i těm, kdo si ho předtím ručně vypnuli. Kdokoliv si ho pak samozřejmě může znovu vypnout v Nastavení Průzkumníka.
Verze 2.54.0

Nové funkce

  • **Prší a Uno** — dvě nové korespondenční karetní hry pro 2 hráče (i proti botovi). Prší je klasická česká karetní hra (balíček 32 nebo 52 karet, sedma/eso/svršek jako speciální karty), Uno je mezinárodní varianta (108 karet, skip/reverse/draw2/wild/wild4). Obě sdílí stejný mechanismus zobrazení ruky jako ostatní korespondenční hry — vlastní karty appka vidí vždy, počet soupeřových karet jen jako číslo, dokud hra neskončí. Karty mají skutečný vzhled hracích karet (barevné rohové popisky, symboly barev, u Uno typická barevná placka uprostřed).
  • **Animovaný hod kostkou (Člověče, nezlob se!)** — po klepnutí na „Hodit kostkou" se uprostřed desky na chvíli zatočí velká kostka s náhodnými čísly a pak doletí s výsledkem do hlavičky, místo dosavadního okamžitého zobrazení čísla bez animace.

Opravy

  • **Tah bota u her s víc soupeři a u karetních her** — appka po odpovědi na tah bota už nehádá natvrdo, že je hned zase na tahu hráč, ale vyžádá si čerstvý stav hry ze serveru. Opravuje to potenciálně špatně zobrazené „jsi na tahu" u her s víc než jedním botem (Člověče, nezlob se! s více soupeři) a u nových karetních her (Prší, Uno).
Verze 2.53.0

Nové funkce

  • **Sdílení fotek/videí do appky (Android)** — foto nebo video z Galerie (či jiné appky) teď jde poslat systémovým tlačítkem „Sdílet" rovnou do TabIS. Appka se otevře na výběru události, po klepnutí na ni se příloha nahraje stejnou cestou jako ruční upload z detailu události (včetně fronty čekajících změn při offline režimu). Funguje i pro víc souborů najednou (ACTION_SEND_MULTIPLE). Tlačítkem v horní liště lze zapnout výběr více událostí a přiřadit sdílenou přílohu i k několika událostem naráz, případně přes „Vytvořit novou událost" rovnou založit novou a nahrát přílohu do ní.
Verze 2.52.5

Nové funkce

  • **Člověče, nezlob se!** — nová korespondenční hra pro 2–4 hráče (max. 1 bot). Hoď kostkou, vyber figurku a doprav všechny 4 domů jako první; vyhození soupeřovy figurky, tah navíc za šestku i přesný zásah do cíle appka řeší stejně jako ostatní korespondenční hry (šachy, dáma, mlýn, …). Zakládání hry teď umí vybrat víc než jednoho soupeře.
Verze 2.52.4

Opravy

  • **Zastaralý test pro deep linky** — test parseDeepLinkTarget ignores unsupported links ještě počítal s tím, že https://tabis.seru.cz/qr/… odkazy appka neumí zpracovat. Od zavedení App Links v 2.52.3 je to ale podporovaný formát, takže test padal. Test upraven tak, aby ověřoval skutečně nepodporované odkazy.
Verze 2.52.3

Nové funkce

  • **Otevírání appky z odkazů (App Links)** — appka teď umí zachytit https://tabis.seru.cz/… a https://pub-tabis.seru.cz/… odkazy z e-mailů a QR kódů a otevřít je rovnou v appce místo v prohlížeči: /event/show/{id} (detail události), /qr/{code} (QR stanoviště) a /equipment/scan/{code} (vyhledání vybavení/lokace podle čárového kódu). Pokud odkaz patří k jinému serveru, než na kterém je appka právě přihlášená, appka se nejdřív zeptá, jestli chce uživatel přepnout server.
  • **Nastavení — stav ověření odkazů** — nová karta v nastavení appky ukazuje, jestli má appka ověřené/schválené otevírání odkazů pro tabis.seru.cz a pub-tabis.seru.cz (Android 12+), a tlačítko pro rychlý přístup do systémového nastavení, kde lze otevírání odkazů povolit ručně.
  • **2FA — ochrana proti opakovanému odesílání kódu e-mailem** — tlačítko „Poslat kód e-mailem" na obrazovce dvoufaktorového ověření se po klepnutí na 60 vteřin zablokuje s odpočtem, aby nešlo omylem odeslat desítky e-mailů za sebou.

Opravy

  • **Notifikace neznámého typu se už nesnaží otevřít jako neexistující událost** — appka nově rozezná všech 23 typů notifikací, které backend posílá. Tapnutí na notifikaci Zvuková knihovna (sound_proposed/sound_reviewed) otevře knihovnu (u návrhu rovnou záložku Moderace), reakce na příspěvek (reaction_added) otevře danou událost, dokončení QR hry (qr_completed) otevře detail hry, přání (wish_new) otevře nástěnku přání a upozornění na novou verzi appky (app_update) otevře nástěnku s nabídkou aktualizace. Herní pozvánky/chat federovaných her (game_invite, game_chat) mají nově vlastní ikonu místo obecného zvonečku. Notifikace bez odpovídající obrazovky v appce (error_report_new, login_approval, smtp_alert, test — admin/debug) se bezpečně jen označí jako přečtené. Zároveň jakýkoli budoucí neznámý typ notifikace už appka nebude domýšlet jako odkaz na událost.
  • **Deep linky doručené za běhu appky se občas neotevřely** — pokud appka dostala odkaz (tabis://… i https://…) ve chvíli, kdy už běžela na popředí, navigace se občas tiše ztratila. Přidáno krátké zpoždění před zpracováním, stejně jako appka už dřív měla pro odkaz při studeném startu.
Verze 2.52.2

Opravy

  • **Immersive mode — ponechaná horní lišta** — schovává se už jen spodní systémová navigační lišta, horní stavová lišta (hodiny, signál, baterie) zůstává vidět.
Verze 2.52.1

Vylepšení

  • **Arkádové hry — skrytá systémová lišta (immersive mode)** — na obrazovce kterékoli z arkádových her (2048, Snake, Minesweeper, Sudoku a dalších ~27 her) se nově automaticky schová systémová stavová i navigační lišta pro více herního prostoru. Tahem od okraje obrazovky se lišta na chvíli vysune zpět (standardní Android immersive gesto). Po opuštění hry se lišta vrátí do normálního zobrazení.
  • **Rozšíření skryté lišty i mimo arkádové hry** — stejné chování (skrytá systémová lišta, vysunutí tahem od okraje) mají nově i Průzkumník světa (mapa), seznam her, seznam QR her, detail QR hry (stanoviště/žebříček) a QR čtečka kódů.
Verze 2.52.0

Nové funkce

  • **Korespondenční hry — Mlýn a Vlci a ovce** — do korespondenčních her přibyly dvě nové deskové hry: Mlýn (pokládání/pohyb/létání, sebrání kamene po vytvoření mlýnu) a Vlci a ovce (asymetrická hra na křížové desce, vlci mohou přeskakovat a řetězit skoky přes ovce). Obě hry mají vlastní desku s vykreslením přes CustomPainter, jsou dostupné v dialogu „Nová hra", ve filtru seznamu her i v záložce Pravidla.
  • **Korespondenční hry — Logik (Mastermind duel)** — nová korespondenční hra: každý hráč má vlastní tajný 4místný kód (barvy 1–6), hráči se střídavě snaží uhodnout ten soupeřův a dostávají klasickou černo-bílou zpětnou vazbu. Stejně jako u Lodí hra vždy prochází setup fází (zadání vlastního kódu), i proti botovi. Historie tipů se zobrazuje odděleně pro „moje tahy proti soupeři" a „soupeřovy tahy proti mně", po konci hry se odhalí oba kódy.
  • **Arkádové hry — oslavná animace a zvuk po dokončení** — po dohrání kterékoli z ~40 arkádových her (2048, Snake, Wordle, Minesweeper, Sudoku a další) se nově kromě skóre zobrazí i konfetová/ohňostrojová animace a fanfára, obojí odlišené podle výsledku — bujarý barevný ohňostroj a vzestupná fanfára při výhře, tlumená šedá animace a smutnější tón při prohře, mírnější verze při běžném konci hry bez výhry/prohry (např. Snake, 2048). Zvuky se generují za běhu (žádné nové zvukové soubory), animace využívá balíček confetti.

Vylepšení

  • **Korespondenční hry — přehlednější dialog „Nová hra"** — s přibývajícím počtem korespondenčních her (dnes 9) se výběr z jednoho dlouhého rolovacího formuláře stal nepřehledným. Dialog je nově dvoukrokový: nejdřív vizuální mřížka her s ikonami místo rozbalovacího seznamu, po výběru hry teprve nastavení soupeře (bot/hráč/vzdálený server) a herních voleb na vlastní obrazovce s tlačítkem „Změnit" pro návrat k výběru hry.
Verze 2.51.1

Vylepšení

  • **Hry — arkádové hry rozdělené do kategorií** — obrazovka se seznamem her měla přes 40 arkádových her v jedné dlouhé sekci. Nově jsou rozdělené do pěti přehlednějších kategorií: Slovní hry, Paměťové hry, Obrázkové hry, Logické hry a Akce a postřeh. Na širších obrazovkách (tablet naležato) navíc levý panel s kategoriemi ukazuje počet her v každé z nich.
Verze 2.51.0

Nové funkce

  • **Vysvědčení — volba období (rok z nastavení / vlastní od–do)** — při generování vysvědčení lze nově přepnout mezi dosavadním režimem „Rok z nastavení" a novým „Vlastní období", kde se přes kalendář vybere libovolný rozsah dnů (od–do, krajní dny včetně). Předvýběr táborníků i označení „bez událostí" respektují zvolený rozsah a tlačítko generování je bez vybraného období neaktivní. Serveru se pak místo roku posílá dateFrom/dateTo a u hotového jobu se zvolený rozsah zobrazuje v souhrnu.

Opravy

  • **Nástěnka — komentář se po odeslání hned zobrazí** — po přidání komentáře (textového, audia i zvukového ze zvukové knihovny) ke kartě na nástěnce se nový komentář dosud neukázal, dokud se nástěnka celá znovu nenačetla — inkrementální synchronizace ho totiž na lokální kopii události nepřinesla. Nově se po odeslání stáhne čerstvý detail události přímo ze serveru (offline se použije lokální kopie jako dosud); zvukový komentář navíc kartu dosud neaktualizoval vůbec.
Verze 2.50.0

Nové funkce

  • **Kuželky — kmitající ukazatel přesnosti** — hra byla moc jednoduchá, koule letěla vždy přesně zvoleným směrem. Nově se po stisknutí „Hodit!" objeví barevná lišta (červená–žlutá–zelená) s kmitajícím ukazatelem a hod se provede až druhým stiskem „Teď!" — odchylka ukazatele od středu se přičte ke zvolenému směru (až ±13°), takže přesný hod vyžaduje trefit střed lišty ve správný okamžik. Rychlost kmitání roste s obtížností (Lehce ≈ 1,4 s na celý kmit, Normálně ≈ 1,0 s, Těžce ≈ 0,7 s).
  • **Nabídka aktualizace už na přihlašovací obrazovce** — kontrola nové verze a banner s nabídkou stažení (stejný jako na nástěnce, včetně výběru způsobu stažení) se nově zobrazuje i před přihlášením. Stará verze appky se totiž po změnách v přihlašovacím mechanismu nemusí umět vůbec přihlásit — a uživatel tak dosud neměl cestu, jak se k aktualizaci dostat.

Vylepšení

  • **Hlášení chyb — filtr mapových dlaždic** — selhání stažení mapové dlaždice (typicky offline na táboře bez signálu) se už nehlásí do administrace jako „fatální crash". Není to chyba aplikace; filtr je záměrně úzký (jen známé tile servery OSM, OpenTopoMap, Carto, ArcGIS, OpenRailwayMap, Waymarked Trails), ostatní síťové chyby vč. API a fotek se hlásí dál a ruční hlášení projdou vždy.
Verze 2.49.3

Vylepšení

  • **Srozumitelnější chybové hlášky místo výpisu výjimky** — když selže volání na server (chybějící pole, neplatná hodnota, výpadek spojení apod.), appka místo dlouhého technického výpisu DioException teď zobrazuje konkrétní důvod, který posílá server (např. „HTTP 400 POST /api/v2/qr/scan — Chybí povinné pole sType"), nebo krátkou srozumitelnou zprávu u síťových chyb (timeout, bez připojení, neplatný certifikát). Platí jednotně pro chybová hlášení do administrace i pro hlášky přímo v appce (nástěnka táborníků, vybavení, kvízy, zvuková knihovna, hry, hlasy a další). Hlášení chyb do administrace navíc nově přikládá celou serverovou odpověď (JSON) k danému záznamu pro snazší diagnostiku, bez citlivých údajů (tokeny ani obsah požadavku se nikdy neposílají).
Verze 2.49.2

Opravy

  • **QR Stopovaná — ruční zadání kódu jiné délky než 7 znaků** — pole pro ruční zadání kódu stanoviště (na desktopu/webu, u HW čtečky nebo když kamera není k dispozici) přijímalo jen kódy o přesně 7 znacích, i když vedoucí může checkpointu při vytváření přiřadit ruční kód libovolné délky. Zadání takového kódu se tiše neodeslalo bez jakékoli chybové hlášky. Nově se přijme kód libovolné rozumné délky a při neplatném vstupu se zobrazí upozornění. Skenování QR kódem (včetně HW čtečky posílající celou URL) je beze změny.
Verze 2.49.1

Vylepšení

  • **Nástěnka událostí — sjednocené tlačítko pro přidání** — místo dvou tlačítek vedle sebe (přidat událost, přidat anketu) je teď na nástěnce jen jedno rozbalovací „+" tlačítko, po jehož stisknutí vyjedou nabídky „Přidat událost" a „Přidat anketu" (druhá jen pro vedoucí).
Verze 2.49.0

Nové funkce

  • **QR Stopovaná — korekce hodin zařízení proti podvádění** — sken i dávková synchronizace teď posílají serveru i aktuální čas zařízení (dtDeviceNow). Server si podle rozdílu vůči vlastním hodinám přepočítá časy skenů, takže přetočené hodiny na telefonu už nedávají výhodu v pořadí dokončení hry.
  • **QR Stopovaná — spolehlivější odeslání skenů na nestabilní síti** — offline fronta skenů (vzniklá při výpadku spojení) se dřív odesílala jen ručně na obrazovce hry. Nově je součástí automatické synchronizace appky (15minutový background sync i ruční „Synchronizovat"), takže se skeny odešlou samy, i když se hráč do hry nevrátí.
  • **QR Stopovaná — diagnostický log** — v obrazovce hry přibylo vedle tlačítka pro obnovení tlačítko s logem komunikace (sken, offline fronta, synchronizace) — stejně jako u hodinek jde log zkopírovat, smazat nebo rovnou odeslat jako hlášení problému.
Verze 2.48.0

Nové funkce

  • **Hlasový komentář — živý náhled nahrávání** — při podržení tlačítka pro nahrání hlasového komentáře se nově nad tlačítkem zobrazí bublina s živým waveformem (podle aktuální hlasitosti) a ubíhajícím časem, takže je hned vidět, že nahrávání skutečně běží a zvuk se snímá.

Opravy

  • **Vysvědčení — chybějící popisek u hotových úloh** — seznam „Vaše žádosti" u hotové úlohy zobrazoval jen fajfku a tlačítko stažení bez jakéhokoli dalšího popisu (na rozdíl od webu, kde je vidět datum zadání, počet a formát). Appka měla tyto údaje (createdAt, format, total) už staženy z API, jen je nevypisovala — nově se u hotové úlohy zobrazí souhrn, např. „31 vysvědčení • spojené PDF • 12.7. 11:35".
Verze 2.47.1

Opravy

  • **Zvuková knihovna — přerušení přehrávání** — tlačítko přehrávaného zvuku (galerie i moderace návrhů) zůstávalo podbarvené i po pozastavení vlivem přehrání jiného zvuku (sdílený audio focus) a další přehrání pokračovalo odprostředka. Nově se tlačítko po přerušení odbarví a přehrávání vždy začíná od začátku.
  • **Zvukový komentář u události — popisek** — audio přehrávač u komentáře vytvořeného výběrem zvuku ze zvukové knihovny zobrazoval obecný text „Hlasová zpráva" stejně jako u skutečného hlasového záznamu. Nově zobrazuje emoji a název konkrétního zvuku (např. „😂 Smích").
Verze 2.47.0

Nové funkce

  • **QR hra — sbalitelná sekce nalezených stanovišť** — záložka „Stanoviště" (list i grid pohled) teď nenalezená stanoviště vypisuje nahoře přehledně a nalezená schová pod hlavičku „Nalezené (N)", kterou lze rozkliknout/sbalit — hráč tak má hned na první pohled vidět, co ještě zbývá najít.
  • **QR hra — fanfára po dokončení** — po naskenování úplně posledního chybějícího stanoviště v dané hře přehraje appka krátkou fanfáru (tón vygenerovaný za běhu, žádný zvukový asset). Přehraje se jen jednou při reálném dokončení, ne při každém otevření už hotové hry.
Verze 2.46.3

Opravy

  • **Vysvědčení — obsah pod spodní systémovou lištou** — obrazovka Vysvědčení jako jediná nepoužívala AdaptivePage(safeArea: true) wrapper, takže se na zařízeních s edge-to-edge navigací (např. Samsung S21 Ultra na Androidu 15) spodní část obrazovky včetně tlačítka „Vygenerovat vysvědčení" vykreslovala pod systémovou navigační lištou.
Verze 2.46.2

Opravy

  • **Vysvědčení — spolehlivé předvyplnění podle roku** — předvyplnění výběru táborníků s body dřív čerpalo z globální cache souhrnu (DataProvider.summary), která nemusela odpovídat aktuálně vybranému roku a vybrala jen zlomek táborníků. Nově se počítá čistě z lokálních dat v Hive (DataProvider.events) přesně pro vybraný rok — bez dotazu na server, s per-osobním přepočtem bodů u vícenásobných účastníků události.
Verze 2.46.1

Opravy

  • **Vysvědčení — chytřejší výchozí výběr** — seznam táborníků se při otevření obrazovky předvyplní těmi, kdo mají přidělené body (mají reálný záznam), u táborníků bez záznamu se zobrazí náznak „bez událostí". Přepínač „jen body přidělené uživatelem" je nově defaultně zapnutý, odpovídá běžnému použití.
Verze 2.46.0

Nové funkce

  • **Vysvědčení** — nová obrazovka (Nastavení → Rychlé akce na dashboardu i dlaždice na dashboardu, jen pro vedoucí g3+) pro hromadné generování PDF vysvědčení táborníků. Výběr táborníků s filtrem podle skupiny, volby „jen body od uživatele", formát (ZIP se samostatnými PDF nebo jedno sloučené PDF) a rok se přebírá z globálního nastavení „Rok tábora". Generování běží asynchronně na serveru (POST /api/v2/reports) — appka polluje stav jobu (GET /api/v2/reports/{id}) a po dokončení nabídne stažení (otevře se v prohlížeči/externí appce s tokenem v URL). Doručení hlásí i FCM notifikace report_ready/report_failed, klepnutí na ni otevře obrazovku Vysvědčení.
  • **Debug/release izolace balíčků (Android)** — debug build má nově vlastní applicationIdSuffix (.debug), takže instalace debug verze na telefonu s ostrou appkou už appku nepřepíše ani nesmaže její data.

Opravy

  • **Trojice (Jigsaw) — ořezané dílky u rohu** — zúžení krčku a hlavy spojovacího knoflíku dílků odstraňuje samoprotínající se smyčku (díru uprostřed dílku), která u rohových dílků vznikala při hlubším zásahu dvou sousedních výřezů.
  • **Hlášení chyb u opakovaně selhávajících příloh ze synchronizace** — chyba nahrávání čekající přílohy se do error reportingu posílá jen při prvním výskytu dané chyby, ne při každém opakovaném syncu.
Verze 2.45.0

Nové funkce

  • **Odeslání logu jako hlášení problému** — diagnostické log obrazovky (Wear log, sync log Průzkumníka světa) mají v horní liště novou ikonu brouka, která otevře obrazovku „Nahlásit problém" s přiloženým logem. Uživatel dopíše popis a odešle — log putuje ve stávajícím poli sStackTrace, původ logu je v sContext (wear-log / explorer-log). Přílohu lze před odesláním odebrat, u extrémně dlouhých logů se ořezávají nejstarší záznamy (strop 64 kB). Mechanismus je obecný (ReportLogAttachment přes extra routy report-problem) — další log obrazovky se napojí jedním řádkem.
Verze 2.44.1

Opravy

  • **Sanitizace bodů trasy z hodinek** — ExplorerBatchProcessor teď hodnoty bodů čistí stejně jako telefonní záznam: Health Services na hodinkách vrací Double.MAX_VALUE pro neznámou výšku/azimut, což backend odmítal jako validační chybu. Výška se posílá jen v rozsahu −500 až 10 000 m, přesnost 0–10 000 m, azimut 0–360°, a nově i rychlost (0–150 m/s). Doubly se zaokrouhlují (výška/přesnost/rychlost na 1 desetinné místo), aby payload zbytečně nenafukoval request.
  • **Detailnější log chyb uploadu relace** — DioException při uploadu relace z hodinek teď do Wear logu zapíše HTTP status i tělo odpovědi serveru (detail validační chyby), ne jen obecný text výjimky.
Verze 2.44.0

Nové funkce

  • **Wear log (Nastavení → Podpora)** — nová diagnostická obrazovka zobrazující průběh komunikace s hodinkami: příjem zpráv a relací, směrování (warm/headless), zpracování batchů, výsledky uploadů na backend i mazání DataItemů. Loguje nativní strana (WearDebugLog) i Dart (WearLog), včetně background isolatu.

Opravy

  • **Relace Průzkumníka z hodinek se už neztratí při neúspěšném uploadu** — dosud se DataItem relace smazal z Data Layer hned po přečtení, takže když upload na backend selhal (offline, chyba serveru, nepřihlášený uživatel), data byla nenávratně pryč. Nově se DataItem maže **až po potvrzeném úspěšném uploadu** (warm i headless cesta posílají výsledek zpět nativní straně) a při startu appky proběhne sweep (WearBridge.reprocessPendingSessions), který nezpracované relace z Data Layer dožene a nahraje. Souběh živého doručení a sweepu nad touž relací hlídá zámek _inFlightSessions.
  • **Headless engine umí poslat ack na hodinky** — do headless enginu se nově registruje i WearBridgePlugin, takže sendExplorerProgress funguje i v killed-app scénáři.
Verze 2.43.2

Opravy

  • **Souběžná rotace refresh tokenu mezi isolaty („Zneužití tokenu")** — appka obnovuje tokeny až ze tří nezávislých isolatů (hlavní appka, workmanager background sync, wear dispatcher) a každý má vlastní ApiService. Když access token vypršel a dva isolaty dostaly 401 současně, oba poslaly stejný refresh token — server první obsloužil (token zrotoval) a druhý vyhodnotil jako zneužití tokenu; v horším případě to prohrála hlavní appka a uživatel byl odhlášen. Nově je refresh chráněn zámkem napříč isolaty i procesy (atomické vytvoření lock souboru — fcntl locky jsou na Androidu per-process, isolaty ve stejném procesu by nezablokovaly) a kontrolou čerstvosti: pokud tokeny mezitím obnovil jiný isolate, refresh se vůbec neposílá; pokud refresh prohraje závod, ale v úložišti už je čerstvý token, nebere se to jako expirovaná session (žádný nechtěný logout).
  • **Background sync loguje výsledek** — SyncResult z syncAll() se v workmanager tasku dosud zahazoval; chybové doběhy teď jsou vidět v logu včetně příznaku offline.
Verze 2.43.1

Opravy

  • **Retry při 429 na refresh tokenu** — pokud server vrátí HTTP 429 (Too Many Requests) při obnovování přihlašovacího tokenu, aplikace počká 2 sekundy a zkusí to znovu (max 2 pokusy). Přibyla pomocná metoda _doRefreshRequest() pro přehlednost.
Verze 2.43.0

Nové funkce

  • **Kombinace speciálních dílků v Trojici** — dva sousední speciály se teď kombinují při prohození: ↔+↕ = kříž (celý řádek + sloupec), ↔+↔ nebo ↔+výbuch = 3 řádky, ↕+↕ nebo ↕+výbuch = 3 sloupce, výbuch+výbuch = oblast 5×5, 🌈+řadová/sloupcová/výbušná = všechny dílky daného druhu se promění na ten speciál a řetězově explodují.
  • **Hint po nečinnosti** — po 3 sekundách bez tahu zlatý pulzující rámeček zvýrazní platný tah (hint se ruší při každé interakci a automaticky hledá duhové bomby a speciální páry přednostně).
  • **Vizuální varování před koncem** — posledních 5 tahů (Na tahy) nebo 10 sekund (Časovka) pulzuje počítadlo červeně.
  • **Shake animace** — neplatný tah roztřese oba dílky místo tiché nereakce.
  • **Osobní rekord** — výsledková obrazovka ukáže "Nový osobní rekord! 🏆" při překonání vlastního maxima.
  • **Hvězdičkové hodnocení** — každá partie dostane 1–3 hvězdičky podle skóre (prahové hodnoty per varianta); hvězdičky jsou vidět i v historii výsledků.
Verze 2.42.0

Nové funkce

  • **Bomby v Trojici (match-3)** — čtveřice a delší řady teď vytvářejí speciální dílky: **řadová bomba** (čtveřice vodorovně) smaže celý svůj řádek, **sloupcová bomba** (čtveřice svisle) smaže celý sloupec, **výbušná bomba** (L nebo T tvar, nebo 2×2 čtverec) vybuchne v okolí 3×3, **duhová bomba 🌈** (pětice) po prohození s libovolným sousedem odstraní všechny dílky jeho druhu z celé mřížky. Dvě duhové bomby prohozené spolu smetou celou mřížku. Bomby se aktivují navzájem — řetězové výbuchy dávají extra body.
  • **Animace padání dílků** — po každém kroku kaskády se nové i přepadlé dílky plynule animují shora dolů (TweenAnimationBuilder s FractionalTranslation).
  • **2×2 čtverce jako platný tah** — čtyři shodné dílky ve čtvercovém uspořádání nově tvoří platný tah (vznikne výbušná bomba).
  • **Statistika speciálů** — výsledková obrazovka i herní metadata teď zobrazují počet aktivovaných bomb za partii.

Opravy

  • **Health Connect sessionId — JS-safe hashování** — FNV-1a přepnuto z 64-bit na 32-bit variantu; výsledek je vždy kladný a vejde se do bezpečného rozsahu JavaScriptového integeru, čímž se opravuje možný nesoulad ID na webu vs. nativní platformě.
Verze 2.41.0

Nové funkce

  • **Nová hra Trojice (match-3)** — arkádová hra ve stylu Candy Crush: mřížka 8×8 emoji dílků, prohazování sousedních dílků klepnutím, spojování řad 3+ stejných. Kaskádové padání s kombo násobičem (×2, ×3…), delší řady (4–5 dílků) dávají bonusové body. Tři varianty: **Na tahy** (25 tahů), **Časovka** (2 minuty) a **Nekonečná** (konec, až nezbyde platný tah; u prvních dvou se mrtvá pozice automaticky zamíchá). Tři přepínatelné sady dílků (tábor, sladkosti, ovoce). Standardní arcade integrace — obnova rozehrané hry, leaderboard s metadaty (počet trojic, nejvyšší kombo), nápověda pravidel.
  • **Hodinky se umí zeptat telefonu, jestli trackuje** — nová zpráva /tabis/explorer/status/query směrem hodinky → telefon: aplikace odpoví aktuálním stavem sledování Průzkumníka (/tabis/explorer/status), takže hodinky před spuštěním vlastního záznamu poznají, že telefon už trackuje, a nevznikne duplicitní záznam téže trasy. Dotaz je efemérní — když appka na telefonu neběží, headless engine se kvůli němu nebudí a hodinky si timeout vyloží jako „neznámo".
Verze 2.40.0

Nové funkce

  • **Tep (HR) v trasách Průzkumníka** — GPS body z hodinek a Health Connect teď obsahují i tep; hodnota putuje přes ExplorerBatchProcessor na backend jako pole hr u každého bodu trasy (kde je k dispozici).
  • **Zpětná vazba hodinkám po syncu Průzkumníka** — poté, co telefon odešle batch buněk/tras na server, pošle hodinkám zprávu /tabis/explorer/progress s počtem nově přijatých buněk a tras. Hodinky si to můžou zobrazit na obrazovce Průzkumu světa.

Opravy

  • **QR scan přihlášení — chybová obrazovka** — na platformách bez kamery (Windows, web) se místo pádu zobrazí informační obrazovka s ikonou. Pokud kamera existuje, ale vrátí chybu (odmítnuté oprávnění apod.), MobileScanner teď zobrazí popis chyby místo prázdné plochy.
Verze 2.39.0

Nové funkce

  • **Podpora chytrých hodinek Wear OS (cz.seru.tabis.wear)** — telefon nově umí komunikovat s doprovodnou aplikací na hodinkách přes Wear Data Layer. Zprávy z hodinek se přijímají i po zabití appky na telefonu (samostatná WearDataLayerService), takže hodinky fungují spolehlivě i na pozadí.
  • **Number-matching přihlášení na zápěstí** — žádost o bezheslové přihlášení (tři čísla k výběru) se zrcadlí i na hodinky, takže se dá potvrdit přímo odtud bez telefonu v ruce. Funguje na popředí i pozadí (FCM background handler).
  • **Průzkumník světa — GPS relace z hodinek** — hodinky umí zaznamenat trasu (GPS body) nezávisle na telefonu; app z ní po přijetí spočítá H3 buňky a trasu (stejnou logikou jako zbytek Průzkumníka, kvůli paritě s backendem) a dávkově je odešle (ApiService.syncExplorerCells / syncExplorerTrails). Nepřesné GPS fixy (>60 m) se zahazují.
Verze 2.37.0

Nové funkce

  • **Dvoufaktorové ověření (2FA)** — pokud má účet zapnuté 2FA, po zadání hesla se objeví nová obrazovka pro **ověřovací kód** (TOTP z aplikace, kód z e-mailu, nebo záložní kód XXXXX-XXXXX). U e-mailové metody lze nechat kód **poslat e-mailem** znovu. Neplatný/prošlý kód a limit pokusů mají vlastní hlášky; při vypršení nebo vyčerpání pokusů se uživatel vrátí na přihlášení. Účty bez 2FA se přihlašují beze změny. Účet ve skupině s povinnou 2FA, který ji ještě nemá nastavenou, uvidí na nástěnce nenásilné upozornění (lze zavřít).
  • **Schválení přihlášení přes QR (cross-device)** — přihlášená aplikace umí naskenovat QR kód zobrazený na webu (tabis-login:…) a po potvrzení přihlásit prohlížeč/druhé zařízení. Nový vstup **Nastavení → Přihlášení → Přihlásit přes QR**; rozpoznávání běží i v běžném scanneru QR stopované (kód se odliší od herních/vybavení QR a jde jinou cestou).
  • **Bezheslové přihlášení push notifikací (number-matching)** — na přihlášené zařízení přijde push „Žádost o přihlášení"; aplikace zobrazí **tři čísla** a uživatel vybere to, které vidí na přihlašovaném zařízení (ochrana proti slepému schválení — správné číslo není v pushi). Funguje na popředí (dialog hned), na pozadí i po klepnutí na notifikaci ze studeného startu ukončené aplikace — challenge a čísla se přenášejí přes payload lokální notifikace. Čísla z FCM dat se parsují tolerantně (zvládnou "42,17,88", "[42, 17, 88]" i "42 17 88").
  • **Radar srážek ČHMÚ na mapě průzkumníka** — nová překryvná vrstva (picker vrstev → „Radar srážek (ČHMÚ)") zobrazí sloučený radarový snímek MAX_Z pro celé Česko. Ve výchozím stavu ukáže poslední snímek; když je vrstva aktivní, spodní **časové šoupátko** s tlačítkem přehrávání umožní posouvat se přes posledních cca hodinu a přehrát smyčku. Data se na pozadí obnovují po ~90 s. (Na webu vrstva skrytá — cizí PNG z opendata.chmi.cz nemá CORS hlavičky.)

Opravy

  • **Sjednocený vzhled v Nastavení** — sekce „Přihlásit přes QR" a „Nahlásit problém" dřív vypadaly jako obyčejný řádek (ListTile) uprostřed karet s nadpisem a popiskem; teď mají stejný styl jako zbytek obrazovky (karta s nadpisem, popiskem a tlačítkem přes celou šířku).
Verze 2.36.2

Opravy a vylepšení

  • **Hlášení chyb — vybrané 4xx** — hlášení chyb nově odesílá kromě serverových 5xx i vybrané klientské chyby značící rozpor kontraktu klient↔server: 400 (Bad Request), 422 (Unprocessable) a 405 (Method Not Allowed). Záměrně se dál nehlásí 401 (řeší refresh tokenu), 403/409/429 (běžný provoz), 404 (appka ho používá jako „prázdno") ani offline chyby.
Verze 2.36.1

Opravy a vylepšení

  • **Zvuková knihovna — více formátů** — přidána podpora pro OGG/Opus, WAV a FLAC vedle stávajících MP3 a M4A/AAC. Platí pro nahrávání příloh i hlasové komentáře — nové formáty se správně rozpoznají a odešlou na server se správným MIME typem.
Verze 2.36.0

Nové funkce

  • **Zvuková knihovna — návrhy a schvalování** — nová obrazovka (dlaždice „Zvuková knihovna" na nástěnce) se sdílenou knihovnou zvukových reakcí. Táborník (g1+) může **navrhnout zvuk** — buď vybrat MP3 ze souborů, nebo ho **nahrát mikrofonem** (s živým waveformem). Vedoucí/admin (g3+) mají záložku **Moderace** s počtem čekajících návrhů (badge), přehrávačem s waveformem a tlačítky **Schválit / Zamítnout** (s nepovinným důvodem); vedoucí může zvuk i **rovnou přidat** (auto-schváleno). Admin (g4) může zvuky **mazat**. Push notifikace sound_proposed (vedoucím) a sound_reviewed (navrhovateli) otevřou knihovnu na správné záložce.
  • **Hlášení chyb a pádů** — aplikace nově zachytává neodchycené pády (FlutterError / platforma / async zóna) i vybrané odchycené chyby (selhání synchronizace, serverové 5xx) a odesílá je na vlastní backend (POST /api/v2/errors). Hlášení se ukládají offline-first do fronty a odešlou při nejbližší synchronizaci. K hlášení se přikládá popis zařízení a verze aplikace; aktivní je ochrana proti zahlcení (deduplikace opakovaných pádů + strop fronty). _Pozn.: vyžaduje serverový endpoint — do jeho nasazení se hlášení pouze řadí do fronty._
  • **Nahlásit problém** — nová položka v Nastavení → Podpora, kde můžeš popsat, co nefunguje; hlášení se odešle (i offline) spolu s technickými informacemi o zařízení.

Opravy a vylepšení

  • **Průzkumník světa — sync waypointů funguje** — backend endpoint /api/v2/explorer/waypoints/sync je nasazený; opraveno parsování odpovědi. Server vrací localId jako číslo (JSON_NUMERIC_CHECK), klient ho teď porovnává tolerantně (string↔num), takže se odeslané body správně označí jako synchronizované a neposílají se znovu dokola. Pull-only sync (prázdný push) stáhne camp waypointy ostatních.
Verze 2.35.3

Nové funkce

  • **Průzkumník světa — výběr POI kategorií** — nové okno v menu tří teček („Turistická místa (POI)") nahrazuje jediný přepínač POI. Táborník si zaškrtne jen kategorie, které ho zajímají; vrstva se zapne, jakmile je vybraná aspoň jedna (žádná = vrstva vypnutá). Tlačítko „Vybrat / zrušit vše". **Výběr se pamatuje** mezi spuštěními. Výchozí zapnuté: Voda, Přístřešky, Zdravotnictví, Záchranáři.
  • **Průzkumník světa — POI benzínky** — ⛽ nová kategorie čerpacích stanic (zelený marker).
  • **Průzkumník světa — POI rozšířený detail** — klepnutí na bod zobrazí info přímo v aplikaci: značku/operátora, otevírací dobu (24/7 → „Nonstop"), adresu, pitnost vody, samoobsluhu, bezbariérovost, popis a u benzínek čipy s druhy paliva (Diesel, Natural 95/98, LPG, CNG, AdBlue, Elektro…). Tlačítka **Zavolat** a **Web** (když jsou v datech), odkaz na OpenStreetMap zůstává.
  • **Průzkumník světa — POI cache** — načtené body se kešují (rozšířený bbox + TTL 30 min); drobné posuny mapy ani návrat na obrazovku nevolají server znovu. Stahují se jen vybrané kategorie.
  • **Průzkumník světa — vyhledávání míst** — 🔍 nové tlačítko lupy v nástrojové liště (pod měřením) otevře pole pro hledání míst a adres (Nominatim/OpenStreetMap). Najde i pojmenované objekty (obchody, čerpačky…) — např. „Kaufland". Výsledky upřednostňují okolí (aktuální výřez mapy) a jsou seřazené podle vzdálenosti — nejbližší nahoře. U každého se vpravo zobrazí vzdálenost vzdušnou čarou od aktuální polohy. Po výběru výsledku mapa skočí na místo a položí červený pin (klepnutím na pin se smaže).
  • **Průzkumník světa — sbalitelný spodní panel** — panel se statistikami se dá klepnutím na úchyt nahoře sbalit na kompaktní lištu (jen čísla bez popisků) a zase rozbalit. V rozbaleném stavu se navíc při sledování ukazují kroky i prozkoumaná plocha zároveň a region s procentem prozkoumání.

Opravy a vylepšení

  • **Průzkumník světa — tlačítko centrování polohy** — opraveno překrývání spodním panelem; tlačítko se teď drží těsně nad panelem a je vždy celé vidět (i při rozbaleném panelu).
  • **Průzkumník světa — měření vzdálenosti** — křížek v okně měření nyní ukončí režim měření, pokud ještě není zadán žádný bod (dřív nedělal nic).
  • **Průzkumník světa — POI 406** — opraveno selhání načítání POI (Overpass API odmítal požadavek bez User-Agent hlavičky chybou 406).
  • **Průzkumník světa — POI 504** — při přetížení hlavního Overpass serveru (504) se automaticky zkusí záložní mirrory.
Verze 2.35.2

Opravy a vylepšení

  • **Průzkumník světa — POI markery** — opraveno klepnutí na POI značky (HitTestBehavior.opaque + zvětšení z 26×26 na 36×36 px); markery jsou nyní spolehlivě tappable.
  • **Průzkumník světa — POI zpětná vazba** — místo tichého selhání zobrazí toast: „přibliž mapu (zoom ≥ 12)" / „žádné body v oblasti" / chyba sítě.
  • **Průzkumník světa — POI nové kategorie:** 🏥 Zdravotnictví (nemocnice, klinika, lékárna, doktor) a 🚨 Záchranné složky (hasiči, policie, záchranná stanice, horská záchranná služba).
  • **Průzkumník světa — POI zoom** — minimální zoom pro načtení POI snížen z 13 na 12.
Verze 2.35.1

Vylepšení

  • **Průzkumník světa — sync waypointů** — vlastní body se synchronizují se serverem (POST /api/v2/explorer/waypoints/sync). Při přidání bodu lze zvolit viditelnost: **Soukromý** (jen já) nebo **Pro tábor** (všichni táborníci). Camp waypointy ostatních uživatelů se stáhnou při syncu. Detail bodu zobrazuje viditelnost, autora a stav synchronizace. Pokud backend endpoint ještě neexistuje, sync tiše přeskočí a zobrazí informaci v toastu sync tlačítka.
Verze 2.35.0

Nové funkce

  • **Průzkumník světa — záhlaví okna** — 4 navigační tlačítka (Trasy, Soutěž, Statistiky, Nastavení) přesunuta do menu tří teček; AppBar je přehledný s jen 2 tlačítky.
  • **Průzkumník světa — live výškový profil** — sbalitelný panel nad stats barem zobrazuje aktuální nadmořskou výšku, celkový výstup/sestup a interaktivní graf výšky aktivní trasy (pouze při aktivním sledování).
  • **Průzkumník světa — měření vzdálenosti** — nové tlačítko (pravítko) v ovládání mapy; klepnutím přidáváš body, zobrazí se kumulativní vzdálenost + tlačítko pro výškový profil trasy (OpenTopoData SRTM90m API).
  • **Průzkumník světa — offline dlaždice** — sekce "Offline mapy" v nastavení; volitelný radius (5–30 km) a zoom rozsah (8–17), stáhne OSM dlaždice do lokální cache s progress indikátorem.
  • **Průzkumník světa — vlastní waypointy** — táborníci mohou dlouze stisknout libovolné místo na mapě a přidat pojmenovaný bod s ikonou (pin, vlajka, hvězda, varování, táborák); waypointy přežijí restart a lze je smazat klepnutím.
Verze 2.34.1

Opravy

  • **Průzkumník světa — Ortofoto ČR** — opravena URL WMS služby ČÚZK (nová doména ags.cuzk.gov.cz).
  • **Průzkumník světa — Katastr ČR** — klepnutí na mapu nyní volá ČÚZK REST API (RUIAN identify, WGS84), získá přesné ID parcely a otevře detail přímo v Nahlížení do KN (ZobrazObjekt.aspx). Zobrazí se bottom sheet s číslem parcely, druhem pozemku, výměrou a KÚ.
  • **Průzkumník světa — výběr vrstev** — bottom sheet se vrstevným pickerem se již nezobrazoval pod systémovou lištou (chyběl isScrollControlled a safe area padding).
  • **Bludište — náklon vlevo/vpravo** — opravena invertovaná osa X akcelerometru (kulička se pohybovala opačným směrem než náklon telefonu).
Verze 2.34.0

Vylepšení

  • **Průzkumník světa — nové vrstvy mapy** — tlačítko vrstvy nahrazeno pickerem s plným výběrem základních map a překryvných vrstev.
Verze 2.33.2

Vylepšení

  • **Bludište — ovládání náklonem** — na Android a iOS se kulička řídí náklonem telefonu (akcelerometr), virtuální joystick nahrazen hintovým textem „Nakloň telefon". Na Windows zůstává joystick beze změny.
Verze 2.33.1

Opravy

  • **Detail trasy — výškový graf** — opraven problém kdy se graf výškového profilu nevykresloval (chybělo explicitní ohraničení výšky pro fl_chart).
Verze 2.33.0

Nové funkce

  • **Modul Kvízy** — nový obecný kvízový engine přístupný z dashboardu. První obsah: autoškola skupina B (25 otázek / 50 bodů / 30 min, zákonná skladba dle vyhlášky).

Vylepšení

  • **Video v přílohách na Windows** — přidán plugin video_player_win; videa v detailu přílohy se nyní přehrávají přímo v aplikaci (dříve zobrazoval fallback „nepodporováno").
Verze 2.32.1

Vylepšení

  • **Bludište — nový level 3 „Kobky"** — těžká úroveň přepracována: 5 S-curve stěn s mezerou 1,0 m a 4 vertikální blinders, které nutí míček k přesnější volbě výšky průchodu. Zlatý čas upraven na 120 s.
  • **Kuželky — kratší zaměřovací čára** — délka ukazatele směru zkrácena, aby nepřekrývala kuželky a nerušila výhled při míření.
Verze 2.32.0

Vylepšení

  • **Prak — variabilní tvary bloků** — stavby se teď skládají ze 4 různých typů bloků: cihla (široká), čtverec (standardní), úzký pilíř a plochá deska. Každý typ má vlastní rozměry, fyziku i barevné provedení (pískovcová cihla / hnědý kámen / šedá kamenná deska).
  • **Prak — vizuální poškození** — bloky, které se pohybují nebo nakloní po zásahu, zobrazují narůstající soustavu prasklin. Při lehkém poškození se objeví první trhlina, při středním druhá a při těžkém třetí; bloky zároveň ztmavnou.
  • **Prak — oprava zaseknuté hry** — po výstřelu, kdy se koule vrátila zpět před prak, hra se dříve zasekla. Přidán grace-period timer (0,6 s) a hard timeout (10 s), takže nyní vždy přejde do fáze vyhodnocení.
  • **Prak — kreativnější levelové mapy** — levely mají propracovanější uspořádání věží s cihlovou základnou, kamennými stěnami a pilířovým cimbuřím; struktury jsou rozloženy přes celou šířku světa a kamera je postupně odhaluje při letu projektilu.
  • **Popisky her v seznamu** — Kuličkový labyrint, Kuželky a Prak nyní zobrazují správný podtitulek v seznamu her (dříve chyběl).

CI / formátování

  • Opraveno formátování game_prak_logic.dart a game_prak_screen.dart (dart format) — GitLab CI nyní projde.
Verze 2.31.0

Nové funkce

  • **Pozemní značky v galerii obrázků** — obrázkové arkádové hry (Pexeso, Mozaika, Pixel Reveal, Stínový párovač, Skvrny, Bingo, Padající páry, Sudoku, Jiný vesmír, Prak, …) nyní načítají i sadu pozemních značek ze serveru (znacky-manifest.json). Puzzle a Posuvné puzzle zobrazují galerii rozdělenou do dvou sekcí: „Zvířátka a věci" a „Pozemní značky".

Vylepšení

  • **Prak — kreativní rozmístění věží** — tři nové layouty (věžička s cimbuřím, brána s věžemi, pyramida s plošinou) nahradily jednoduché geometrické vzory; věže jsou nyní fyzikálně pestřejší a vizuálně zajímavější.

CI / infrastruktura

  • Přidána GitLab CI pipeline pro automatizované sestavení a analýzu.
  • Opraveno 36 rozbálených unit testů.
  • Projekt plně naformátován (dart format); CI blokuje nesformátovaný kód.

Lokalizace

  • Přidány řetězce: imagePackLabelImages („Zvířátka a věci"), imagePackZnacky („Pozemní značky").
Verze 2.30.0

Nové hry

  • **Kuličkový labyrint (Bludište)** — fyzikální hra, kde hráč nakloněním zařízení provede kuličku labyrintem bez nárazu do stěn.
  • **Kuželky** — 10-pinový bowling s fyzikálním simulátorem: hráč táhne prstem pro odpálení koule, zasažené kuželky se fyzikálně rozlétnou.
  • **Prak** — závodní střelba z praku, kde hráč nastavuje sílu a úhel letu projektilu a sráží věže nepřítele.

Vylepšení

  • **Detail trasy — barevná mapa podle rychlosti** — trasa se nyní vykresluje gradientem (modrá = pomalá chůze → červená = jízda na kole), pokud jsou dostupná časová razítka bodů.
  • **Detail trasy — výškový a rychlostní graf** — pod mapou se zobrazují interaktivní grafy profilu nadmořské výšky a průběhu rychlosti.
  • **Detail trasy — hero statistiky** — klíčové údaje (vzdálenost, čas, převýšení, tempo) jsou nyní zobrazeny přehledně nad tabulkou podrobností.
  • **Detail trasy — přepínání satelitní vrstvy** — tlačítko v rohu mapy přepíná mezi OSM a satelitním snímkem (ArcGIS).
  • **Detail trasy — scrollovatelné rozložení** — stránka se nyní plně scrolluje (CustomScrollView), mapa má fixní výšku 40 % obrazovky.

Opravy

  • **Souboj o území — padding modálního okna** — přepnuto z viewInsets.bottom na viewPadding.bottom, okno se již neposunuje při zavřené klávesnici.

Lokalizace

  • Přidány řetězce: gamesListBludisteTitle/Subtitle, gamesListKuzelkyTitle/Subtitle, gamesListPrakTitle/Subtitle, worldExplorerTrailDetailPace.
Verze 2.29.1

Opravy

  • **Souboj o území — legenda schovaná pod systémovou lištou** — legenda na mapě se nyní zobrazuje nad systémovou navigační lištou Androidu (Samsung S21 a podobné).
  • **Souboj o území — popup žebříčku oříznutý liištou** — modální okno s detailem území nyní respektuje výřez systémové lišty (useSafeArea: true).
Verze 2.29.0

Nové funkce

  • **Souboj o území (Explorer Competition)** — nová obrazovka dostupná z tlačítka trofeje v Průzkumníku světa. Zobrazuje žebříček hráčů nebo skupin podle počtu objevených hex buněk na úrovni obce nebo okresu (GET /api/v2/explorer/competition).

Vylepšení

  • **Automatické zahazování příliš krátkých tras** — trasy s méně než 3 body nebo kratší než 5 sekund se při finalizaci automaticky smažou (neukládají se jako prázdné záznamy).
  • **Podmíněné přenačtení tras** — seznam tras se obnoví pouze pokud byla trasa skutečně uložena (ne zahozena).
  • **Přepínání mapové vrstvy** — přidán ValueKey na TileLayer, dlaždice se nyní spolehlivě obnoví při přepnutí mezi OSM a ortofoto.

Lokalizace

  • Přidány řetězce: worldExplorerCompetitionTooltip, worldExplorerWeatherNoneTooltip, worldExplorerWeatherRadarTooltip, worldExplorerWeatherSatelliteTooltip, worldExplorerLightningOffTooltip, worldExplorerLightningOnTooltip.
Verze 2.28.2

Údržba

  • **Aktualizace závislostí** — 39 balíčků povýšeno na nejnovější kompatibilní verze: Firebase (core 4.11, messaging 16.4), audioplayers 6.8, geolocator 14.0.3, pro_image_editor 12.6, flutter_local_notifications 22.0.1, app_links 7.1.2, path_provider 2.1.6, msix 3.17 a další patch/minor bumpy.
Verze 2.28.1

Opravy

  • **Mutex při obnově JWT tokenu** — paralelní 401 odpovědi nyní nespustí více refresh requestů najednou; každý čeká na výsledek prvního (oprava race condition s rotovanými tokeny).
  • **Validace tokenů po přihlášení** — login i Google OAuth explicitně selžou, pokud server vrátí prázdné tokeny (místo tichého uložení prázdných hodnot).
Verze 2.28.0

Nové funkce

  • **Správa přihlašovacích QR kódů hráčů (QR Stopovaná)** — nová manažerská obrazovka (g3+) dostupná ze správy QR her. Vedoucí vidí přehled hráčů, kteří už mají osobní přihlašovací kód pro kiosk čtečku, a může jim QR kód zobrazit (vykreslený přímo v appce).
  • **Přidání hráče přes FAB** — tlačítkem „Přidat hráče" se vybere osoba bez kódu a kód se rovnou vygeneruje a zobrazí jako QR.
  • **Přegenerování a zakázání kódu** — kód lze přegenerovat (s varováním, že staré QR přestanou platit) nebo zakázat a později znovu povolit.
Verze 2.27.0

Vylepšení — Kolo-morfér

  • **Nakreslené kolo se zobrazuje na vozidle** — po potvrzení kresby se kolo s pixelovým vzorem vykreslí na autě a rotuje se pohybem.
  • **Uzamčení speedFactoru na čas** — speedFactor platí 4 sekundy (bylo: 3 segmenty), pak plynule roste zpět k 1.0.
  • **Crash po 2 sekundách pod prahem** — vozidlo havaruje teprve po 2 s pod kritickou rychlostí (bylo: okamžitě).
  • **Kreslicí pad otevřitelný ihned** — funguje i bez nadcházejícího přechodu; zobrazí aktuální terén.
  • **Opravena výška karoserie a kol** — kola i karoserie správně sedí na terénu.
  • **Nové prahové hodnoty speedFactoru** — špatná kresba (< 30 % shoda) dá faktor 0.18 → crash po 2 s.

Vylepšení — Kopcolez

  • **Těžší terén** — kopce mají větší amplitudy (1.6 / 0.9 místo 1.0 / 0.6), plná výška od x = 20 m.
  • **Méně paliva** — pickup každých 35 m (bylo 10 m), dává 18 % (bylo 30 %).
  • **Vyšší spotřeba** — fuelRate zvýšen u všech vozidel přibližně o 50 %.
  • **Vyšší gravitace** — lehce 16, normálně 20, těžce 24 (bylo 14/18/22).
  • **Nejlepší skóre ve výběru vozidla** — vehicle selector zobrazuje skutečné rekordní skóre z ArcadeScoreProvider.

Opravy — Hlukomer

  • **Graf nyní zobrazuje dB SPL** — history graf ukládal dBFS místo dB SPL; opraveno.
  • **Osa grafu přepracována na 0–130 dB SPL** — správná stupnice pro hlukomer (bylo -80–0 dBFS).
  • **Linka 85 dB SPL** — přidána oranžová čára prahu poškození sluchu v grafu.
  • **Power compression ve spektrálním analyzéru** — sloupce i waterfall mají gamu 0.35 pro lepší viditelnost tichého obsahu.
  • **Přepracovaná barevná paleta waterfalllu** — 8-stupňová paleta černá → tmavě modrá → modrá → cyan → zelená → žlutá → oranžová → červená.
Verze 2.26.0

Novinky

  • **Kolo-morfér** — nová arkádová hra: nakresli správné kolo prstem a porovnej s ideálním kruhem.
  • **Kopcolez** — nová arkádová hra: ovládej terénní vozidlo přes procedurálně generované kopce.
  • **Rovnováha** — nová arkádová hra: projedi trasu motorkou a udržuj rovnováhu.
  • **Tisk štítků** — podpora pro Zebra ZPL a Datamax DPL štítkové tiskárny; tlačítko tisku přímo v detailu vybavení. Nastavení v Nastavení → Tiskárny.
  • **Tisk účtenek** — ESC/POS pokladní tiskárna; tisk detailu události (program, osoby) přes AppBar tlačítko. Podpora výběru kopií pro více osob.
  • **QR hry — vyřazená stanoviště** — stanoviště s bDisabled příznakem se zobrazí se štítkem „Vyřazeno" a sken je odmítnut s hláškou.
  • **QR hry — offline sync banner** — když existují neodeslanné offline skeny, zobrazí se oranžový banner s počtem a tlačítkem „Odeslat nyní".

Vylepšení

  • **Hlukomer** — hlavní číslo nyní zobrazuje přibližné dB SPL (kalibrovaná hodnota) místo dBFS; barevné prahy: zelená < 60 dB, oranžová 60–80 dB, červená ≥ 80 dB. Hodnota dBFS zůstává jako podtitulek.
Verze 2.25.0

Novinky

  • **Schránka přání a stížností** — táborníci mohou anonymně posílat přání nebo stížnosti vedoucím; vedoucí vidí všechny zprávy a mohou je mazat. Přístupné z dashboardu (rychlá akce) i z menu.
  • **Ankety** — vedoucí mohou vytvářet ankety přímo ve feedu; táborníci hlasují klepnutím na možnost; výsledky s procentuálními sloupci se zobrazí po hlasování nebo u uzavřené ankety. Vedoucí mohou anketu smazat nebo uzavřít.

Opravy

  • **QR hry — seznam nešel načíst** — server posílal název hry jako číslo (např. 567), Dart selhal při přetypování int → String. Opraveno na ?.toString() ve všech modelech.
  • **QR scanner — tap-to-focus nefungoval ve čtvercovém zaměřovači** — rámeček Container pohlcoval dotyky a zabraňoval GestureDetectoru přijmout tap. Opraveno obalením rámečku do IgnorePointer.

Vylepšení

  • Feed nyní podporuje smíšené položky — události i ankety v jednom seznamu, seřazené podle času.
  • CollapsibleHeaderScaffold — odsazení titulku nyní správně zohledňuje auto-implicitní zpětné tlačítko (i bez explicitního leading).
  • Nastavení — ListView uvnitř SettingsAdaptiveLayout dostaly primary: false, aby nevznikal konflikt s vnějším scrollem.
Verze 2.24.0

Novinky

  • **Svítilna** — nová utilita v rychlých akcích; velké kulaté tlačítko zapíná/vypíná baterku (HW torch na Androidu/iOS, bílá obrazovka na Windows/webu). Bílá obrazovka má posuvník jasu a tlačítko zpět.
  • **Morzeovka — vysílání** — zadáš text, appka ho odblinkuje v Morseově abecedě; posuvník rychlosti 0.25× – 4×; při vysílání velký animovaný blikač se znakem uprostřed.
  • **Morzeovka — příjem** — binární rozhodovací strom (tečka vlevo, čárka vpravo) vizualizuje postup dekódování v reálném čase; klávesové zkratky: 1/Space = tečka, 3/Enter = čárka, 2/Shift/Tab = mezera; tlačítka přichycena dole pro pohodlné ovládání jednou rukou.
  • **Hlukomer** — měří hlasitost v dBFS přes mikrofon; půlkruhový VU gauger se stupnicí a ručičkou; rolující history graf s dB osou.
  • **Spektrální analyzer (FFT)** — přepnutím na FFT mód se zobrazí 32 frekvenčních pásem animovanými sloupci; logaritmická frekvenční stupnice 20 Hz – 22 kHz; osa s popisky dole.
  • **Waterfall spektrogram** — třetí mód zobrazení: padající 2D heat mapa (X = frekvence, Y = čas, barva = intenzita) — černá → modrá → cyan → žlutá → červená; logaritmická frekvenční osa 20 – 20k Hz.
Verze 2.23.5

Novinky

  • **Průzkumník světa — detail trasy** — záznam trasy ze seznamu lze nově rozkliknout. Otevře se obrazovka, kde se celá trasa vykreslí na mapě (auto-přiblížení na celou trasu, značky startu a cíle) a pod mapou je souhrn: vzdálenost, doba, ⌀ a max rychlost, převýšení ↗/↘, ⌀ GPS přesnost a počet bodů. U starších tras bez podrobných metrik se zobrazí jen dostupné údaje.
  • **Průzkumník světa — bohatší body trasy** — u každého GPS bodu zaznamenané trasy appka nově ukládá a synchronizuje čas fixu, nadmořskou výšku, GPS přesnost a směr pohybu (t/alt/acc/hdg). Web (/explorer/trails) díky tomu po kliknutí na trasu zobrazí u jednotlivých bodů tooltip (čas, rychlost, výška, přesnost, směr) a nad mapou souhrn (⌀/max rychlost, převýšení ↗/↘). Všechny nové klíče jsou volitelné a posílají se navíc ke stávajícím lat/lng — server starý payload i nadále plně přijímá, takže žádná migrace není potřeba.
Verze 2.23.4

Opravy

  • **QR skener — zaostření ťuknutím (tap-to-focus)** — ťuknutí do náhledu kamery teď spolehlivě přeostří a zobrazí krátkou animaci zaměřovacího kroužku v místě ťuknutí. Dosud používaný tapToFocus z balíčku mobile_scanner počítal bod zaostření z celé obrazovky včetně AppBaru (svislý posun → ostřilo se na špatné místo) a nedával žádnou vizuální zpětnou vazbu. Nově se bod počítá relativně k náhledu a přidán je viditelný feedback.
Verze 2.23.3

Novinky

  • **Zvuková knihovna — obnovení seznamu** — v okně výběru zvukové reakce přibylo tlačítko 🔄, které znovu načte seznam zvuků ze serveru (dosud se seznam stáhl jen jednou za běh aplikace a držel se v cache).

Opravy

  • **Zvuková reakce — přehrávání náhledu** — náhled zvuku se teď přehraje správně. Server vrací relativní cestu (/sounds/x.mp3), kterou přehrávač neumí přehrát; před cestu se nově doplní base URL serveru. Navíc se přehrávání nyní nepřeruší pádem aplikace (ošetřeno try/catch) a první náhled už nepolyká zbytečné volání stop() na ještě nehrajícím přehrávači.
  • **Profilová fotka — obnovení po změně** — po nahrání nové profilové fotky se už nezobrazuje stará nacachovaná verze. URL fotky teď obsahuje verzi (?v=<čas změny> ze serveru), takže CachedNetworkImage načte aktuální obrázek na všech zařízeních. Zároveň ApiConfig.mediaUrl na webu správně připojí token přes &, pokud cesta už query parametr obsahuje (dříve by vznikla neplatná URL se dvěma ?).
  • **Editace táborníka — změna vlastního hesla** — řadový táborník nyní vidí pole pro nové heslo při editaci svého vlastního profilu; dříve pole viděli pouze vedoucí a admini
Verze 2.23.0

Novinky

  • **Profilová fotka táborníka** — admin může nahrát nebo změnit profilovou fotku táborníka přímo z detailu osoby; tlačítko s fotoaparátem se zobrazí na avataru; fotka se vybere z galerie a nahraje na server; po nahrání se data automaticky synchronizují
  • **Avatar bez fotky** — profilový avatar se nyní zobrazí vždy (ikona osoby), i když táborník nemá nastavenou fotku
Verze 2.22.3

Opravy

  • **Editace táborníka — změna hesla** — pole pro nové heslo se nyní správně zobrazí všem vedoucím a adminům (groupId ≥ 3); dříve pole zmizelo pokud nebyl přihlášený uživatel nalezen v seznamu táborníků
  • **Editace táborníka — potvrzení změny hesla** — po uložení SnackBar nově informuje "Táborník upraven (heslo změněno)" pokud backend potvrdí změnu hesla
Verze 2.22.2

Opravy

  • **QR — HW skener (klávesnice)** — tlačítko klávesnice v poli pro ruční zadání kódu nyní skutečně vyvolá softwarovou klávesnici; přepne keyboardType na text a přefokusuje pole (předchozí řešení přes SystemChannels nefungovalo bez aktivní input connection)
Verze 2.22.1

Opravy

  • **QR — výsledkový sheet** — obsah výsledkového okna (přijato/zamítnuto) se už nevykresluje pod průhlednou systémovou navigační lištou na Android 14; bottom padding nyní zohledňuje skutečnou výšku systémové lišty
Verze 2.22.0

Vylepšení

  • **Kamera — zoom slider** — na skenovací obrazovce QR her i skeneru čárových kódů vybavení přibyl zoom slider (ikony / +); zobrazí se po inicializaci kamery
  • **Kamera — dynamická baterka** — tlačítko baterky ukazuje aktuální stav (flash_on / flash_off); na zařízeních bez baterky se tlačítko nezobrazí
  • **Kamera — přesné zaměřovací okno** — skenovací rámeček nyní odpovídá skutečné oblasti, ze které MobileScanner čte kódy
  • **Kamera — vyšší rozlišení + tapToFocus** — rozlišení náhledu zvýšeno na 1280×720; kliknutí na náhled ostří na daný bod
  • **Kamera — chybová obrazovka** — při nedostupné kameře se zobrazí srozumitelná chybová hláška místo prázdné obrazovky
Verze 2.21.2

Opravy

  • **QR — HW skener (skenovací obrazovka)** — při aktivaci HW skeneru se focus přesune do pole, ale klávesnice se automaticky nevyskočí; vedle pole přibyla ikona klávesnice pro ruční vyvolání sofwarové klávesnice
Verze 2.21.1

Opravy

  • **QR — HW skener** — na mobilech se při aktivaci skrytého vstupního pole pro HW skener už nevyskočí softwarová klávesnice
Verze 2.21.0

Nové funkce

  • **QR — HW skener v detailu hry** — obrazovka detailu QR hry nyní přímo zachytává vstup z hardwarového čárového skeneru (zapíná se v nastavení); naskenovaný kód se zpracuje okamžitě bez nutnosti otevírat skenovací obrazovku
  • **QR — galerie obrázků checkpointů** — kliknutí na obrázek checkpointu otevře fullscreen galerii; mezi obrázky se přepíná šipkami na obrazovce, swipem (jen pokud není přiblíženo) nebo klávesovými šipkami na PC; pinch-to-zoom funguje nezávisle na přepínání stránek

Vylepšení

  • **QR — přijaté skenování** — bottom sheet s výsledkem se automaticky zavře po 5 sekundách; průběh odpočtu je vidět jako progress bar; obrázek checkpointu se zobrazuje v poměru 1:1 s lepším rozvržením
Verze 2.20.1

Opravy

  • **QR — ruční zadání kódu** — pole nyní přijme i celou URL (např. https://tabis.seru.cz/qr/EB5296Q) a automaticky z ní vyextrahuje 7znakový kód; při vkládání URL z prohlížeče tak není nutné kód ručně vykopírovat
Verze 2.20.0

Nové funkce

  • **Zvuková knihovna v komentářích** — tlačítko 🎵 v panelu komentářů (detail události i feed) otevírá výběr zvuků ze serverové knihovny; první tap přehraje náhled, druhý tap zvuk odešle jako komentář; zvukové komentáře jsou plně offline-first (čekají v PendingComment a synchronizují se při dalším syncu); přijaté sound komentáře se přehrávají stejným přehrávačem jako hlasové komentáře
Verze 2.19.0

Vylepšení

  • **Arkáda — Landscape layout** — hry Mozaika, Odhal obraz, Stín a Rychlé psaní nyní správně využívají prostor v landscape orientaci (obrázek vlevo, možnosti vpravo)
  • **Arkáda — Sudoku s obrázky** — 4 nové varianty (Snadné/Střední/Těžké/Expert s obrázky): číslice 1–9 jsou nahrazeny náhodně vybranými obrázky ze sdílené knihovny; obrázky se zobrazují v buňkách, poznámkách i ovládacích tlačítkách
  • **Arkáda — Trubky (lepší generátor)** — puzzle se generuje pomocí Hamiltonovy cesty (Warnsdorffova heuristika + fallback hadí cesta), zaručena řešitelnost a lepší rozloha spojů
  • **Arkáda — Odhal obraz (balancování)** — 8 fází zostřování (dříve 5), kratší časy na fázi (6/4/3 s místo 8/6/4 s), silnější blur (20/30/40 místo 14/20/28), vyšší počáteční body (800 místo 500); obrázek se po odpovědi plně odkryje
  • **Arkáda — Feedback při odpovědi** — Mozaika, Odhal obraz a Stín nyní zvýrazní červeně špatně vybranou možnost (dříve jen zelená správná); při vypršení času ve Stínu se správná možnost zobrazí i po přechodu na další kolo
  • **Arkáda — Pravidla v landscape** — popisy pravidel pro Mřížku paměti, Stín, Rychlé psaní, Odhal obraz, Mozaiku a Trubky přidány do landscape panelu nápovědy
  • **Arkáda — Rychlé psaní** — slovo lze odeslat i klávesou Enter (dříve jen mezerník)
Verze 2.18.0

Nové funkce

  • **Arkáda — Mřížka paměti** — zapamatuj si rozsvícené buňky a tapni je zpět; 3 obtížnosti (4×4 lehce, 5×5 středně/těžce s méně zobrazovacím časem)
  • **Arkáda — Stín** — uhádni obrázek ze siluety; odhalení původního obrázku po odpovědi; 3 obtížnosti (15/10/6 s na kolo)
  • **Arkáda — Rychlé psaní** — opisuj slova co nejrychleji; metriky WPM a přesnost; 3 obtížnosti (krátká/delší/dlouhá slova)
  • **Arkáda — Odhal obraz** — hádej rozmazaný obrázek odhalovaný po fázích; 3 obtížnosti s různým počtem fází
  • **Arkáda — Mozaika** — hádej obrázek z odkrývajících se dílků v náhodném pořadí; 3 velikosti mřížky (4×4/6×6/8×8)
  • **Arkáda — Třídění** — přiřaď obrázky do kategorií swipem doleva/doprava; 3 obtížnosti (30/25/20 s); vyžaduje obrázky s pojmenovanými kategoriemi na serveru
  • **Arkáda — Picross (Nonogram)** — japonská logická hra: odhal obrázek ze sloupcových a řádkových nápověd; 3 velikosti (5×5/7×7/10×10)
  • **Arkáda — Trubky** — spoj barevné páry trubkami bez překřížení; 3 velikosti mřížky (5×5/7×7/9×9)

Opravy

  • **Windows build** — potlačeno tvrdé chybové hlášení MSVC 14.51+ pro deprecated <experimental/coroutine> používaný některými pluginy (-D_SILENCE_EXPERIMENTAL_COROUTINE_DEPRECATION_WARNINGS)
Verze 2.17.0

Nové funkce

  • **Průzkumník světa — historické trasy na mapě** — dokončené GPS stopy (z minulých procházek) se zobrazují jako fialové čáry na mapě; nové tlačítko v toolbaru pro skrytí/zobrazení tras; trasy se načítají z lokálního Hive boxu při startu i po ukončení sledování
  • **Průzkumník světa — sync GPS tras se serverem** — dokončené trasy se odesílají na POST /api/v2/explorer/trails/sync (batch, idempotentní); implementovány getUnsynced(), markSynced() v ExplorerTrailService a syncPendingTrails() v provideru; neodeslaný počet tras zahrnut do pendingSyncCount
  • **Průzkumník světa — sledování pokračuje na pozadí** — při navigaci pryč z obrazovky průzkumníka se GPS sledování nezastaví (dříve se zastavovalo v dispose()); sledování pokračuje jako foreground service dokud ho uživatel ručně nevypne
  • **Puzzle — volné pokládání dílků** — dílek se přichytí na správnou buňku jen když je puštěn dostatečně blízko (threshold 50 % buňky); mimo threshold dílek zůstane volně ležet na hrací ploše a jde znovu přetáhnout; nová metoda placeCorrect() v logice hry (přichytí bez penalizace za špatný drop)

Dokumentace

  • **Explorer API spec** — přidány specifikace endpointů POST /api/v2/explorer/revisits/sync a POST /api/v2/explorer/trails/sync (DB schema, validace, PHP flow)
Verze 2.16.18

Opravy

  • **Průzkumník — GPS mohlo běžet i po vypnutí sledování** — race condition v startTracking(): pokud přišel stop během asynchronního startu (rychlé přepnutí, „Zastavit" z notifikace, odchod z obrazovky), GPS stream a krokoměr se přihlásily až po stopu a běžely dál naprázdno (vybíjení baterie). Opraveno generačním tokenem sledování; doplněno i zrušení krokoměru v dispose providera
Verze 2.16.17

Nové funkce

  • **Arkáda — Pexeso** — nová hra nad sdílenou knihovnou obrázků (GET /api/v2/label-images): 3 obtížnosti (4×4, 4×6, 6×6), flip animace karet, skóre dle tahů a času; obrázky cachovány přes LabelImageCacheManager (7 dní) a seznam v Hive (label_images_cache) — offline hra z cache, tlačítko pro vymazání cache v AppBaru
  • **Arkáda — Puzzle (jigsaw)** — skládací puzzle s nepravidelnými dílky (výstupky/zámky generované ze seedu): 3 obtížnosti (3×3, 4×4, 5×5), drag & drop ze zásobníku, náhodný obrázek s možností přelosování nebo výběru z galerie; reuse label-images infrastruktury, offline podpora, save/restore rozehrané hry
  • **Arkáda — Rychlé hledání** — 60s časovka: najdi cílový obrázek v mřížce (12/20/30 obrázků), špatný tap = −3 s
  • **Arkáda — Co zmizelo?** — paměťová hra: zapamatuj si mřížku obrázků, jeden zmizí, vyber ho ze 4 kandidátů; 3 životy, rostoucí počet obrázků
  • **Arkáda — Vetřelec** — najdi odlišný obrázek v mřížce: jiný obrázek (lehce) / otočený o 90° (středně) / o 180° (těžce); 3 životy, rostoucí mřížka
  • **Arkáda — Posuvné puzzle** — klasické 15-puzzle z obrázku (3×3/4×4/5×5), míchání platnými tahy (vždy řešitelné), výběr obrázku z galerie, save/restore
  • **Arkáda — Obrázkové bingo** — karta obrázků, losování s odpočtem, zmeškané se vrací do balíčku; výhra linií (lehce/středně) nebo celou kartou (těžce)
  • **Arkáda — Padající dvojice** — reakční 1-back: tapni na padající obrázek, když je stejný jako předchozí; 3 životy, rostoucí rychlost
  • **Sdílené arcade widgety** — ArcadeImagePickerHeader (výběr obrázku z knihovny: náhled/přelosovat/galerie) a ArcadeSyncResultRow (sync stav v game-over dialogu); jigsaw a pexeso refaktorovány na jejich použití
  • **Zásobník nápadů** — docs/label-images-game-ideas.md: Kimovky, Kvarteto/Go Fish a další nápady pro budoucí hry nad knihovnou obrázků

Vylepšení

  • **Sdílená knihovna obrázků** — nový endpoint GET /api/v2/label-images (ApiService.fetchLabelImages), model LabelImage, Hive box label_images_cache a LabelImageCacheManager (cache obrázků 7 dní); 8 nových arkádových her registrováno v routeru (/home/games/{pexeso,jigsaw,spot-it,vanished,odd-one-out,slide-puzzle,bingo,falling-pairs}), v seznamu her a v nápovědě
Verze 2.16.16

Vylepšení

  • **Tvůrčí hry — autentizace obrázků** — Image.network volání předávají Authorization: Bearer header (nativní platformy) nebo query param (web); auth token se načítá přes AuthService a propaguje do _TurnPreviewCard, _GuessSheet, _VoteSheet a _VoteTurnCard
  • **Kreslení — vyšší rozlišení** — výchozí canvas v editoru zvýšen z 1080×1080 na 2048×2048; max výstupní velikost z 2000×2000 na 3000×3000; výchozí canvas u tvůrčích her bez konfigurace z 1024×768 na 2048×1536
Verze 2.16.15

Opravy

  • **Tvůrčí hry — Strip mode base image** — editor dostane jako podkladový obrázek jen spodní pruh (80 px) kresby předchozího hráče místo celého obrázku; pás je oříznut přes dart:ui canvas a uložen do tmp souboru
Verze 2.16.14

Nové funkce

  • **Tvůrčí hry — Pictionary režim** — nový herní mód (pictionary): sekvence draw → guess, výchozí nastavení canvasu 1024×768
  • **Tvůrčí hry — akce Guess** — hráči mohou hádat obrázek přes bottom sheet; obrázek se stáhne před zobrazením sheetu
  • **Tvůrčí hry — akce Vote** — hlasování za nejlepší kresbu přes bottom sheet se seznamem tahů
  • **Tvůrčí hry — ukončení hry** — tlačítko Finish s potvrzovacím dialogem; canFinish přidáno do modelu CreativeGame
  • **Průzkumník — skupinové/globální sdílení polohy** — nový model ExplorerShareScope; API endpointy GET/PUT/DELETE /api/v2/explorer/sharing/scopes; nová sekce „Skupiny a globálně" v settings screenu sdílení polohy
Verze 2.16.13

Průzkumník světa — refactoring a UX

  • **Settings screen přepracován** — layout přepnut na CollapsibleHeaderScaffold + SettingsAdaptiveLayout (card-based); přidána nová karta „Trasy a záznamy" (odkaz na trasy + pending záznamy)
  • **Admin GPS sekce** — zobrazuje živé hodnoty aktuální GPS přesnosti a poslední odmítnuté polohy; poznámka vysvětluje, že nastavení platí jen pro admin ladění
  • **Pending debug screen** — přepnut na CollapsibleHeaderScaffold; hardcoded stringy nahrazeny l10n klíči
  • **SettingsService** — explorer nastavení (trasa, auto-start, interval, hex opacity, GPS přesnost, admin view-all) centralizována přes SettingsService místo přímého SharedPreferences v provideru
Verze 2.16.12

Interní

  • **Android ProGuard pravidla** — přidán proguard-rules.pro; R8 shrinking znovu zapnut se správnými keep rules (WorkManager, Room, Flutter Play Core dontwarn); APK zpět na původní velikost
Verze 2.16.11

Interní

  • **Android build systém — hotfix 2** — explicitně zakázáno R8 shrinkování (isMinifyEnabled = false); AGP 9.x ho zapínal defaultně a odstranil WorkDatabase_Impl (WorkManager padal při startu)
Verze 2.16.10

Interní

  • **Android build systém — hotfix** — Java target vrácen zpět na 17 (Java 21 způsoboval pády na starších zařízeních)
Verze 2.16.9

Interní

  • **Android build systém** — upgrade AGP 8.11.1 → 9.2.1, Kotlin 2.2.20 → 2.3.20, Gradle 8.14 → 9.4.1, Java 17 → 21; opravuje selhání release buildu (record_android 2.1.0 vyžadovalo AGP 9.x)
Verze 2.16.8

Průzkumník světa — vylepšení

  • **Detail buňky** — ťuknutí na prozkoumané hexagonální pole otevře bottom sheet s detailem: způsob objevu, datum, počty kroků (objev + návraty), datum poslední návštěvy
  • **Kroky v statistikách** — celkové kroky se nově čtou ze serverové odpovědi (totalStepsAllTime); zobrazeno rozlišení objev vs. návraty
  • **Sync log v debug obrazovce** — timestampovaný log posledních 50 sync operací zobrazen nahoře
  • **Force refresh ze serveru** — tlačítko v debug obrazovce smaže uloženou dobu syncu a stáhne znovu všechny buňky ze serveru
  • **Reset sync flags** — tlačítko v debug obrazovce označí všechny buňky a revisity jako neodesláno (pro případ chybějících dat na serveru)
  • **Výkon debug obrazovky** — seznam revisitů omezen na 100 položek (při 1200+ by ListView zamrzl)
  • **Oprava parsování timestampů** — odstraněna přebytečná přípona Z při parsování serverového času (zabraňuje dvojité konverzi časového pásma)
  • **Regiony** — odstraněna kategorie „Země" ze statistik regionů
Verze 2.16.7

Interní

  • **Dependency upgrady** — aktualizace balíčků na nejnovější major verze: go_router 14→17, record 6→7, chewie 1.7→1.14, flutter_local_notifications 21→22, device_info_plus 12→13, package_info_plus 9→10, flutter_map 7→8, permission_handler 11→12
  • **pubspec.lock sledován v gitu** — odstraněny duplicitní záznamy z .gitignore; lock file je nyní verzován pro reprodukovatelné buildy
Verze 2.16.6

Vylepšení

  • **Refresh her** — tlačítko v AppBaru hlavního seznamu her pro obnovení bez tahu dolů (praktické na PC)
  • **Avatar stanoviště** — v administraci stanovišť se zobrazí obrázek stanoviště (kulatě oříznutý) místo čísla pořadí, pokud je k dispozici; fallback na číslo

Opravy

  • **Android build** — odstraněna duplicitní konfigurace Kotlin pluginu (kotlin-android + kotlinOptions) z build.gradle.kts; build Androidu byl zbytečně přísný na JVM target
Verze 2.16.5

Opravy — Windows

  • **Konektivita** — ConnectivityProvider nyní monitoruje síť i na Windows (odstraněna chybná výjimka z doby kdy connectivity_plus Windows nepodporoval)
  • **Přehrávání audio komentářů** — audioplayer na Windows funguje; odstraněna blokace přehrávání pro Windows platformu
  • **Registrace pluginů** — doplněna manuální registrace pluginů v custom_plugin_registrant.cc: app_links, audioplayers, connectivity_plus, geolocator, local_notifier, permission_handler, record
Verze 2.16.4

Opravy

  • **QR Stopovaná — tlačítko správy** — ikonka správce (g3+) přesunuta z QrGamesScreen do GamesListScreen, kde je vždy dostupná přes normální navigaci
Verze 2.16.3

Vylepšení & Interní

  • **Flutter 3.44.1 + Dart 3.12.1** — upgrade Flutter frameworku na nejnovější stable
  • **app_links 7.1.1** — upgrade opravuje původní bug na Windows; odstraněn workaround MissingPluginException z DeepLinkController
Verze 2.16.2

Opravy

  • **Deep linky — Windows crash** — zachycena MissingPluginException z app_links 7.0.0 při startu na Windows s Flutter 3.38+; aplikace se nehroutí při absenci pluginu (workaround do vydání app_links 7.1.1)
Verze 2.16.1

Nové funkce

  • **QR Stopovaná — správcovské rozhraní (g3+)** — vedoucí (groupId ≥ 3) mají novou obrazovku pro správu her: vytváření/úprava/mazání her, spuštění a ukončení hry, správa stanovišť, týmů a nálepek (včetně generování); dostupné přes ikonku správce v seznamu QR her

Opravy

  • **Pull-to-refresh v seznamu her** — zatažení dolů v GamesListContent správně obnovuje data; AlwaysScrollableScrollPhysics opraveno aby fungovalo i pro prázdný/chybový stav

Model & Interní

  • AuthProvider.isManager — nová zkratka pro groupId ≥ 3
  • Nové modely: QrTeam, QrTeamMember, QrSticker
  • ApiService — doplněny typované metody fetchAllQrGames (bAll=1), fetchQrTeams, fetchQrStickers
  • 56 nových lokalizačních klíčů qrManage* (cs + en)
  • CLAUDE.md — aktualizovaná dokumentace (l10n příkazy, testy, QR sekce, opraven příklad verze)
Verze 2.16.0

Opravy

  • **QR Stopovaná — kritická oprava** — detail hry se od teď správně parsuje (data['game'] místo data); dříve se načítání hry mohlo tišce pokazit
  • **QR Stopovaná — postup** — záložka "Postup" nyní správně označuje naskenovaná stanoviště přes příznak bScanned ze serveru

Nové funkce

  • **QR Stopovaná — týmový scoreboard** — v týmovém módu zobrazuje skóre týmů s barvou a počtem členů; individuální i týmový scoreboard zobrazuje odznak "živě" když hra běží
  • **QR Stopovaná — časy v postupu** — záložka "Postup" zobrazuje čas naskenování a získané body u každého nalezeného stanoviště
  • **QR Stopovaná — manager API** — přidány klientské metody pro správu her: vytvoření/úprava/smazání hry, spuštění/ukončení hry, CRUD stanovišť, správa týmů a přiřazení hráčů, správa stickerů (generování a výpis)

Model & Interní

  • QrGame — doplněna pole createdBy, creatorName, creatorSurname, createdAt, scheduledEndAt
  • QrProgressEntry — doplněna pole bScanned, nScanPoints
  • Přidány modely QrTeamScoreEntry a QrScoreboardResponse
  • ApiConfig — doplněny všechny chybějící QR endpointy (game CRUD, checkpoint CRUD, týmy, stickery)
Verze 2.15.4

Nové funkce

  • **Deep linky na desktopu** — Windows, macOS a Linux teď plně podporují tabis:// URL scheme (QR kódy i čárové kódy zařízení)
  • **Windows single-instance deep link** — kliknutí na tabis:// odkaz předá URI běžící instanci aplikace a přenese ji do popředí
  • **Linux .deb balíček** — postinst skript automaticky registruje MIME handler (x-scheme-handler/tabis) po instalaci
  • **Deep link navigace přes GoRouter** — refaktorováno z Navigator.push na context.push() pro konzistentní navigační stack
Verze 2.15.3

Vylepšení & Opravy

  • **Lokalizace — herní obrazovky** — všechny arkádové hry (2048, Hledání min, Flappy Bird, Šibenice, Simon Says, Had, Sudoku, Color Match, Click Speed Test, Lights Out, Number Rush, Planarity, Přesmyčka, Mapové dlaždice, Slovní losování, Wordle, Stany a stromy) plně lokalizovány: záložky, tooltopy, stavové chipy, dialogy výsledků, sync stavové řádky (cs/en)
  • **Lokalizace — sdílené widgety** — dialog nápovědy (game_help_dialog), dialog hlášení slova (report_word_dialog) lokalizovány (cs/en)
Verze 2.15.2

Vylepšení & Opravy

  • **Lokalizace — multiplayer** — korespondenční hry, dialogy (nová hra, opuštění, konec hry, pozvánky), stavové bannery, záložky a herní volby plně lokalizovány (cs/en)
  • **Lokalizace — arkádové widgety** — dialog výsledku, obnovení rozehrané hry, sync tlačítko a žebříček/historie plně lokalizovány (cs/en)
Verze 2.15.1

Vylepšení & Opravy

  • **Korespondenční hry — řazení** — hry kde jsi na řadě se zobrazují vždy nahoře v seznamu
Verze 2.15.0

Nové funkce

  • **Explorer Trails — záznamy tras** — Průzkumník světa umí zaznamenávat trasy pohybu (start/stop sledování automaticky vytváří a ukládá trail do Hive), s volbou automatického startu a přehledem uložených tras na nové obrazovce

Vylepšení & Opravy

  • **QR Stopovaná — landscape detail** — detail hry na wide/tablet obrazovkách odstraňuje záložkový panel a zobrazuje obsah v dvousloupcovém rozložení; navigace přechodná na GoRouter (/home/games/qr/:id)
  • **QR Stopovaná — inline v seznamu her** — QR hry (probíhající i dostupné) jsou nyní zobrazeny přímo v hlavním seznamu her bez nutnosti přechodu na samostatnou obrazovku, se stavem načítání a offline hláškou
  • **QR Stopovaná — offline scan** — zjednodušeno zpracování offline skenů: odebrána kontrola hodinového driftu pro chain mód a přímá závislost na ApiService
  • **Pending změny — World Explorer detail** — obrazovka čekajících změn zobrazuje místo souhrnu jednotlivé buňky průzkumníku a revisity s datem a souřadnicemi
  • **Kompas — heading v titulku + kalibrace** — aktuální azimut je průběžně viditelný v záhlaví AppBaru; přidán banner pro upozornění na nutnost kalibrace magnetometru
  • **Lokalizace** — kompas, stopky, QR stopovaná, Průzkumník světa nastavení a pending debug screen plně lokalizovány (cs/en)
  • **Stopky — lokalizace ovládacích prvků** — závod, účastníci, výsledky a standardní ovládací prvky plně lokalizovány
Verze 2.14.11

Vylepšení & Opravy

  • **Pending změny — nové fronty** — obrazovka čekajících změn nově zobrazuje fronty arkádových výsledků, stopek a Průzkumníka světa s počtem položek, opakováním i zapojením do běžné synchronizace
  • **Pending změny — adaptivní obsah** — čekající změny mají samostatný content widget, kompaktní společný seznam a v landscape/tablet režimu levý výběr aktivní fronty
  • **Přílohy — audio a herní typy** — seznam příloh rozpoznává audio komentáře a herní přílohy, přidává pro ně filtry a u audio komentářů zobrazuje přehrávač přímo v kartě
  • **Audio komentáře — desktop fallback** — přehrávač audio komentářů umí vypnout přehrávání na nepodporovaném desktopu a bezpečně uklízí stav při dokončení nebo chybě
  • **Průzkumník světa — odolnější GPS** — výjimky z Geolocator pluginu se na Windows/release buildu zachytí do existujícího chybového stavu a po selhání se tracking korektně zastaví
  • **Dashboard — update banner offline** — známá dostupná aktualizace zůstává viditelná i ve chvíli, kdy dashboard hlásí offline stav
  • **Lokalizace a testy** — dotčené texty pending změn a příloh byly přesunuté do lokalizací a doplněny focused testy pro pending fronty, audio přehrávač, přílohy a dashboard bannery
Verze 2.14.10

Vylepšení & Opravy

  • **Vybavení — skupiny v landscape** — obrazovka skupin vybavení má samostatný adaptivní obsah, vyhledávání, lokalizované stavy a na širších obrazovkách přehlednější mřížku
  • **Vybavení — detail skupiny** — detail skupiny vybavení používá testovaný filtr položek, v landscape režimu zobrazuje položky v responzivní mřížce a lokalizuje filtry i prázdné stavy
  • **Žebříček karmy — přehled** — žebříček karmy má nový content widget a v landscape režimu doplňuje seznam o panel se zvoleným rokem, počtem osob, průměrem a top trojicí
  • **Notifikace — přehled a filtry** — obrazovka notifikací má adaptivní dvousloupcové rozložení, přehled celkem/nepřečtené/bezpečnostní a klikatelné filtry v širokém režimu
  • **Lokalizace a testy** — dotčené texty vybavení, karmy a notifikací byly přesunuté do českých/anglických lokalizací a doplněny focused testy pro nové widgety, filtry a prázdné stavy
Verze 2.14.9

Vylepšení & Opravy

  • **Detail události — adaptivní rozložení** — detail události se na širokých obrazovkách dělí do dvou sloupců a přehled osob umí rozbalit/sbalit dlouhé seznamy
  • **Detail táborníka — landscape režim** — detail táborníka používá skládací hlavičku, široké dvousloupcové rozložení a lokalizované popisky profilu i historie událostí
  • **Historie a nástěnka — filtrování původu** — historie táborníka i nástěnka používají lokalizované filtry původu událostí, prázdné stavy a čitelnější šířku obsahu v landscape režimu
  • **Nástěnka — automatické obnovování** — nástěnka má volitelné session-only automatické obnovování s ochranou proti překrývajícím se refreshům
  • **Notifikace — obnova obsahu** — FCM notifikace o nové události, komentáři nebo příloze umí spustit synchronizaci a v nastavení lze tuto obnovu obsahu vypnout
  • **Audio komentáře — chyba přehrání** — přehrávač hlasových komentářů nově chrání opakované spuštění a při chybě zobrazí lokalizovanou hlášku
  • **Testy** — doplněny focused testy pro nové layouty, filtry, auto-refresh, FCM sync nastavení, přehled osob a lokalizace
Verze 2.14.8

Vylepšení & Opravy

  • **Hry — landscape seznam** — seznam her má samostatný adaptivní obsah a na širokých obrazovkách lépe využívá dostupný prostor
  • **Přílohy — přehled obrazovky** — obrazovka příloh byla rozdělená do menších widgetů pro seznam, stavy a náhled médií
  • **Přílohy — čitelnost karet** — karty a náhledy příloh mají upravené rozložení pro stabilnější zobrazení v širších režimech
  • **Lokalizace a testy** — dotčené texty seznamu her a příloh byly přesunuté do lokalizací a doplněny focused testy pro nové content widgety
Verze 2.14.7

Vylepšení & Opravy

  • **Dashboard — landscape rozložení** — dashboard pokračuje v adaptivním rozložení pro široké obrazovky, s dvousloupcovým obsahem, stabilnější hlavičkou a lepším využitím prostoru
  • **Dashboard — lokalizace** — dotčené titulky, prázdné stavy, dialogy, rychlé akce, speed dial, status bannery a texty karty karmy jsou přesunuté do českých/anglických lokalizací
  • **Dashboard — rychlé akce a karty** — rychlé akce používají responzivní mřížku, přehled nedávných událostí a karty dashboardu mají lokalizované fallbacky a čitelnější texty
  • **Táborníci — adaptivní seznam** — seznam táborníků je vytažený do samostatného widgetu, podporuje skupinové filtrování a v landscape/tablet režimu používá širší mřížku s levým filtrem
  • **Testy** — doplněny focused testy pro dashboard komponenty, lokalizaci karet karmy, speed dial a adaptivní obsah seznamu táborníků
Verze 2.14.6

Vylepšení & Opravy

  • **Vybavení — detail v landscape** — detail vybavení má širší rozložení s levým panelem, přepínáním sekcí a filtrováním půjček i servisu bez ztráty původního kompaktního tabového režimu
  • **Vybavení — půjčky a servis** — půjčky a servisní záznamy se zobrazují jako přehlednější karty se stavem, metrikami, poznámkou a manažerskými akcemi
  • **Vybavení — přílohy obrázků** — upload fotek z kamery nebo galerie umí před odesláním otevřít sdílený editor obrázků a nahrát originál i upravenou kopii
  • **Nastavení — skládací hlavička** — obrazovka nastavení používá nový opakovaně použitelný collapsible header se zachovaným kompaktním i širokým rozložením sekcí
  • **Lokalizace a testy** — dotčené texty detailu vybavení byly přesunuté do českých/anglických lokalizací a doplněny focused testy pro nové rozložení, filtry, karty a hlavičku
Verze 2.14.5

Vylepšení & Opravy

  • **Landscape rozložení — základ** — přidány sdílené breakpointy a adaptivní stránkový wrapper pro obrazovky, které potřebují lépe pracovat se širokou obrazovkou
  • **Nastavení — široké rozložení** — obrazovka nastavení umí na větších landscape obrazovkách zobrazit sekce v levém navigačním panelu a obsah vpravo
  • **Arkádový scaffold — adaptivní šířka** — sdílený herní scaffold lépe využívá široký prostor a zachovává čitelné omezení obsahu
  • **Testy** — doplněny focused testy pro adaptivní stránku, nastavení v landscape rozložení a arcade scaffold
Verze 2.14.4

Vylepšení & Opravy

  • **Emoji Alchemy — stabilní mřížka** — výběr prvního prvku se nově zobrazuje ve snackbaru, takže se herní mřížka po vybrání prvku neposouvá ani nepřepočítává
  • **Emoji Alchemy — zrušení výběru** — snackbar nabízí rychlé zrušení výběru a při odznačení stejného prvku se aktivní hláška vyčistí
Verze 2.14.3

Vylepšení & Opravy

  • **Emoji Alchemy — landscape rozložení** — herní mřížka se na širších obrazovkách/tabletech přizpůsobí dostupné šířce, zobrazí více prvků v řádku a drží kompaktnější mezery
  • **Emoji Alchemy — čitelnost dlaždic** — dlaždice v širším rozložení lépe pracují s textem prvků a zachovávají původní portrait chování
  • **Lokalizace** — dotčené texty Emoji Alchemy byly přesunuté do českých/anglických lokalizačních klíčů a regenerované do AppLocalizations
Verze 2.14.2

Vylepšení & Opravy

  • **Malování — podklad tahu** — kreslicí tah se před otevřením editoru snaží načíst baseTurn z /turns, stáhnout jeho obrázek a použít ho jako podklad plátna
  • **Malování — fallback plátna** — když server nevrátí podklad nebo se obrázek nepodaří stáhnout, editor se otevře na prázdném plátně místo zablokování tahu
  • **Malování — diagnostika podkladu** — doplněny debug logy a lokalizované snackbar hlášky pro načtený, chybějící nebo nedostupný podklad
  • **Malování — payload viewer** — model odpovědi tahů nově rozlišuje uložené tahy a baseTurn; URL obrázků se stahují přes API helper do dočasného souboru
  • **Známé omezení** — modul Malování zůstává experimentální a stále není považovaný za stabilní produkční funkci
Verze 2.14.1

Vylepšení & Opravy

  • **Malování — experimentální modul** — přidán základ kreativních tahových her s route /home/drawing, rychlou akcí, providerem, API modelem a napojením na /api/v2/creative-games
  • **Malování — pozvánky a tahy** — klient umí zobrazit hry, přijmout pozvánku, rozlišit stav tahu a odeslat kreslicí payload pro tahovou hru
  • **Malování — detail tahů** — detail hry umí načítat turn payloady a zobrazovat uložené obrázky z base64/data URL nebo URL polí
  • **Notifikace Malování** — doplněny typy push notifikací pro creative games a tap navigace do modulu Malování
  • **Známé omezení** — modul Malování je v této podverzi rozbitý/experimentální a není připravený jako stabilní produkční funkce
  • **Testy** — upraveny focused testy pro rychlé akce, konfiguraci dashboardu, auth lifecycle a push koordinaci
Verze 2.14.0

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)
23dcbc37b201d1320ccecf92f0a3a64defee8bf1f067829794e0e18b13d4ac40
tabis2-app-2.59.1-arm64-v8a.apk
239d9010459ed03e5f3431bb98f21a92d24f6f3ca522b3afa40bc60c535f5ea3
tabis2-app-2.59.1-armeabi-v7a.apk
d6345e7af49bca8a87e5b027e9d856bb89c41d6d105f8d43daa52cf8afd7109e
tabis2-app-2.59.1-x86_64.apk
714fa6c64817e5192096c5e4244203ec78a61cef6f9c1935601fefd3ab6a8506
tabis2-app_2.52.4-1_amd64.deb
7fd9127673353f3966840b7160ddbf42c888c7f002dcaff8c5db112af9a197ba
tabis2-app-2.59.1-windows.msix
fc7ed1da5e5a525d68976e2e923f6d6cdd0e110adb3d07e87b1c8c044db8622e
tabis2-app-2.59.1-windows.zip
d17d6f8ace348a563d8162b84735e0f13c8e84b92e03eadbe9a73fae56de0180
tabis2-app-2.59.1-web.tar.gz

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