1
0
Fork 0
mirror of https://github.com/syncthing/syncthing-android.git synced 2024-11-23 04:41:16 +00:00

Set lenientMtimes option on all folders (fixes #146).

See syncthing/syncthing#831.
This commit is contained in:
Felix Ableitner 2014-10-14 15:02:50 +03:00
parent 560d7bf97a
commit a000eda4e4
2 changed files with 35 additions and 0 deletions

View file

@ -181,6 +181,8 @@ public class SyncthingService extends Service {
mApi.shutdown();
Log.i(TAG, "Starting syncthing according to current state and preferences");
mConfig = new ConfigXml(SyncthingService.this);
mConfig.updateIfNeeded();
mCurrentState = State.STARTING;
registerOnWebGuiAvailableListener(mApi);
new PollWebGuiAvailableTaskImpl().execute(mConfig.getWebGuiUrl());

View file

@ -129,6 +129,10 @@ public class ConfigXml {
r.setAttribute("directory", newDir);
changed = true;
}
if (applyLenientMTimes(r)) {
changed = true;
}
}
// Change global announce server port to 22026 for syncthing v0.9.0.
@ -143,6 +147,35 @@ public class ConfigXml {
}
}
/**
* Set 'lenientMtimes' (see https://github.com/syncthing/syncthing/issues/831) on the
* given folder.
*
* @return True if the XML was changed.
*/
private boolean applyLenientMTimes(Element folder) {
NodeList childs = folder.getChildNodes();
boolean lenientMTimesSet = false;
for (int i = 0; i < childs.getLength(); i++) {
if (childs.item(i).getNodeName().equals("lenientMtimes")) {
// Already set, do nothing (we assume that it is set to true, because nothing could
// change it (no GUI option).
lenientMTimesSet = true;
break;
}
}
// XML tag does not exist, create it.
if (!lenientMTimesSet) {
Log.i(TAG, "Set 'lenientMtimes' on folder " + folder.getAttribute("id"));
Element newElem = mConfig.createElement("lenientMtimes");
newElem.setTextContent(Boolean.toString(true));
folder.appendChild(newElem);
return true;
}
return false;
}
private Element getGuiElement() {
return (Element) mConfig.getDocumentElement()
.getElementsByTagName("gui").item(0);