From 010d820abf12f6ec89741a6e4d7692e79ab569e7 Mon Sep 17 00:00:00 2001 From: Raj Yengisetty Date: Mon, 12 Jan 2015 16:12:21 +0800 Subject: CMFileManager: Add sort by size Change-Id: Iae8c47beb8f229bb5e1936c0dbd153f356b099d7 --- res/values/arrays.xml | 2 ++ res/values/strings.xml | 4 ++++ .../filemanager/preferences/NavigationSortMode.java | 10 +++++++++- src/com/cyanogenmod/filemanager/util/FileHelper.java | 9 +++++++++ 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/res/values/arrays.xml b/res/values/arrays.xml index 5efc5702..0a0f2591 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -21,6 +21,8 @@ @string/sort_by_name_desc @string/sort_by_date_asc @string/sort_by_date_desc + @string/sort_by_size_asc + @string/sort_by_size_desc diff --git a/res/values/strings.xml b/res/values/strings.xml index aef1e5b8..c1f79f91 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -180,6 +180,10 @@ By date \u25B2 By date \u25BC + + By size \u25B2 + + By size \u25BC Icons diff --git a/src/com/cyanogenmod/filemanager/preferences/NavigationSortMode.java b/src/com/cyanogenmod/filemanager/preferences/NavigationSortMode.java index 41e97791..317ae59f 100644 --- a/src/com/cyanogenmod/filemanager/preferences/NavigationSortMode.java +++ b/src/com/cyanogenmod/filemanager/preferences/NavigationSortMode.java @@ -36,7 +36,15 @@ public enum NavigationSortMode implements ObjectIdentifier { /** * That mode sorts objects by date (descending). */ - DATE_DESC(3); + DATE_DESC(3), + /** + * That mode sorts objects by size (ascending). + */ + SIZE_ASC(4), + /** + * That mode sorts objects by size (descending). + */ + SIZE_DESC(5); private int mId; diff --git a/src/com/cyanogenmod/filemanager/util/FileHelper.java b/src/com/cyanogenmod/filemanager/util/FileHelper.java index d49d31f1..339fa8e9 100644 --- a/src/com/cyanogenmod/filemanager/util/FileHelper.java +++ b/src/com/cyanogenmod/filemanager/util/FileHelper.java @@ -776,6 +776,15 @@ public final class FileHelper { return fso1.getLastModifiedTime().compareTo(fso2.getLastModifiedTime()) * -1; } + //Size (ascending) + if (mode.getId() == NavigationSortMode.SIZE_ASC.getId()) { + return Long.compare(fso1.getSize(), fso2.getSize()); + } + //Size (descending) + if (mode.getId() == NavigationSortMode.SIZE_DESC.getId()) { + return Long.compare(fso1.getSize(), fso2.getSize()) * -1; + } + //Comparison between files directly return fso1.compareTo(fso2); } -- cgit v1.2.3