Ako synchronizácia funguje
Synchronizácia ide oboma smermi, ale nie všetko v oboch. Tu je presne napísané, čo z Budem vychádza, čo vieme prijať naspäť a čo sa stane s dňom, ktorého sa to týka.
Ako sa to nastaví na konkrétnom telefóne, je v návode Android: dostať Budem do Google Kalendára.
Dve adresy, nie jedna
Kalendár sa dá von pustiť dvomi cestami a je rozdiel, ktorú si vyberieš:
| CalDAV | Odoberaný odkaz (ICS feed) | |
|---|---|---|
| Smer | oboma smermi | iba na čítanie |
| Prihlásenie | e-mail a heslo zariadenia | nič — adresa samotná je kľúč |
| Kto to vie | Apple Kalendár, Thunderbird, Evolution, DAVx⁵ | úplne všetko vrátane Google Kalendára |
| Obnova | do hodiny, podľa nastavenia klienta | keď uzná služba za vhodné, bežne hodiny |
Kým nezapneš prepínač Synchronizácia do kalendára v nastaveniach kalendára, neodpovedá ani jedna z tých adries. Kalendár, ktorý to má vypnuté, z appky nevychádza vôbec.
Čo posielame von
Každý kúsok obsahu má vlastný prepínač — „synchronizuj mi kalendár“ znamená pre každého niečo iné:
| Prepínač | Čo sa objaví v kalendári | Dá sa to meniť z klienta? |
|---|---|---|
| Označené dni | celodenná udalosť na každý deň, ktorý si si zapísal | áno |
| Získané odznaky | celodenná udalosť v deň, keď si odznak získal | nie |
| Najbližší odznak | jedna udalosť v budúcnosti, na deň, keď by si ho získal | nie |
| Pripomienka | opakujúca sa udalosť s budíkom, v hodine, ktorú si nastavil | nie |
| Poznámky | text poznámky pod dátovým riadkom v popise | — |
Udalosti, ktoré sa meniť nedajú, klient nezmení ani keby chcel: server mu odpovie 403. Sú to veci, ktoré appka odvodzuje zo záznamu, nie polia na vypĺňanie.
Kalendár dostane v tvojej aplikácii svoju vlastnú farbu — tú, ktorú má v Budem.
Názov udalosti
Predvolený názov je ✓ Názov kalendára — 23. deň a je to preklad, takže ho dostaneš vo svojom jazyku. Ak ti nevyhovuje, v nastaveniach kalendára si napíš vlastnú šablónu. Použiť môžeš:
{ikona}, {kalendar}, {den}, {hodnota}, {jednotka}, {hodnotenie}
Anglické názvy ({icon}, {calendar}, {day}, {value}, {unit}, {rating}) fungujú rovnako. Čo v šablóne nie je premenná, ostane tak, ako si to napísal; prázdne premenné sa aj s pomlčkami okolo nich upracú, takže {ikona} {kalendar} — {hodnota} {jednotka} na kalendári, ktorý nič nemeria, neskončí ako „Prechádzka —“.
{den} je poradie dňa v sérii. Keď si doplníš starší deň, séria sa prečísluje a názvy nasledujúcich udalostí sa zmenia — je to v poriadku, klient si ich stiahne znova.
Popis udalosti
Prvý riadok nesie dáta, zvyšok je poznámka:
10/5
Prvý raz celá desiatka bez zastavenia.
Pred lomkou je hodnota, za ňou hodnotenie od 1 do 5. Chýbajúca polovica je pomlčka — 10/-, -/5. Ak kalendár nemeria nič a deň nemá hodnotenie, dátový riadok sa nepíše vôbec.
Poznámka ide von iba keď to zapneš. Prepínač je predvolene vypnutý, lebo poznámka je to najsúkromnejšie, čo v tejto appke je, a v cudzej kalendárovej službe ju už nemáme ako vziať späť.
Celý deň, bez času
Všetko okrem pripomienky ide von ako celodenná udalosť bez časovej zóny. Je to naschvál: dátum s časom sa v inej zóne vie zobraziť ako predchádzajúci deň a „označil som si dnešok?“ by začalo odpovedať rôzne podľa hodiny.
Pripomienka je jediná výnimka — tá je o hodine, nie o dni, a tá hodina sa počíta v tvojej časovej zóne.
Čo prijmeme naspäť
Toto funguje iba cez CalDAV, nie cez odoberaný odkaz.
- Vytvoríš udalosť v Budem kalendári → deň sa označí.
- Zmažeš udalosť → deň sa odznačí.
- Presunieš udalosť na iný deň → značka sa presunie s ňou.
Deň sa určuje z dátumu udalosti, nie z jej názvu. Ak klient pošle udalosť s časom, zarátame ju na deň v tvojej časovej zóne — kto v telefóne klikne na políčko o šiestej večer, myslel dnešok.
Názov si nepíšeš ty. Čokoľvek do neho napíšeš, pri najbližšej synchronizácii to prepíše názov podľa šablóny. Názov je náš, popis je tvoj.
Prvý riadok popisu čítame prísne. Ako dáta sa berie iba vtedy, keď naozaj vyzerá ako číslo/hodnotenie; čokoľvek iné znamená, že celý popis je poznámka. Kto do prvého riadku napíše vetu, o ňu neprichádza.
Udalosť je celý stav toho dňa. Keď dátový riadok vymažeš, vymaže sa hodnota aj hodnotenie — nie je to „nechaj ako bolo“. A poznámku z klienta uložíme len vtedy, keď máš poznámky zapnuté; inak by prázdna poznámka z telefónu prepísala tú, ktorú si napísal v appke.
Kedy to server odmietne
Vždy s odpoveďou 403 a klient to ukáže ako chybu synchronizácie. Nie je to porucha:
| Situácia | Prečo |
|---|---|
| Dátum je starší ako tri dni alebo v budúcnosti | Zapisovať sa dá dnešok a tri dni dozadu. Rovnaké pravidlo ako v appke, rozhoduje o tom to isté miesto v kóde. |
| Klient chce zmeniť odznak alebo pripomienku | Tie appka odvodzuje, nie sú to polia na vypĺňanie. |
| Zmazanie dňa, ktorý má poznámku | Švihnutie prstom v telefóne nemá zmazať pár viet napísaných večer. Zruš taký deň v appke. |
| Archivovaný kalendár | Archív je zavretá kniha. |
Ako klient zistí, že sa niečo zmenilo
Nepýta sa na celý kalendár. Každá kolekcia má svoje číslo verzie a každá udalosť svoj podpis; klient sa spýta na ne a keď sa nič nezmenilo, nesťahuje nič. Číslo verzie ide hore pri každej zmene, ktorú by klient mohol vidieť — pri označení dňa aj pri preklopení prepínača v nastaveniach.
Preto sa zmena neobjaví v telefóne okamžite, ale pri najbližšej synchronizácii. Väčšina aplikácií má v menu aj „Synchronizovať teraz“.
Čo von nejde nikdy
- Kalendáre, ktoré nemajú synchronizáciu zapnutú.
- List sebe do budúcnosti. Ostáva v appke, aj keď je všetko ostatné zapnuté.
- Čokoľvek o tvojom konte — e-mail, nastavenia, iné kalendáre.
- Poznámky, kým ich sám nezapneš.
A nič z toho sa nikde nezapisuje do logov — ani poznámka, ani adresa feedu. Podrobne v ochrane súkromia.
Heslá zariadení
Do kalendárovej aplikácie nikdy nedávaj heslo ku kontu. Namiesto neho si v nastaveniach konta vytvor heslo zariadenia: pomenuješ ho podľa telefónu, ukáže sa raz a zrušiť sa dá samostatne, bez dotyku na zvyšok konta. Kto sa prihlasuje cez Google, iné heslo ani nemá.
Pri odoberanom odkaze žiadne heslo nie je — kľúčom je samotná adresa. Preto platí to isté: kto ju má, kalendár si prečíta. Zrušiť sa dá jedným klikom a vytvoriť nový tiež.