private void parseTags(XmlPullParser parser, SnapticNote note)
      throws XmlPullParserException, IOException {
    ArrayList<CharSequence> tags = new ArrayList<CharSequence>();
    int eventType = parser.next();

    while (eventType != XmlPullParser.END_DOCUMENT) {
      if (eventType == XmlPullParser.START_TAG) {
        String startTag = parser.getName();

        if (XML_TAG_TAG.equals(startTag)) {
          String tag = parser.nextText();
          tags.add(tag);
          parse_trace("Added tag \"" + tag + '"');
        } else {
          parse_trace("(parseTags) unknown XML tag: <" + startTag + ">");
        }
      } else if (eventType == XmlPullParser.END_TAG) {
        String endTag = parser.getName();

        if (XML_TAG_TAGS.equals(endTag)) {
          note.tags = tags;
          parse_trace("Note had " + note.tags.size() + " tag(s).");
          break;
        }
      }

      eventType = parser.next();
    }
  }