From b4e08a472acb40c7322a341c7257dfdb70caa2cb Mon Sep 17 00:00:00 2001 From: Martin Carpella Date: Mon, 12 Sep 2016 21:15:02 +0200 Subject: [PATCH 1/2] Updated Syncthing to v0.14.6 --- ext/syncthing/src/github.com/syncthing/syncthing | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/syncthing/src/github.com/syncthing/syncthing b/ext/syncthing/src/github.com/syncthing/syncthing index 1188ebbb..7569b75d 160000 --- a/ext/syncthing/src/github.com/syncthing/syncthing +++ b/ext/syncthing/src/github.com/syncthing/syncthing @@ -1 +1 @@ -Subproject commit 1188ebbb7b0f4545da4bcfceeb63d3c3ce6bb4ee +Subproject commit 7569b75d61cb7a1f964f09aafa1c87d86554f377 From ebc0fe88dee9620097edba122a5b0aa67961af8d Mon Sep 17 00:00:00 2001 From: Martin Carpella Date: Mon, 12 Sep 2016 22:04:03 +0200 Subject: [PATCH 2/2] Fix device completion for v0.14.6 (fixes #736) --- .../com/nutomic/syncthingandroid/syncthing/RestApi.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/nutomic/syncthingandroid/syncthing/RestApi.java b/src/main/java/com/nutomic/syncthingandroid/syncthing/RestApi.java index 965b2cfc..15968488 100644 --- a/src/main/java/com/nutomic/syncthingandroid/syncthing/RestApi.java +++ b/src/main/java/com/nutomic/syncthingandroid/syncthing/RestApi.java @@ -157,6 +157,7 @@ public class RestApi implements SyncthingService.OnWebGuiAvailableListener, public long inSyncFiles; public long needBytes; public long needFiles; + public long needDeletes; public String state; public String invalid; } @@ -666,6 +667,8 @@ public class RestApi implements SyncthingService.OnWebGuiAvailableListener, private int getDeviceCompletion(String deviceId) { int folderCount = 0; float percentageSum = 0; + // Syncthing UI limits pending deletes to 95% completion of a device + int maxPercentage = 100; for (Map.Entry modelInfo : mCachedModelInfo.entrySet()) { boolean isShared = false; outerloop: @@ -681,6 +684,8 @@ public class RestApi implements SyncthingService.OnWebGuiAvailableListener, if (isShared) { long global = modelInfo.getValue().globalBytes; long local = modelInfo.getValue().inSyncBytes; + if (modelInfo.getValue().needFiles == 0 && modelInfo.getValue().needDeletes > 0) + maxPercentage = 95; percentageSum += (global != 0) ? (local * 100f) / global : 100f; @@ -688,7 +693,7 @@ public class RestApi implements SyncthingService.OnWebGuiAvailableListener, } } return (folderCount != 0) - ? Math.round(percentageSum / folderCount) + ? Math.min(Math.round(percentageSum / folderCount), maxPercentage) : 100; } @@ -744,6 +749,7 @@ public class RestApi implements SyncthingService.OnWebGuiAvailableListener, m.inSyncFiles = json.getLong("inSyncFiles"); m.needBytes = json.getLong("needBytes"); m.needFiles = json.getLong("needFiles"); + m.needDeletes = json.getLong("needDeletes"); m.state = json.getString("state"); m.invalid = json.optString("invalid"); mCachedModelInfo.put(folderId, m);