Andy Scherzinger 8 жил өмнө
parent
commit
21c80b056e

+ 32 - 1
src/com/owncloud/android/utils/FileStorageUtils.java

@@ -263,7 +263,7 @@ public class FileStorageUtils {
                 files = FileStorageUtils.sortLocalFilesByDate(files);
                 break;
             case 2:
-                // mFiles = FileStorageUtils.sortBySize(mSortAscending);
+                files = FileStorageUtils.sortLocalFilesBySize(files);
                 break;
         }
 
@@ -359,6 +359,37 @@ public class FileStorageUtils {
         return files;
     }
 
+    /**
+     * Sorts list by Size
+     */
+    public static File[] sortLocalFilesBySize(File[] filesArray) {
+        final int multiplier = mSortAscending ? 1 : -1;
+
+        List<File> files = new ArrayList<File>(Arrays.asList(filesArray));
+
+        Collections.sort(files, new Comparator<File>() {
+            public int compare(File o1, File o2) {
+                if (o1.isDirectory() && o2.isDirectory()) {
+                    Long obj1 = getFolderSize(o1);
+                    return multiplier * obj1.compareTo(getFolderSize(o2));
+                }
+                else if (o1.isDirectory()) {
+                    return -1;
+                } else if (o2.isDirectory()) {
+                    return 1;
+                } else if (o1.length() == 0 || o2.length() == 0){
+                    return 0;
+                } else {
+                    Long obj1 = o1.length();
+                    return multiplier * obj1.compareTo(o2.length());
+                }
+            }
+        });
+
+        File[] returnArray = new File[1];
+        return files.toArray(returnArray);
+    }
+
     /**
      * Sorts list by Name
      * @param files     files to sort