From 7f11d08e1def8fdde3bac62e956753b416e43d2f Mon Sep 17 00:00:00 2001 From: alperozturk Date: Wed, 12 Feb 2025 10:30:06 +0100 Subject: [PATCH] add FileDataStorageManager extension Signed-off-by: alperozturk --- .../FileDataStorageManagerExtensions.kt | 24 +++++++++++++++++++ .../datamodel/FileDataStorageManager.java | 24 ------------------- .../android/ui/adapter/OCFileListAdapter.java | 5 ++-- 3 files changed, 27 insertions(+), 26 deletions(-) create mode 100644 app/src/main/java/com/nextcloud/utils/extensions/FileDataStorageManagerExtensions.kt diff --git a/app/src/main/java/com/nextcloud/utils/extensions/FileDataStorageManagerExtensions.kt b/app/src/main/java/com/nextcloud/utils/extensions/FileDataStorageManagerExtensions.kt new file mode 100644 index 000000000000..bd860b38ac0d --- /dev/null +++ b/app/src/main/java/com/nextcloud/utils/extensions/FileDataStorageManagerExtensions.kt @@ -0,0 +1,24 @@ +/* + * Nextcloud - Android Client + * + * SPDX-FileCopyrightText: 2025 Alper Ozturk + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +package com.nextcloud.utils.extensions + +import com.nextcloud.model.OCFileFilterType +import com.owncloud.android.datamodel.FileDataStorageManager +import com.owncloud.android.datamodel.OCFile + +fun FileDataStorageManager.filter(file: OCFile, filterType: OCFileFilterType): List = + if (!file.isRootDirectory) { + getFolderContent(file, false) + } else { + getAllFiles().filter { ocFile -> + when (filterType) { + OCFileFilterType.Shared -> ocFile.isShared + OCFileFilterType.Favorite -> ocFile.isFavorite + } + } + } \ No newline at end of file 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 e209aa21b51b..dde6b56a210d 100644 --- a/app/src/main/java/com/owncloud/android/datamodel/FileDataStorageManager.java +++ b/app/src/main/java/com/owncloud/android/datamodel/FileDataStorageManager.java @@ -41,7 +41,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.utils.date.DateFormatPattern; @@ -2763,27 +2762,4 @@ 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; - } } diff --git a/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java b/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java index 31188adbbdef..5282ff07dba8 100644 --- a/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java +++ b/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java @@ -37,6 +37,7 @@ import com.nextcloud.client.preferences.AppPreferences; import com.nextcloud.model.OCFileFilterType; import com.nextcloud.model.OfflineOperationType; +import com.nextcloud.utils.extensions.FileDataStorageManagerExtensionsKt; import com.nextcloud.utils.extensions.OCFileExtensionsKt; import com.nextcloud.utils.extensions.ViewExtensionsKt; import com.nextcloud.utils.mdm.MDMConfig; @@ -824,10 +825,10 @@ public void swapDirectory( // TODO refactor add DrawerState instead of using static menuItemId if (DrawerActivity.menuItemId == R.id.nav_shared && currentDirectory != null) { - newList = updatedStorageManager.filter(currentDirectory, OCFileFilterType.Shared); + newList = FileDataStorageManagerExtensionsKt.filter(updatedStorageManager, currentDirectory, OCFileFilterType.Shared); } if (DrawerActivity.menuItemId == R.id.nav_favorites && currentDirectory != null) { - newList = updatedStorageManager.filter(currentDirectory, OCFileFilterType.Favorite); + newList = FileDataStorageManagerExtensionsKt.filter(updatedStorageManager, currentDirectory, OCFileFilterType.Favorite); } sortOrder = preferences.getSortOrderByFolder(directory);