diff --git a/clients/Android/app/src/main/java/org/mtuosc/techchat/activity/PostActivity.java b/clients/Android/app/src/main/java/org/mtuosc/techchat/activity/PostActivity.java index 6c1ac91..a69a873 100644 --- a/clients/Android/app/src/main/java/org/mtuosc/techchat/activity/PostActivity.java +++ b/clients/Android/app/src/main/java/org/mtuosc/techchat/activity/PostActivity.java @@ -94,12 +94,14 @@ public boolean onOptionsItemSelected(MenuItem item) { if (! item.isChecked()) { // call the sort function item.setChecked(true); + adapter.sortPosts(PostAdapter.NEWEST); } break; case R.id.menu_sort_oldest: if (! item.isChecked()) { - // call the sort function + item.setChecked(true); + adapter.sortPosts(PostAdapter.OLDEST); } break; case R.id.menu_sort_trending: diff --git a/clients/Android/app/src/main/java/org/mtuosc/techchat/models/PostAdapter.java b/clients/Android/app/src/main/java/org/mtuosc/techchat/models/PostAdapter.java index d3f9391..0eeddf4 100644 --- a/clients/Android/app/src/main/java/org/mtuosc/techchat/models/PostAdapter.java +++ b/clients/Android/app/src/main/java/org/mtuosc/techchat/models/PostAdapter.java @@ -11,10 +11,17 @@ import org.mtuosc.techchat.R; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; public class PostAdapter extends RecyclerView.Adapter { private ArrayList posts = new ArrayList<>(); + public static final int NEWEST = 0; + public static final int OLDEST = 1; + public static final int TRENDING = 2; + + @NonNull @Override public PostViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -53,4 +60,29 @@ public void addPost(Post post) { } public void flushPosts() {posts = new ArrayList();} + + public void sortPosts(int sortBy) { + switch (sortBy) { + case NEWEST: { + Collections.sort(posts, new Comparator() { + @Override + public int compare(Post post, Post t1) { + return post.getTimestamp().compareTo(t1.getTimestamp()); + } + }); + this.notifyDataSetChanged(); + break; + } + case OLDEST: { + Collections.sort(posts, new Comparator() { + @Override + public int compare(Post post, Post t1) { + return post.getTimestamp().compareTo(t1.getTimestamp()) * -1; + } + }); + this.notifyDataSetChanged(); + break; + } + } + } }