Не до конца работает код сортировки

java android studio https://github.com/mxrph8/SamsungProject Это код моего мобильного приложения. Само приложение - список вузов с возможность сортировки по категориям(факультеты и кол-во баллов для поступления) Для сортировки используются checkbox'ы и seekbar. На них висят обработчики изменения состояния. Также в mainactivity написан метод initLiveData(), где происходят все действия, при нажатии на вышеперечисленные объекты. Сами методы сортировки, это - FilterByPoints,sortByFaculty,UnSortByFaculty

public void FilterByPoints(){
        for (University university : universities) {
            if (university.getPoints() > getSeekBarValue().getValue()) {
            if ((SelectUniversity_fm ==  null ||SelectUniversity_se ==  null || SelectUniversity_xb ==  null ||SelectUniversity_mi ==  null) || (
                    university.getFaculty().equals(SelectUniversity_fm) || university.getFaculty().equals(SelectUniversity_xb) || university.getFaculty().equals(SelectUniversity_se)||university.getFaculty().equals(SelectUniversity_mi) )
                    ){
                sortedUniversities.remove(university);
            }
                UniversityAdapter universitiesAdapter = new UniversityAdapter(this, sortedUniversities);
                binding.ListView.setAdapter(universitiesAdapter);
            }
        }
        }
public void sortUniversitiesByFaculty(List<University> universities, String faculty) {
        if (faculty == null || faculty.isEmpty()) {
            return;
        }

        for (University university : universities) {
            if (university.getFaculty().equals(faculty)) {
                sortedUniversities.add(university);
            }
        }

    }


    private void sortByFaculty(String faculty) {
        sortUniversitiesByFaculty(universities, faculty);
        UniversityAdapter universitiesAdapter = new UniversityAdapter(this, sortedUniversities);
        binding.ListView.setAdapter(universitiesAdapter);
    }

    public void unSortUniversitiesByFaculty(List<University> universities, String faculty) {
        if (faculty == null || faculty.isEmpty()) {
            return;
        }

        for (University university : universities) {
            if (university.getFaculty().equals(faculty)) {
                sortedUniversities.remove(university);
            }

        }

    }

    private void unSortByFaculty(String faculty) {
        unSortUniversitiesByFaculty(universities, faculty);
        UniversityAdapter universitiesAdapter = new UniversityAdapter(this, sortedUniversities);
        binding.ListView.setAdapter(universitiesAdapter);
    }

Вся проблема в этом куске кода, сами методы то работают, но

  1. при понижении кол-ва баллов на seekbar ненужные вузы пропадают, но при повышении обратно не появляются, а если в метод filterbyfaculty я добавлю строки -
else{
sortedUniversities.contains(university);
sortedUniversities.add(university);
}

то seekbar начинает работать как надо, но при этом сортировка по факультетам перестаёт работать. 2)также если сначала выставить кол-во баллов, а после факультеты, то покажет все вузы нужного факультета( то есть сначала нужно выставлять факультет а после баллы), а я хочу чтобы можно было делать это в любом порядке. Прошу помочь мне в этом вопросе(пожалуйста ;) )


Ответы (0 шт):