diff --git a/app/src/main/java/com/nextcloud/model/OCFileFilterType.kt b/app/src/main/java/com/nextcloud/model/OCFileFilterType.kt deleted file mode 100644 index 81451c242346..000000000000 --- a/app/src/main/java/com/nextcloud/model/OCFileFilterType.kt +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Nextcloud - Android Client - * - * SPDX-FileCopyrightText: 2024 Alper Ozturk - * SPDX-License-Identifier: AGPL-3.0-or-later - */ - -package com.nextcloud.model - -enum class OCFileFilterType { - Shared, - Favorite -} 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 f63196e8fcfa..01508657858e 100644 --- a/app/src/main/java/com/owncloud/android/datamodel/FileDataStorageManager.java +++ b/app/src/main/java/com/owncloud/android/datamodel/FileDataStorageManager.java @@ -43,7 +43,6 @@ import com.nextcloud.client.database.entity.OfflineOperationEntity; import com.nextcloud.client.jobs.offlineOperations.repository.OfflineOperationsRepository; import com.nextcloud.client.jobs.offlineOperations.repository.OfflineOperationsRepositoryType; -import com.nextcloud.model.OCFileFilterType; import com.nextcloud.model.OfflineOperationRawType; import com.nextcloud.model.OfflineOperationType; import com.nextcloud.model.ShareeEntry; @@ -2755,29 +2754,6 @@ public boolean isPartOfInternalTwoWaySync(OCFile file) { return false; } - public List filter(OCFile file, OCFileFilterType filterType) { - if (!file.isRootDirectory()) { - return getFolderContent(file,false); - } - - final List result = new ArrayList<>(); - final List allFiles = getAllFiles(); - for (OCFile ocFile: allFiles) { - boolean condition = false; - if (filterType == OCFileFilterType.Shared) { - condition = ocFile.isShared(); - } else if (filterType == OCFileFilterType.Favorite) { - condition = ocFile.isFavorite(); - } - - if (condition) { - result.add(ocFile); - } - } - - return result; - } - @Nullable public FileEntity getFileEntity(OCFile file) { if (file == null) { diff --git a/app/src/main/java/com/owncloud/android/datamodel/OCFileListAdapterDataProviderImpl.kt b/app/src/main/java/com/owncloud/android/datamodel/OCFileListAdapterDataProviderImpl.kt index 66622510612f..3f09d4d6e276 100644 --- a/app/src/main/java/com/owncloud/android/datamodel/OCFileListAdapterDataProviderImpl.kt +++ b/app/src/main/java/com/owncloud/android/datamodel/OCFileListAdapterDataProviderImpl.kt @@ -10,6 +10,7 @@ package com.owncloud.android.datamodel import com.nextcloud.client.database.entity.FileEntity import com.owncloud.android.ui.adapter.helper.OCFileListAdapterDataProvider +@Suppress("ReturnCount") class OCFileListAdapterDataProviderImpl(private val storageManager: FileDataStorageManager) : OCFileListAdapterDataProvider { override fun convertToOCFiles(id: Long): List = diff --git a/app/src/main/java/com/owncloud/android/ui/adapter/helper/OCFileListAdapterHelper.kt b/app/src/main/java/com/owncloud/android/ui/adapter/helper/OCFileListAdapterHelper.kt index 9d1fd774e87f..bca01ae9caba 100644 --- a/app/src/main/java/com/owncloud/android/ui/adapter/helper/OCFileListAdapterHelper.kt +++ b/app/src/main/java/com/owncloud/android/ui/adapter/helper/OCFileListAdapterHelper.kt @@ -12,9 +12,7 @@ import com.nextcloud.client.preferences.AppPreferences import com.nextcloud.utils.extensions.filterFilenames import com.nextcloud.utils.extensions.isTempFile import com.owncloud.android.MainApp -import com.owncloud.android.R import com.owncloud.android.datamodel.OCFile -import com.owncloud.android.ui.activity.DrawerActivity import com.owncloud.android.utils.FileSortOrder import com.owncloud.android.utils.MimeTypeUtil import kotlinx.coroutines.CoroutineScope @@ -23,7 +21,6 @@ import kotlinx.coroutines.Job import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.launch import kotlinx.coroutines.withContext -import java.util.ArrayList class OCFileListAdapterHelper { private val scope = CoroutineScope(Dispatchers.IO + SupervisorJob()) @@ -65,8 +62,6 @@ class OCFileListAdapterHelper { val showHiddenFiles = preferences.isShowHiddenFilesEnabled() val hasMimeTypeFilter = limitToMimeType.isNotEmpty() val isRootAndPersonalOnly = (OCFile.ROOT_PATH == directory.remotePath && MainApp.isOnlyPersonFiles()) - val isSharedView = (DrawerActivity.menuItemId == R.id.nav_shared) - val isFavoritesView = (DrawerActivity.menuItemId == R.id.nav_favorites) val rawResult = getFolderContent(directory, dataProvider, onlyOnDevice) val filtered = ArrayList(rawResult.size) @@ -90,14 +85,6 @@ class OCFileListAdapterHelper { } } - if (isSharedView && !file.isShared) { - continue - } - - if (isFavoritesView && !file.isFavorite) { - continue - } - if (file.isTempFile()) { continue } diff --git a/app/src/test/java/com/owncloud/android/ui/adapter/OCFileListAdapterHelperTest.kt b/app/src/test/java/com/owncloud/android/ui/adapter/OCFileListAdapterHelperTest.kt index 65db28cfe60a..edd0be902d65 100644 --- a/app/src/test/java/com/owncloud/android/ui/adapter/OCFileListAdapterHelperTest.kt +++ b/app/src/test/java/com/owncloud/android/ui/adapter/OCFileListAdapterHelperTest.kt @@ -79,6 +79,7 @@ class OCFileListAdapterHelperTest { this.localId = localId etag = "etag_$id" storagePath = localPath + sharees = emptyList() } fun prepare(files: List, offline: OCFile? = null) { @@ -130,6 +131,64 @@ class OCFileListAdapterHelperTest { assertEquals(FileSortOrder.SORT_Z_TO_A, sort) } + @Test + fun `prepareFileList favorites tab`() = runBlocking { + val env = Sut() + val root = env.root + + val sub1 = env.directory("/subDir", 1).apply { + isFavorite = true + } + val file1 = env.file(sub1, "image.jpg", 11, MimeType.JPEG) + val file2 = env.file(sub1, "image2.jpg", 12, MimeType.JPEG) + val file3 = env.file(sub1, "image3.jpg", 13, MimeType.JPEG) + val file4 = env.file(sub1, "vid4.mp4", 14, MimeType.MP4) + val file5 = env.file(sub1, "image5.jpg", 15, MimeType.JPEG) + + val sub2 = env.directory("/subDir2", 2).apply { + isFavorite = true + } + val file6 = env.file(sub2, "image6.jpg", 16, MimeType.JPEG) + + env.prepare(listOf(root, sub1, sub2, file1, file2, file3, file4, file5, file6)) + stubPreferences(sort = FileSortOrder.SORT_A_TO_Z, favFirst = true) + val (list, sort) = env.run(sub1) + assertEquals( + listOf("image.jpg", "image2.jpg", "image3.jpg", "image5.jpg", "vid4.mp4"), + list.map { it.fileName } + ) + assertEquals(FileSortOrder.SORT_A_TO_Z, sort) + } + + @Test + fun `prepareFileList share tab`() = runBlocking { + val env = Sut() + val root = env.root + + val sub1 = env.directory("/subDir", 1).apply { + isSharedViaLink = true + } + val file1 = env.file(sub1, "image.jpg", 11, MimeType.JPEG) + val file2 = env.file(sub1, "image2.jpg", 12, MimeType.JPEG) + val file3 = env.file(sub1, "image3.jpg", 13, MimeType.JPEG) + val file4 = env.file(sub1, "vid4.mp4", 14, MimeType.MP4) + val file5 = env.file(sub1, "image5.jpg", 15, MimeType.JPEG) + + val sub2 = env.directory("/subDir2", 2).apply { + isFavorite = true + } + val file6 = env.file(sub2, "image6.jpg", 16, MimeType.JPEG) + + env.prepare(listOf(root, sub1, sub2, file1, file2, file3, file4, file5, file6)) + stubPreferences(sort = FileSortOrder.SORT_A_TO_Z, favFirst = true) + val (list, sort) = env.run(sub1) + assertEquals( + listOf("image.jpg", "image2.jpg", "image3.jpg", "image5.jpg", "vid4.mp4"), + list.map { it.fileName } + ) + assertEquals(FileSortOrder.SORT_A_TO_Z, sort) + } + @Test fun `prepareFileList with multiple folders and favorites first`() = runBlocking { val env = Sut()