Browse Source

remove duplicated code

Signed-off-by: alperozturk <alper_ozturk@proton.me>
alperozturk 9 months ago
parent
commit
9b40ac89ca

+ 12 - 0
app/src/main/java/com/nextcloud/model/OCFileFilterType.kt

@@ -0,0 +1,12 @@
+/*
+ * Nextcloud - Android Client
+ *
+ * SPDX-FileCopyrightText: 2024 Alper Ozturk <alper.ozturk@nextcloud.com>
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+package com.nextcloud.model
+
+enum class OCFileFilterType {
+    Shared, Favorite
+}

+ 8 - 17
app/src/main/java/com/owncloud/android/datamodel/FileDataStorageManager.java

@@ -40,6 +40,7 @@ import com.nextcloud.client.database.entity.FileEntity;
 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.OfflineOperationType;
 import com.nextcloud.utils.date.DateFormatPattern;
 import com.nextcloud.utils.extensions.DateExtensionsKt;
@@ -2594,8 +2595,7 @@ public class FileDataStorageManager {
         return false;
     }
 
-    // TODO remove duplicated codes
-    public List<OCFile> getSharedFiles(OCFile file) {
+    public List<OCFile> filter(OCFile file, OCFileFilterType filterType) {
         if (!file.isRootDirectory()) {
             return getFolderContent(file,false);
         }
@@ -2603,23 +2603,14 @@ public class FileDataStorageManager {
         final List<OCFile> result = new ArrayList<>();
         final List<OCFile> allFiles = getAllFiles();
         for (OCFile ocFile: allFiles) {
-            if (ocFile.isShared()) {
-                result.add(ocFile);
+            boolean condition = false;
+            if (filterType == OCFileFilterType.Shared) {
+                condition = ocFile.isShared();
+            } else if (filterType == OCFileFilterType.Favorite) {
+                condition = ocFile.isFavorite();
             }
-        }
-
-        return result;
-    }
-
-    public List<OCFile> getFavoriteFiles(OCFile file) {
-        if (!file.isRootDirectory()) {
-            return getFolderContent(file,false);
-        }
 
-        final List<OCFile> result = new ArrayList<>();
-        final List<OCFile> allFiles = getAllFiles();
-        for (OCFile ocFile: allFiles) {
-            if (ocFile.isFavorite()) {
+            if (condition) {
                 result.add(ocFile);
             }
         }

+ 3 - 2
app/src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java

@@ -33,6 +33,7 @@ import com.nextcloud.android.common.ui.theme.utils.ColorRole;
 import com.nextcloud.client.account.User;
 import com.nextcloud.client.jobs.upload.FileUploadHelper;
 import com.nextcloud.client.preferences.AppPreferences;
+import com.nextcloud.model.OCFileFilterType;
 import com.nextcloud.utils.extensions.ViewExtensionsKt;
 import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
@@ -770,10 +771,10 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
 
             // TODO refactor add DrawerState instead of using static menuItemId
             if (DrawerActivity.menuItemId == R.id.nav_shared && currentDirectory != null) {
-                mFiles = updatedStorageManager.getSharedFiles(currentDirectory);
+                mFiles = updatedStorageManager.filter(currentDirectory, OCFileFilterType.Shared);
             }
             if (DrawerActivity.menuItemId == R.id.nav_favorites && currentDirectory != null) {
-                mFiles = updatedStorageManager.getFavoriteFiles(currentDirectory);
+                mFiles = updatedStorageManager.filter(currentDirectory, OCFileFilterType.Favorite);
             }
 
             sortOrder = preferences.getSortOrderByFolder(directory);