@Override public void onSortSelected(boolean always, int flags, int sort) { boolean manualSettingChanged = SortHelper.isManualSort(sortFlags) != SortHelper.isManualSort(flags); sortFlags = flags; sortSort = sort; if (always) { preferences.setSortFlags(flags); preferences.setSortMode(sort); TasksWidget.updateWidgets(context); } try { if (manualSettingChanged) { toggleDragDrop(SortHelper.isManualSort(sortFlags)); } else { setUpTaskList(); } } catch (IllegalStateException e) { log.error(e.getMessage(), e); // TODO: Fragment got detached somehow (rare) } }