Удалить декоратор для выбранной даты в MaterialCalendarView - PullRequest
0 голосов
/ 19 ноября 2018

Я реализовал простое приложение календаря через библиотеку material-calendarview , которая должна позволять добавлять / удалять события для выбранных дат. Событие add работает нормально, в котором используется простой декоратор (т.е. DotSpan). Но я не могу понять, как использовать декоратор, чтобы удалить добавленное событие на выбранную дату. Вот что у меня есть для удаления декоратора:

public class RemoveDecorator implements DayViewDecorator {
    private final HashSet<CalendarDay> dates;

    public RemoveDecorator(Collection<CalendarDay> dates) {
        this.dates = new HashSet<>(dates);
    }

    @Override
    public boolean shouldDecorate(CalendarDay day) {
        return dates.contains(day);   // false, i.e. shouldn't be decorated
    }

    @Override
    public void decorate(DayViewFacade view) {
        // TODO: 
    }
}

, который используется в методе удаления следующим образом:

private MaterialCalendarView widget;
private List<CalendarDay> calendarDays = new ArrayList<CalendarDay>();

private void removeEvent(CalendarDay day) {
    calendarDays.remove(day);
    widget.removeDecorator(new RemoveDecorator(calendarDays));
    widget.invalidateDecorators();
}

Я пытался использовать setDaysDisabled(true) для метода decorate, чтобы удалить точку, но он не работает. Итак, что мне не хватает? Любая помощь будет оценена.

...