diff --git a/core/res/menu/activity_torrents.xml b/core/res/menu/activity_torrents.xml
index 8a64dc92..a596e1ec 100644
--- a/core/res/menu/activity_torrents.xml
+++ b/core/res/menu/activity_torrents.xml
@@ -69,6 +69,7 @@
+
diff --git a/core/res/values/strings.xml b/core/res/values/strings.xml
index 16349f53..01c004fb 100644
--- a/core/res/values/strings.xml
+++ b/core/res/values/strings.xml
@@ -32,6 +32,7 @@
Status
Date done
Date added
+ Download speed
Upload speed
Ratio
Filter list
diff --git a/core/src/org/transdroid/core/gui/TorrentsActivity.java b/core/src/org/transdroid/core/gui/TorrentsActivity.java
index f49cdde5..a3d74c0e 100644
--- a/core/src/org/transdroid/core/gui/TorrentsActivity.java
+++ b/core/src/org/transdroid/core/gui/TorrentsActivity.java
@@ -683,6 +683,11 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi
fragmentTorrents.sortBy(TorrentsSortBy.DateAdded);
}
+ @OptionsItem(resName = "action_sort_downspeed")
+ protected void sortByDownspeed() {
+ fragmentTorrents.sortBy(TorrentsSortBy.DownloadSpeed);
+ }
+
@OptionsItem(resName = "action_sort_upspeed")
protected void sortByUpspeed() {
fragmentTorrents.sortBy(TorrentsSortBy.UploadSpeed);
diff --git a/lib/src/org/transdroid/daemon/TorrentsComparator.java b/lib/src/org/transdroid/daemon/TorrentsComparator.java
index 34772030..64ea5bd6 100644
--- a/lib/src/org/transdroid/daemon/TorrentsComparator.java
+++ b/lib/src/org/transdroid/daemon/TorrentsComparator.java
@@ -66,6 +66,8 @@ public class TorrentsComparator implements Comparator {
return tor1.getDateAdded().compareTo(tor2.getDateAdded());
case DateDone:
return tor1.getDateDone().compareTo(tor2.getDateDone());
+ case DownloadSpeed:
+ return new Integer(tor1.getRateDownload()).compareTo(new Integer(tor2.getRateDownload()));
case UploadSpeed:
return new Integer(tor1.getRateUpload()).compareTo(new Integer(tor2.getRateUpload()));
case Ratio:
@@ -85,6 +87,8 @@ public class TorrentsComparator implements Comparator {
return 0 - tor1.getDateAdded().compareTo(tor2.getDateAdded());
case DateDone:
return 0 - tor1.getDateDone().compareTo(tor2.getDateDone());
+ case DownloadSpeed:
+ return 0 - (new Integer(tor1.getRateDownload()).compareTo(new Integer(tor2.getRateDownload())));
case UploadSpeed:
return 0 - (new Integer(tor1.getRateUpload()).compareTo(new Integer(tor2.getRateUpload())));
case Ratio:
diff --git a/lib/src/org/transdroid/daemon/TorrentsSortBy.java b/lib/src/org/transdroid/daemon/TorrentsSortBy.java
index becb0a35..c4d9a7a0 100644
--- a/lib/src/org/transdroid/daemon/TorrentsSortBy.java
+++ b/lib/src/org/transdroid/daemon/TorrentsSortBy.java
@@ -27,7 +27,8 @@ public enum TorrentsSortBy {
DateDone (3),
DateAdded (4),
UploadSpeed (5),
- Ratio (6);
+ Ratio (6),
+ DownloadSpeed (7);
private int code;
private static final Map lookup = new HashMap();