seadroid icon indicating copy to clipboard operation
seadroid copied to clipboard

Sort repo on CloudLibrarySelectionFragment

Open max32002 opened this issue 8 years ago • 0 comments

    private void updateAdapterWithRepos(List<SeafRepo> repos) {
        CloudLibraryAdapter adapter=getReposAdapter();
        // remove encrypted repos in order to "hide" them in selection list
        List<SeafRepo> filteredRepos = Lists.newArrayList();
        for (SeafRepo repo : repos) {
            if (!repo.encrypted)
                filteredRepos.add(repo);
        }
        adapter.setRepos(filteredRepos);
        int sort_type = SettingsManager.instance().getSortFilesTypePref();
        int sort_order = SettingsManager.instance().getSortFilesOrderPref();
        adapter.sortFiles(sort_type, sort_order);
        adapter.notifyChanged();
        showListOrEmptyText(filteredRepos.size());
    }

in CloudLibraryAdapter add code:


    /** 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;

    public void notifyChanged() {
        notifyDataSetChanged();
    }

    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);
    }

max32002 avatar Mar 30 '17 06:03 max32002