diff --git a/app/src/main/java/com/nextcloud/utils/extensions/FileDataStorageManagerExtensions.kt b/app/src/main/java/com/nextcloud/utils/extensions/FileDataStorageManagerExtensions.kt index a495be548e41..8d6420c5cfd8 100644 --- a/app/src/main/java/com/nextcloud/utils/extensions/FileDataStorageManagerExtensions.kt +++ b/app/src/main/java/com/nextcloud/utils/extensions/FileDataStorageManagerExtensions.kt @@ -369,7 +369,7 @@ fun FileDataStorageManager.saveFolder(folder: OCFile, updatedFiles: List "${filesToRemove.size} files to remove" ) - val removedChildren = filesToRemove.filter { it.parentId == folder.fileId && !isPendingOfflineCreation(it) } + val removedChildren = filesToRemove.filter { it.parentId == folder.fileId } removedChildren.forEach { deleteLocalCopy(it) } db.runInTransaction { @@ -387,13 +387,14 @@ fun FileDataStorageManager.isPendingOfflineCreation(file: OCFile): Boolean { return offlineOperationDao.getByPath(path)?.isCreate() == true } -private fun FileDataStorageManager.upsertFolderContent(folder: OCFile, files: List) { - files.forEach { file -> +private fun FileDataStorageManager.upsertFolderContent(folder: OCFile, remoteFiles: List) { + remoteFiles.forEach { file -> val existingFile = findExistingFile(file) - val entity = file.toFileEntity(user.accountName).copy( + val rEntity = file.toFileEntity(user.accountName) + val entity = rEntity.copy( id = existingFile?.id, parent = folder.fileId, - mountType = existingFile?.mountType + mountType = rEntity.mountType ?: existingFile?.mountType ) val insertedRowId = fileDao.upsert(entity) diff --git a/app/src/main/java/com/nextcloud/utils/extensions/OCFileExtensions.kt b/app/src/main/java/com/nextcloud/utils/extensions/OCFileExtensions.kt index 3a0326a4964f..d53382ad251e 100644 --- a/app/src/main/java/com/nextcloud/utils/extensions/OCFileExtensions.kt +++ b/app/src/main/java/com/nextcloud/utils/extensions/OCFileExtensions.kt @@ -163,7 +163,7 @@ fun OCFile.toFileEntity(accountName: String): FileEntity = FileEntity( isEncrypted = isEncrypted.toInt(), etagInConflict = etagInConflict, sharedWithSharee = isSharedWithSharee.toInt(), - mountType = null, + mountType = mountType?.ordinal, hasPreview = isPreviewAvailable.toInt(), unreadCommentsCount = unreadCommentsCount, ownerId = ownerId, diff --git a/app/src/main/java/com/owncloud/android/datamodel/FileDataStorageManager.java b/app/src/main/java/com/owncloud/android/datamodel/FileDataStorageManager.java index ae793c845797..a92fe5fc9d14 100644 --- a/app/src/main/java/com/owncloud/android/datamodel/FileDataStorageManager.java +++ b/app/src/main/java/com/owncloud/android/datamodel/FileDataStorageManager.java @@ -784,6 +784,9 @@ private ContentValues createContentValuesBase(OCFile fileOrFolder) { cv.put(ProviderTableMeta.FILE_ETAG_ON_SERVER, fileOrFolder.getEtagOnServer()); cv.put(ProviderTableMeta.FILE_SHARED_VIA_LINK, fileOrFolder.isSharedViaLink() ? 1 : 0); cv.put(ProviderTableMeta.FILE_SHARED_WITH_SHAREE, fileOrFolder.isSharedWithSharee() ? 1 : 0); + if (fileOrFolder.getMountType() != null) { + cv.put(ProviderTableMeta.FILE_MOUNT_TYPE, fileOrFolder.getMountType().ordinal()); + } cv.put(ProviderTableMeta.FILE_PERMISSIONS, fileOrFolder.getPermissions()); cv.put(ProviderTableMeta.FILE_REMOTE_ID, fileOrFolder.getRemoteId()); cv.put(ProviderTableMeta.FILE_LOCAL_ID, fileOrFolder.getLocalId()); diff --git a/app/src/main/java/com/owncloud/android/datamodel/OCFile.java b/app/src/main/java/com/owncloud/android/datamodel/OCFile.java index 5626e13771fa..84623145fbc2 100644 --- a/app/src/main/java/com/owncloud/android/datamodel/OCFile.java +++ b/app/src/main/java/com/owncloud/android/datamodel/OCFile.java @@ -492,6 +492,7 @@ public void setFileName(String name) { /** * Used internally. Reset all file properties */ + @SuppressFBWarnings("ENMI_NULL_ENUM_VALUE") private void resetData() { fileId = -1; remotePath = null; @@ -521,7 +522,7 @@ private void resetData() { hidden = false; encrypted = false; readOnly = false; - mountType = WebdavEntry.MountType.INTERNAL; + mountType = null; richWorkspace = ""; firstShareTimestamp = 0; locked = false; @@ -705,7 +706,7 @@ private boolean hasPermission(String permission) { } public Integer getFileOverlayIconId(boolean isAutoUploadFolder) { - if (WebdavEntry.MountType.GROUP == mountType || mounted()) { + if (WebdavEntry.MountType.GROUP == mountType) { return R.drawable.ic_folder_overlay_account_group; } else if (sharedViaLink && !encrypted) { return R.drawable.ic_folder_overlay_link;