Sort the updates, not their IDs

Also, use a comparator to sort the updates and stop using the
Comparable interface. There are different ways to sort updates,
so don't define one.
This commit is contained in:
Gabriele M
2017-07-10 00:45:49 +02:00
parent 7d55cd93ee
commit 66ca7a79df
2 changed files with 12 additions and 8 deletions

View File

@@ -15,7 +15,7 @@
*/ */
package org.lineageos.updater; package org.lineageos.updater;
public class Update implements Comparable<Update> { public class Update {
private String mName; private String mName;
private String mDownloadUrl; private String mDownloadUrl;
@@ -83,9 +83,4 @@ public class Update implements Comparable<Update> {
public void setDownloadUrl(String downloadUrl) { public void setDownloadUrl(String downloadUrl) {
mDownloadUrl = downloadUrl; mDownloadUrl = downloadUrl;
} }
@Override
public int compareTo(Update u) {
return mTimestamp < u.mTimestamp ? -1 : mTimestamp > u.mTimestamp ? 1 : 0;
}
} }

View File

@@ -49,6 +49,7 @@ import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator;
import java.util.List; import java.util.List;
public class UpdatesActivity extends AppCompatActivity { public class UpdatesActivity extends AppCompatActivity {
@@ -188,8 +189,16 @@ public class UpdatesActivity extends AppCompatActivity {
} }
List<String> updateIds = new ArrayList<>(); List<String> updateIds = new ArrayList<>();
updateIds.addAll(controller.getIds()); List<UpdateDownload> sortedUpdates = controller.getUpdates();
Collections.sort(updateIds); Collections.sort(sortedUpdates, new Comparator<UpdateDownload>() {
@Override
public int compare(UpdateDownload u1, UpdateDownload u2) {
return Long.compare(u2.getTimestamp(), u1.getTimestamp());
}
});
for (Update update : sortedUpdates) {
updateIds.add(update.getDownloadId());
}
mAdapter.setData(updateIds); mAdapter.setData(updateIds);
mAdapter.notifyDataSetChanged(); mAdapter.notifyDataSetChanged();
} }