private static void AppendProjectText(this SpannableStringBuilder spannable, ProjectSpan projectSpan) { /* HACK: This unbreakable space is needed because of a bug in * the way android handles ReplacementSpans. It makes sure that * all token boundaries can't be changed by the soft input once * they are set. */ var start = spannable.Length(); spannable.Append(unbreakableSpace); spannable.Append(projectSpan.ProjectName); if (!string.IsNullOrEmpty(projectSpan.TaskName)) { spannable.Append($": {projectSpan.TaskName}"); } spannable.Append(unbreakableSpace); var end = spannable.Length(); var projectTokenSpan = new ProjectTokenSpan( projectSpan.ProjectId, projectSpan.ProjectName, projectSpan.ProjectColor, projectSpan.TaskId, projectSpan.TaskName ); spannable.SetSpan(projectTokenSpan, start, end, SpanTypes.ExclusiveExclusive); spannable.SetSpan(new RelativeSizeSpan(spanSizeProportion), start, end, SpanTypes.ExclusiveExclusive); }
private static void AppendProjectText(this SpannableStringBuilder mutableString, ProjectSpan projectSpan) { var start = mutableString.Length(); mutableString.Append(projectSpan.ProjectName); var end = mutableString.Length(); var projectTokenSpan = new ProjectTokenSpan( projectSpan.ProjectId, projectSpan.ProjectName, projectSpan.ProjectColor ); mutableString.SetSpan(projectTokenSpan, start, end, SpanTypes.ExclusiveExclusive); mutableString.SetSpan(new RelativeSizeSpan(spanSizeProportion), start, end, SpanTypes.ExclusiveExclusive); }