diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 1b92f03..cb937f2 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.1.2 +current_version = 0.1.3 commit = True tag = False diff --git a/.travis.yml b/.travis.yml index fcba60c..944f78c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,9 +18,9 @@ deploy: secure: bu664xqdPaj+6JomOZJ7ivzIaDrGZXySCApcAYO7AIwBY0KlkbFO/zY/kYb7XRu7DfNYqDM9i2gGsdqneTDlvjg8NmxkpviKjrPMG8Fp8sjQK544ae4kpptMFc9d0eC+z5lv1WjrK9Jzq7Mnv0SKAcdtGguoGkUN1xE3PqK3wmvz7xKSAWSZZM3e5lw9AbBgShQTBfAV3qkE06Ga34Al72mqJ7BS3ZscxnJiLMW+jhlAGE+t+GybE53+QLgMJje2RU6gRJagi+IIem93uQuGAdZ6+eYrd4yqxEQyZpBIQz9kJs6P+WqC4yk46cmEBUZEYA/U8vxPOd7e8UawtOSfBMODvJKLAZoB/GKWXm9u0i0C906DEBZPSMMTVe3Pq1pO4smqiv8aC5cTCxsM3MXqsl1yssnhFX/HDJgu+QAqEoXmXNLUF4OV/1tIdveJXXjvGHOGUhTbC65d0qHA7alSUhql/IQ9Ha7QtSMFKVf3Re8U2IWr9VYfOhgGDw9e3cdARkDwZo+xk7moIfr4XGUMpOWRowZ+i0jZK2rE720T6TvsTjW95G9lXiUkViVex+vbiv/CwXak/msG5P/mkPxu8DACRltdquqAyyVZTZL94HOaL8Ra4g8GjyNOWmQujv4GgPltd0ZjCoEZh6IQ/qiyozRtonLgEwRMNzs7+wz5JOE= skip_cleanup: true file: - - build/distributions/goobox-sync-sia-0.1.2-linux.tar.gz - - build/distributions/goobox-sync-sia-0.1.2-mac.tar.gz - - build/distributions/goobox-sync-sia-0.1.2-win64.tar.gz + - build/distributions/goobox-sync-sia-0.1.3-linux.tar.gz + - build/distributions/goobox-sync-sia-0.1.3-mac.tar.gz + - build/distributions/goobox-sync-sia-0.1.3-win64.tar.gz on: tags: true repo: GooBox/goobox-sync-sia diff --git a/README.md b/README.md index 4d2b0fc..c50ec0d 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # goobox-sync-sia [![Build Status](https://travis-ci.org/GooBox/goobox-sync-sia.svg?branch=master)](https://travis-ci.org/GooBox/goobox-sync-sia) [![Build status](https://ci.appveyor.com/api/projects/status/j4lv9lnd07o1qe5n/branch/master?svg=true)](https://ci.appveyor.com/project/jkawamoto/goobox-sync-sia/branch/master) -[![Release](https://img.shields.io/badge/release-0.1.2-brightgreen.svg)](https://github.com/GooBox/goobox-sync-sia/releases/tag/v0.1.2) +[![Release](https://img.shields.io/badge/release-0.1.3-brightgreen.svg)](https://github.com/GooBox/goobox-sync-sia/releases/tag/v0.1.3) [![GPLv3](https://img.shields.io/badge/license-GPLv3-blue.svg)](https://www.gnu.org/copyleft/gpl.html) sync app for [sia](https://sia.tech/). diff --git a/build.gradle b/build.gradle index c27ccd2..dc6807a 100644 --- a/build.gradle +++ b/build.gradle @@ -37,7 +37,7 @@ apply plugin: "com.github.hierynomus.license" apply plugin: "com.github.kt3k.coveralls" -version = '0.1.2' +version = '0.1.3' mainClassName = 'io.goobox.sync.sia.App' applicationDefaultJvmArgs = ["-Dlogback.statusListenerClass=ch.qos.logback.core.status.NopStatusListener"] diff --git a/pom.xml b/pom.xml index 46e53ce..a0a298b 100644 --- a/pom.xml +++ b/pom.xml @@ -225,7 +225,7 @@ - 0.1.2 + 0.1.3 1.7 ${java.version} ${java.version} diff --git a/src/main/java/io/goobox/sync/sia/App.java b/src/main/java/io/goobox/sync/sia/App.java index 6dd71f2..d737fd0 100644 --- a/src/main/java/io/goobox/sync/sia/App.java +++ b/src/main/java/io/goobox/sync/sia/App.java @@ -88,7 +88,7 @@ public final class App implements Callable { /** * Version information. */ - public static final String Version = "0.1.2"; + public static final String Version = "0.1.3"; /** * The number of the minimum required contracts. @@ -285,6 +285,7 @@ public Context getContext() { } public void refreshOverlayIcon(@NotNull Path localPath) { + logger.trace("Refresh the overlay icon of {}", localPath); this.overlayHelper.refresh(localPath); if (DB.isSynced()) { this.overlayHelper.setOK(); @@ -395,6 +396,7 @@ public Integer call() throws IOException { } this.resumeTasks(ctx, executor); + this.refreshOverlayIcon(ctx.getConfig().getSyncDir()); final RecoveryTask startSiaDaemonTask = new StartSiaDaemonTask(); executor.scheduleWithFixedDelay( diff --git a/src/main/java/io/goobox/sync/sia/task/CheckStateTask.java b/src/main/java/io/goobox/sync/sia/task/CheckStateTask.java index cbb5c61..4ad96a4 100644 --- a/src/main/java/io/goobox/sync/sia/task/CheckStateTask.java +++ b/src/main/java/io/goobox/sync/sia/task/CheckStateTask.java @@ -315,9 +315,7 @@ private void enqueueForUpload(@NotNull final Path localPath) throws IOException private void enqueueForDownload(@NotNull final SiaFile file) throws IOException { DB.addForDownload(file, file.getLocalPath()); - if (Files.exists(file.getLocalPath())) { - App.getInstance().ifPresent(app -> app.refreshOverlayIcon(file.getLocalPath())); - } + App.getInstance().ifPresent(app -> app.refreshOverlayIcon(file.getLocalPath())); this.executor.execute(new RetryableTask(new DownloadCloudFileTask(this.ctx, file.getName()), new StartSiaDaemonTask())); } @@ -374,6 +372,7 @@ private void processLocalFile(Set processedFiles) { // It should be deleted from the DB. logger.debug("Remove deleted file {} from the sync DB", syncFile.getName()); DB.remove(syncFile.getName()); + App.getInstance().ifPresent(app -> syncFile.getLocalPath().ifPresent(app::refreshOverlayIcon)); return syncFile.getName(); }) .forEach(processedFiles::add); diff --git a/src/main/java/io/goobox/sync/sia/task/CheckUploadStateTask.java b/src/main/java/io/goobox/sync/sia/task/CheckUploadStateTask.java index 76ea12e..8fa2c4e 100644 --- a/src/main/java/io/goobox/sync/sia/task/CheckUploadStateTask.java +++ b/src/main/java/io/goobox/sync/sia/task/CheckUploadStateTask.java @@ -73,7 +73,10 @@ public Void call() throws ApiException { if (syncFileOpt.isPresent()) { final SyncFile syncFile = syncFileOpt.get(); - if (syncFile.getState() != SyncState.UPLOADING) { + if (syncFile.getState() == SyncState.SYNCED) { + logger.trace("Skip processing {} because it has been already synced", syncFile.getName()); + return; + } else if (syncFile.getState() != SyncState.UPLOADING) { logger.debug("Cancel uploading {} because it's not marked as UPLOADING: {}", syncFile.getName(), syncFile.getState()); try { api.renterDeleteSiapathPost(APIUtils.toSlash(siaFile.getCloudPath())); diff --git a/src/test/java/io/goobox/sync/sia/AppTest.java b/src/test/java/io/goobox/sync/sia/AppTest.java index 82ea870..d7f9274 100644 --- a/src/test/java/io/goobox/sync/sia/AppTest.java +++ b/src/test/java/io/goobox/sync/sia/AppTest.java @@ -410,6 +410,7 @@ public void testCall() throws GetWalletInfoTask.WalletException, ApiException, I new FileWatcher(ctx.getConfig().getSyncDir(), executor); overlayHelper.setSynchronizing(); + app.refreshOverlayIcon(ctx.getConfig().getSyncDir()); }}; new Expectations(System.class) {{ @@ -497,6 +498,7 @@ public void testCallWithOutputEvents() throws IOException, GetWalletInfoTask.Wal new FileWatcher(ctx.getConfig().getSyncDir(), executor); overlayHelper.setSynchronizing(); + app.refreshOverlayIcon(ctx.getConfig().getSyncDir()); }}; new Expectations(System.class) {{ @@ -585,6 +587,7 @@ public void testCallWithOutputEventsAndDisableAutoAllocation() throws IOExceptio new FileWatcher(ctx.getConfig().getSyncDir(), executor); overlayHelper.setSynchronizing(); + app.refreshOverlayIcon(ctx.getConfig().getSyncDir()); }}; app.call(); diff --git a/src/test/java/io/goobox/sync/sia/task/CheckStateTaskTest.java b/src/test/java/io/goobox/sync/sia/task/CheckStateTaskTest.java index 68509ba..61e592a 100644 --- a/src/test/java/io/goobox/sync/sia/task/CheckStateTaskTest.java +++ b/src/test/java/io/goobox/sync/sia/task/CheckStateTaskTest.java @@ -208,9 +208,9 @@ public void newCloudFile() throws ApiException { api.renterFilesGet(); result = res; - // Since the local files doesn't exist yet, refresh should be skipped. App.getInstance(); - times = 0; + result = Optional.of(app); + app.refreshOverlayIcon(siaFile.getLocalPath()); }}; final ExecutorMock executor = new ExecutorMock(); @@ -752,7 +752,8 @@ public void downloadFailedAndLocalFileIsNotFound() throws ApiException, IOExcept result = res; App.getInstance(); - times = 0; + result = Optional.of(app); + app.refreshOverlayIcon(localPath); }}; final ExecutorMock executor = new ExecutorMock(); diff --git a/src/test/java/io/goobox/sync/sia/task/DownloadCloudFileTaskTest.java b/src/test/java/io/goobox/sync/sia/task/DownloadCloudFileTaskTest.java index e84f24b..7d9b61b 100644 --- a/src/test/java/io/goobox/sync/sia/task/DownloadCloudFileTaskTest.java +++ b/src/test/java/io/goobox/sync/sia/task/DownloadCloudFileTaskTest.java @@ -99,6 +99,7 @@ public long getFileSize() { return System.currentTimeMillis(); } }, this.localPath); + DBMock.committed = false; }