Lavorare sulla funzione Calendario#

La funzione Calendario è fornita da diversi componenti:

  • La Calendar App, che fornisce l’interfaccia utente

  • Evolution Data Server (spesso abbreviato in «EDS»), che è il backend in cui sono memorizzati i calendari

  • sync-monitor, il servizio responsabile della gestione della sincronizzazione con i calendari remoti

  • SyncEvolution, il servizio responsabile dell’esecuzione della sincronizzazione con un calendario remoto WebDAV/CalDAV

Debugging-#

Il modo più comodo per eseguire comandi sul dispositivo e raccogliere i log è aprire una shell remota. Questo può essere fatto usando Shell access via ADB o Shell access via SSH. Nelle sezioni seguenti si presuppone che si abbia accesso a una console terminale del dispositivo.

Problemi di programmazione e di account#

Se non siete sicuri se il calendario è sincronizzato, o se l’operazione ha successo, sync-monitor è il componente che deve essere esaminato. Questo servizio dovrebbe sempre essere in esecuzione in background, e i suoi registri possono essere trovati in ~/.cache/upstart/sync-monitor.log. Per visualizzarli stampati in tempo reale mentre si opera sul dispositivo, è possibile eseguire questo comando:

tail -f .cache/upstart/sync-monitor.log

Questi registri dovrebbero essere sufficienti per darvi un’idea se i vostri conti del calendario sono riconosciuti, e se una sincronizzazione è programmata, accade, e completa con successo.

Problemi di sincronizzazione dei dati del calendario#

Segui questi passaggi una volta che sei sicuro che una sincronizzazione del tuo account è almeno tentata, e vuoi indagare su un guasto di sincronizzazione o problemi con elementi mancanti o duplicati. Sul dispositivo, è possibile eseguire ``syncevolution` in modalità debug. Per farlo, terminare qualsiasi processo esistente:

pkill sync-evo

Quindi, avviare il processo syncevolution con la variabile ambiente corretta:

SYNCEVOLUTION_DEBUG=1 /usr/lib/arm-linux-gnueabihf/syncevolution/syncevo-dbus-server

A questo punto, aprire l’App Calendar (se non era già aperta) e attivare manualmente una sincronizzazione (nota che l’azione Synchronisation è disponibile solo se il dispositivo è collegato a Internet): tutti i registri appariranno nel terminale.

In alcuni casi, l’output da syncevolution potrebbe non essere sufficiente: ad esempio, i dati HTTP grezzi di solito non sono stampati. Se avrai bisogno di vederli, allora dovrai modificare anche un file di configurazione. I file di configurazione di syncevolution si trovano sotto ~/.config/syncevolution/, in una sottodirectory il cui nome prende il modulo <provider-name>- No.<account-id>. Ci potrebbero essere anche directory stanti, riferendosi a conti vecchi che sono stati cancellati da allora. Per scoprire quali account sono ancora validi, è possibile invocare il ``account-console``strumento come questo:

account-console list

Questo stamperà l’elenco dei conti validi correnti. Una volta capito qual è l’account che ti interessa, apri il file ~/.config/syncevolution/<account>/peers/target-config/config.ini e imposta la variabile loglevel a un valore superiore (11 sembra sufficiente per stampare tutto il traffico HTTP):

# level of detail for log messages:
# - 0 (or unset) = INFO messages without log file, DEBUG with log file
# - 1 = only ERROR messages
# - 2 = also INFO messages
# - 3 = also DEBUG messages
# > 3 = increasing amounts of debug messages for developers
loglevel = 11

Si noti che in modo che queste modifiche abbiano effetto, dovrai riavviare nuovamente il processo syncevolution, come spiegato sopra.