package com.seafile.seadroid2.ui.adapter; import android.widget.ImageView; import com.google.common.collect.Lists; import com.seafile.seadroid2.R; import com.seafile.seadroid2.data.SeafRepo; import java.util.Collections; import java.util.List; /** * Repos adapter */ public class SeafReposAdapter extends ReposAdapter { public SeafReposAdapter(boolean onlyShowWritableRepos, String encryptedRepoId) { super(onlyShowWritableRepos, encryptedRepoId); } /** sort files type */ public static final int SORT_BY_NAME = 9; /** sort files type */ public static final int SORT_BY_LAST_MODIFIED_TIME = 10; /** sort files order */ public static final int SORT_ORDER_ASCENDING = 11; /** sort files order */ public static final int SORT_ORDER_DESCENDING = 12; @Override public int getCount() { return repos.size(); } @Override public boolean isEmpty() { return repos.isEmpty(); } public void add(SeafRepo repo) { repos.add(repo); } @Override public SeafRepo getItem(int position) { return repos.get(position); } @Override public long getItemId(int position) { return position; } public void clearRepos() { repos.clear(); } public void sortFiles(int type, int order) { List<SeafRepo> folders = Lists.newArrayList(); for (SeafRepo item : repos) { folders.add(item); } repos.clear(); if (type == SORT_BY_NAME) { // sort by name, in ascending order Collections.sort(folders, new SeafRepo.RepoNameComparator()); if (order == SORT_ORDER_DESCENDING) { Collections.reverse(folders); } } else if (type == SORT_BY_LAST_MODIFIED_TIME) { // sort by last modified time, in ascending order Collections.sort(folders, new SeafRepo.RepoLastMTimeComparator()); if (order == SORT_ORDER_DESCENDING) { Collections.reverse(folders); } } // Adds the objects in the specified collection to this ArrayList repos.addAll(folders); } @Override protected int getChildLayout() { return R.layout.repo_list_item; } @Override protected int getChildTitleId() { return R.id.repo_list_item_title; } @Override protected int getChildSubTitleId() { return R.id.repo_list_item_subtitle; } @Override protected int getChildIconId() { return R.id.repo_list_item_icon; } @Override protected int getChildActionId() { return R.id.repo_list_item_action; } @Override protected SeafRepo getChildSeafRepo(int position) { return repos.get(position); } @Override protected void showRepoSelectedIcon(int position, ImageView imageView) { return; } }