private SpannedText getDetails() { SpannedText extra = new SpannedText(""); if (canShowMasterProject()) { extra = extra .space() .join( resources.getString(R.string.to) + " " + task.getMasterTask().get().getText(), new StyleSpan(Typeface.ITALIC)); } if (canShowContext()) { extra = extra .space() .join( task.getContext().getName(), new ForegroundColorSpan(CONTEXT_FG_COLOR), new BackgroundColorSpan(CONTEXT_BG_COLOR)); } if (canShowSubActions()) { List<Task> subTasks = from(task.getSubTasks()).filter(TaskListService.ACTIVE_PREDICATE).toImmutableList(); if (subTasks.size() == 1) { if (!extra.isEmpty()) { extra = extra.join("\n"); } extra = extra .space() .join( resources.getString(R.string.blocked_by) + " " + getOnlyElement(subTasks).getText(), new StyleSpan(Typeface.ITALIC)); } else if (subTasks.size() > 1) { if (!extra.isEmpty()) { extra = extra.join("\n"); } extra = extra .space() .join( resources.getQuantityString( R.plurals.blocked_by_n_tasks, subTasks.size(), subTasks.size()), new StyleSpan(Typeface.ITALIC)); } } return extra; }
private SpannedText getTimeDetails() { if (task.getCompleteDate().isPresent()) { if (canShowLevel()) { return new SpannedText(DateMarshaller.dateTimeTo2Strings(task.getCompleteDate().get())); } else { return new SpannedText(DateMarshaller.timeToString(task.getCompleteDate().get())); } } if (new TemporalPredicates().notStarted().apply(task)) { return timeConstraintsUtils.addFutureStartWarning(task); } SpannedText startedToday = new SpannedText(); if (new TemporalPredicates().startedToday().apply(task)) { startedToday = new SpannedText( resources.getString(R.string.started_today) + "\n", new ForegroundColorSpan(TimeConstraintsUtils.STARTED_TODAY_FG_COLOR), new BackgroundColorSpan(TimeConstraintsUtils.STARTED_TODAY_BG_COLOR)); } SpannedText dueWarning = timeConstraintsUtils.addDueDateWarning(task); if (!dueWarning.isEmpty()) { return startedToday.join(dueWarning); } if (isEditMode()) { return new SpannedText(resources.getString(R.string.anytime)); } else { if (startedToday.isEmpty()) { return new SpannedText(); } return startedToday; } }
private void configureText(Task item) { SpannedText text = getTitle(item).join("\n"); SpannedText extra = getDetails(); if (!extra.isEmpty()) { text = text.join(extra); } text.apply(this.textTitle); }