From 9a9d4e0677dd1dcbf74625ad616a6fa3be8c2c74 Mon Sep 17 00:00:00 2001 From: masensio Date: Fri, 16 May 2014 14:25:18 +0200 Subject: [PATCH] Fix: File can not be shown after several actions --- .../android/datamodel/FileDataStorageManager.java | 25 ++++++++++++++-------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/com/owncloud/android/datamodel/FileDataStorageManager.java b/src/com/owncloud/android/datamodel/FileDataStorageManager.java index a6765310..ec0a7efc 100644 --- a/src/com/owncloud/android/datamodel/FileDataStorageManager.java +++ b/src/com/owncloud/android/datamodel/FileDataStorageManager.java @@ -467,8 +467,7 @@ public class FileDataStorageManager { success = removeFolderInDb(folder); } if (removeLocalContent && success) { - File localFolder = new File(FileStorageUtils.getDefaultSavePathFor(mAccount.name, folder)); - success = removeLocalFolder(localFolder); + success = removeLocalFolder(folder); } } return success; @@ -491,20 +490,28 @@ public class FileDataStorageManager { return deleted > 0; } - private boolean removeLocalFolder(File folder) { + private boolean removeLocalFolder(OCFile folder) { boolean success = true; - if (folder.exists()) { - File[] files = folder.listFiles(); + File localFolder = new File(FileStorageUtils.getDefaultSavePathFor(mAccount.name, folder)); + if (localFolder.exists()) { + Vector files = getFolderContent(folder.getFileId()); if (files != null) { - for (File file : files) { - if (file.isDirectory()) { + for (OCFile file : files) { + if (file.isFolder()) { success &= removeLocalFolder(file); } else { - success &= file.delete(); + if (file.isDown()) { + File localFile = new File(file.getStoragePath()); + success &= localFile.delete(); + if (success) { + file.setStoragePath(null); + saveFile(file); + } + } } } } - success &= folder.delete(); + success &= localFolder.delete(); } return success; } -- 2.11.0