public void filterTasks(String text) {
   if (text.equals("")) {
     if (allTaskSummaries != null) {
       dataProvider.getList().clear();
       dataProvider.setList(new ArrayList<TaskSummary>(allTaskSummaries));
       dataProvider.refresh();
     }
     if (currentDayTasks != null) {
       view.getTaskListMultiDayBox().clear();
       for (Day day : currentDayTasks.keySet()) {
         view.getTaskListMultiDayBox()
             .addTasksByDay(day, new ArrayList<TaskSummary>(currentDayTasks.get(day)));
       }
       view.getTaskListMultiDayBox().refresh();
     }
   } else {
     if (allTaskSummaries != null) {
       List<TaskSummary> tasks = new ArrayList<TaskSummary>(allTaskSummaries);
       List<TaskSummary> filteredTasksSimple = new ArrayList<TaskSummary>();
       for (TaskSummary ts : tasks) {
         if (ts.getName().toLowerCase().contains(text.toLowerCase())) {
           filteredTasksSimple.add(ts);
         }
       }
       dataProvider.getList().clear();
       dataProvider.setList(filteredTasksSimple);
       dataProvider.refresh();
     }
     if (currentDayTasks != null) {
       Map<Day, List<TaskSummary>> tasksCalendar =
           new HashMap<Day, List<TaskSummary>>(currentDayTasks);
       Map<Day, List<TaskSummary>> filteredTasksCalendar = new HashMap<Day, List<TaskSummary>>();
       view.getTaskListMultiDayBox().clear();
       for (Day d : tasksCalendar.keySet()) {
         if (filteredTasksCalendar.get(d) == null) {
           filteredTasksCalendar.put(d, new ArrayList<TaskSummary>());
         }
         for (TaskSummary ts : tasksCalendar.get(d)) {
           if (ts.getName().toLowerCase().contains(text.toLowerCase())) {
             filteredTasksCalendar.get(d).add(ts);
           }
         }
       }
       for (Day day : filteredTasksCalendar.keySet()) {
         view.getTaskListMultiDayBox()
             .addTasksByDay(day, new ArrayList<TaskSummary>(filteredTasksCalendar.get(day)));
       }
       view.getTaskListMultiDayBox().refresh();
     }
   }
 }