X-Git-Url: https://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fjvcard%2Fremote%2FSync.java;h=9fff9b8985056039e42c14c51dfb7013efb1412f;hb=cf77cb3542f2aefbebdb9aa00b358dbeb4489a73;hp=dbf03242fb3e82083a6ef601ee50b3edb66ad975;hpb=ebead449cce5df1849d54796fd2515a9e0556fee;p=jvcard.git diff --git a/src/be/nikiroo/jvcard/remote/Sync.java b/src/be/nikiroo/jvcard/remote/Sync.java index dbf0324..9fff9b8 100644 --- a/src/be/nikiroo/jvcard/remote/Sync.java +++ b/src/be/nikiroo/jvcard/remote/Sync.java @@ -12,6 +12,7 @@ import java.io.OutputStreamWriter; import java.net.Socket; import java.net.UnknownHostException; import java.security.InvalidParameterException; +import java.time.LocalDate; import java.util.List; import java.util.MissingResourceException; import java.util.ResourceBundle; @@ -191,7 +192,7 @@ public class Sync { if (tsOriginal != -1) { Card local = new Card(getCache(cacheDir), Format.VCard21); Card original = new Card(getCache(cacheDirOrig), Format.VCard21); - localChanges = !local.isEquals(original); + localChanges = !local.isEquals(original, true); } Verb action = null; @@ -234,6 +235,7 @@ public class Sync { setLastModified(data.remove(0)); Card server = new Card(Parser.parse(data, Format.VCard21)); card.replaceListContent(server); + if (card.isDirty()) card.save(); card.saveAs(getCache(cacheDirOrig), Format.VCard21); @@ -241,6 +243,8 @@ public class Sync { case POST: s.sendCommand(Verb.POST, name); s.sendLine(card.toString(Format.VCard21)); + card.saveAs(getCache(cacheDirOrig), Format.VCard21); + setLastModified(s.receiveLine()); break; default: // TODO @@ -294,7 +298,7 @@ public class Sync { return StringUtils.toTime(line); } catch (FileNotFoundException e) { return -1; - } catch (IOException e) { + } catch (Exception e) { return -1; } }