private FolderEntry fillFolderWithLocalData(FolderEntry folderEntry) throws SecurityException { //Attach sync info for files for (FileEntry file : folderEntry.getFiles()) { FileSyncInfo syncInfo = syncInfoProvider.getInfoForFile(file); file.attachSyncInfo(syncInfo); } //Attach local data for sub folders for (FolderEntry folder : folderEntry.getFolders()) { folder.setLocalFiles(fileCacheProvider.getLocalFiles(folder.getId())); } //Attach local data to root folder List listToAdd = new ArrayList<>(); for (FileEntry localEntry : fileCacheProvider.getLocalFiles(folderEntry.getId())) { if (!folderEntry.getFiles().contains(localEntry)) { listToAdd.add(localEntry); } } folderEntry.getFiles().addAll(0, listToAdd); return folderEntry; }