Program: 56445
Project: 56445
Buggy source:
private void bindWatched(Context context,ViewHolder vh,Cursor cursor){
  final int airdateCount=cursor.getInt(cursor.getColumnIndexOrThrow(CathodeContract.Seasons.AIRDATE_COUNT));
  final int unairedCount=cursor.getInt(cursor.getColumnIndexOrThrow(CathodeContract.Seasons.UNAIRED_COUNT));
  final int watchedCount=cursor.getInt(cursor.getColumnIndexOrThrow(CathodeContract.Seasons.WATCHED_COUNT));
  final int toWatch=airdateCount - unairedCount - watchedCount;
  vh.progress.setMax(airdateCount);
  vh.progress.setProgress(watchedCount);
  TypedArray a=context.obtainStyledAttributes(new int[]{android.R.attr.textColorPrimary,android.R.attr.textColorSecondary});
  ColorStateList primaryColor=a.getColorStateList(0);
  ColorStateList secondaryColor=a.getColorStateList(1);
  a.recycle();
  final String unwatched=resources.getQuantityString(R.plurals.x_unwatched,toWatch,toWatch);
  String unaired;
  if (unairedCount > 0) {
    unaired=resources.getString(R.string.x_unaired,unairedCount);
  }
 else {
    unaired="String_Node_Str";
  }
  SpannableStringBuilder ssb=new SpannableStringBuilder().append(unwatched).append("String_Node_Str").append(unaired);
  ssb.setSpan(new TextAppearanceSpan(null,0,0,primaryColor,null),0,unwatched.length() - 1,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  if (unairedCount > 0) {
    ssb.setSpan(new TextAppearanceSpan(null,0,0,secondaryColor,null),unwatched.length(),unwatched.length() + unaired.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  }
  vh.summary.setText(ssb.toString());
}

Fixed version (ground truth):
private void bindWatched(Context context,ViewHolder vh,Cursor cursor){
  final int airdateCount=cursor.getInt(cursor.getColumnIndexOrThrow(CathodeContract.Seasons.AIRDATE_COUNT));
  final int unairedCount=cursor.getInt(cursor.getColumnIndexOrThrow(CathodeContract.Seasons.UNAIRED_COUNT));
  final int watchedCount=cursor.getInt(cursor.getColumnIndexOrThrow(CathodeContract.Seasons.WATCHED_COUNT));
  int toWatch=airdateCount - unairedCount - watchedCount;
  toWatch=Math.max(toWatch,0);
  vh.progress.setMax(airdateCount);
  vh.progress.setProgress(watchedCount);
  TypedArray a=context.obtainStyledAttributes(new int[]{android.R.attr.textColorPrimary,android.R.attr.textColorSecondary});
  ColorStateList primaryColor=a.getColorStateList(0);
  ColorStateList secondaryColor=a.getColorStateList(1);
  a.recycle();
  String unwatched;
  if (toWatch == 0) {
    unwatched=resources.getString(R.string.all_watched);
  }
 else {
    unwatched=resources.getString(R.string.x_unwatched,toWatch);
  }
  String unaired;
  if (unairedCount > 0) {
    unaired=resources.getString(R.string.x_unaired,unairedCount);
  }
 else {
    unaired="String_Node_Str";
  }
  SpannableStringBuilder ssb=new SpannableStringBuilder().append(unwatched).append("String_Node_Str").append(unaired);
  ssb.setSpan(new TextAppearanceSpan(null,0,0,primaryColor,null),0,unwatched.length() - 1,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  if (unairedCount > 0) {
    ssb.setSpan(new TextAppearanceSpan(null,0,0,secondaryColor,null),unwatched.length(),unwatched.length() + unaired.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  }
  vh.summary.setText(ssb.toString());
}