From a30b15c9d47cd830d6a61609f42fd181885374ac Mon Sep 17 00:00:00 2001 From: Roland Kaercher Date: Sat, 4 Mar 2017 19:41:22 +0100 Subject: [PATCH] SSHSynchronizer now returns absolute paths in syncresult. --- .../synchronizers/SSHSynchronizer.java | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/SyncOrg/src/main/java/com/coste/syncorg/synchronizers/SSHSynchronizer.java b/SyncOrg/src/main/java/com/coste/syncorg/synchronizers/SSHSynchronizer.java index f61949a6..3ac1c4d8 100644 --- a/SyncOrg/src/main/java/com/coste/syncorg/synchronizers/SSHSynchronizer.java +++ b/SyncOrg/src/main/java/com/coste/syncorg/synchronizers/SSHSynchronizer.java @@ -13,6 +13,8 @@ import org.eclipse.jgit.util.FS; import java.io.File; +import java.util.HashSet; +import java.util.Set; public class SSHSynchronizer extends Synchronizer { private final String LT = "SyncOrg"; @@ -78,12 +80,29 @@ public void connect() { } + private HashSet makeAbsolute(String folder, Set relativePaths) { + HashSet result = new HashSet<>(); + for (String filePath : relativePaths) { + result.add(folder + "/" + filePath); + } + return result; + } + + private SyncResult withAbsolutePaths(String folder, SyncResult relativePathsResult) { + SyncResult result = new SyncResult(); + result.newFiles = makeAbsolute(folder, relativePathsResult.newFiles); + result.changedFiles = makeAbsolute(folder, relativePathsResult.changedFiles); + result.deletedFiles = makeAbsolute(folder, relativePathsResult.deletedFiles); + result.setState(relativePathsResult.state); + return result; + } + public SyncResult synchronize() { if (PermissionManager.permissionGranted(context) == false) return new SyncResult(); if (isCredentialsRequired()) return new SyncResult(); String folder = Synchronizer.getSynchronizer(context).getAbsoluteFilesDir(); - SyncResult pullResult = JGitWrapper.pull(context, folder); + SyncResult pullResult = withAbsolutePaths(folder, JGitWrapper.pull(context, folder)); new JGitWrapper.PushTask(context).execute(); return pullResult;