aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaj Yengisetty <raj@cyngn.com>2015-01-12 16:12:21 +0800
committerRaj Yengisetty <raj@cyngn.com>2015-01-12 16:17:30 +0800
commit010d820abf12f6ec89741a6e4d7692e79ab569e7 (patch)
treee25250a3557531179a684d7771d065a5cf8124c3
parentf7974424118e18e1afbcecd3e46e0b5ad76e276c (diff)
downloadandroid_packages_apps_CMFileManager-010d820abf12f6ec89741a6e4d7692e79ab569e7.tar.gz
android_packages_apps_CMFileManager-010d820abf12f6ec89741a6e4d7692e79ab569e7.tar.bz2
android_packages_apps_CMFileManager-010d820abf12f6ec89741a6e4d7692e79ab569e7.zip
CMFileManager: Add sort by size
Change-Id: Iae8c47beb8f229bb5e1936c0dbd153f356b099d7
-rw-r--r--res/values/arrays.xml2
-rw-r--r--res/values/strings.xml4
-rw-r--r--src/com/cyanogenmod/filemanager/preferences/NavigationSortMode.java10
-rw-r--r--src/com/cyanogenmod/filemanager/util/FileHelper.java9
4 files changed, 24 insertions, 1 deletions
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 @@
<item>@string/sort_by_name_desc</item>
<item>@string/sort_by_date_asc</item>
<item>@string/sort_by_date_desc</item>
+ <item>@string/sort_by_size_asc</item>
+ <item>@string/sort_by_size_desc</item>
</string-array>
<!-- The strings of the menu for navigation layout mode enumeration -->
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 @@
<string name="sort_by_date_asc">By date \u25B2</string>
<!-- Navigation View - Sort - Sort by date (descending) -->
<string name="sort_by_date_desc">By date \u25BC</string>
+ <!-- Navigation View - Sort - Sort by size (ascending) -->
+ <string name="sort_by_size_asc">By size \u25B2</string>
+ <!-- Navigation View - Sort - Sort by size (descending) -->
+ <string name="sort_by_size_desc">By size \u25BC</string>
<!-- Navigation View - Layout - Icons -->
<string name="layout_icons">Icons</string>
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);
}