From 1df103cb0f058594f04c578174c073efd6b4682a Mon Sep 17 00:00:00 2001 From: Felix Ableitner Date: Thu, 22 Dec 2016 14:21:55 +0900 Subject: [PATCH] Dont allow adding duplicate folder via notification (fixes #617) --- .../syncthingandroid/activities/FolderActivity.java | 8 ++++---- .../nutomic/syncthingandroid/service/EventProcessor.java | 5 ++++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/nutomic/syncthingandroid/activities/FolderActivity.java b/src/main/java/com/nutomic/syncthingandroid/activities/FolderActivity.java index deed9172..b3ddbc3e 100644 --- a/src/main/java/com/nutomic/syncthingandroid/activities/FolderActivity.java +++ b/src/main/java/com/nutomic/syncthingandroid/activities/FolderActivity.java @@ -229,6 +229,10 @@ public class FolderActivity extends SyncthingActivity return; } } + if (getIntent().hasExtra(EXTRA_DEVICE_ID)) { + mFolder.addDevice(getIntent().getStringExtra(EXTRA_DEVICE_ID)); + mFolderNeedsToUpdate = true; + } updateViewsAndSetListeners(); } @@ -345,10 +349,6 @@ public class FolderActivity extends SyncthingActivity mFolder.rescanIntervalS = 60; } mFolder.versioning = new Folder.Versioning(); - String deviceId = getIntent().getStringExtra(EXTRA_DEVICE_ID); - if (deviceId != null) { - mFolder.addDevice(deviceId); - } } private void prepareEditMode() { diff --git a/src/main/java/com/nutomic/syncthingandroid/service/EventProcessor.java b/src/main/java/com/nutomic/syncthingandroid/service/EventProcessor.java index e07f214b..9eae2ded 100644 --- a/src/main/java/com/nutomic/syncthingandroid/service/EventProcessor.java +++ b/src/main/java/com/nutomic/syncthingandroid/service/EventProcessor.java @@ -13,6 +13,7 @@ import android.preference.PreferenceManager; import android.support.v4.app.NotificationCompat; import android.util.Log; +import com.annimon.stream.Stream; import com.nutomic.syncthingandroid.R; import com.nutomic.syncthingandroid.activities.DeviceActivity; import com.nutomic.syncthingandroid.activities.FolderActivity; @@ -112,8 +113,10 @@ public class EventProcessor implements SyncthingService.OnWebGuiAvailableListene String folderLabel = (String) event.data.get("folderLabel"); Log.d(TAG, "Device " + deviceId + " wants to share folder " + folderId); + boolean isNewFolder = Stream.of(mApi.getFolders()) + .noneMatch(f -> f.id.equals(folderId)); intent = new Intent(mContext, FolderActivity.class) - .putExtra(FolderActivity.EXTRA_IS_CREATE, true) + .putExtra(FolderActivity.EXTRA_IS_CREATE, isNewFolder) .putExtra(FolderActivity.EXTRA_DEVICE_ID, deviceId) .putExtra(FolderActivity.EXTRA_FOLDER_ID, folderId) .putExtra(FolderActivity.EXTRA_FOLDER_LABEL, folderLabel);