List<String> getCompleteVerse(int chapter, int verse)

Get complete verse content for this chapter/verse @return null on error (book not opened, invalid chapter/verse) or the content complete content of the verse (for each "Tags"). Index 0 contains verse (always exist), index 1 contains pericope title (may not exist, if not exist it will be empty string), Index 2 contains chapter title (if exist, this will only appear in verse 1 of a chapter), Index 3 contains book title (if exists, this will only appear in chapter 1 verse 1 of a book.

Source

/// @return null on error (book not opened, invalid
///         chapter/verse) or the content complete content of the verse
///         (for each "Tags"). Index 0 contains verse (always exist),
///         index 1 contains pericope title (may not exist, if not
///         exist it will be empty string), Index 2 contains chapter
///         title (if exist, this will only appear in verse 1 of a
///         chapter), Index 3 contains book title (if exists, this will
///         only appear in chapter 1 verse 1 of a book.
List<String> getCompleteVerse(int chapter, int verse) {
  loadBook();
  if (chapter < 0 || chapter > totalChapters) return null;
  if (verse < 0 || verse > getTotalVerses(chapter)) return null;
  if (_bible.isByteShifted) return _getVerseByteShifted(chapter, verse);

  List<List<String>> words = [[], [], [], []];

  int sbPos = 0; // verse
  int verseStart = _getVerseStart(chapter, verse);
  int verseLength = _getVerseLength(chapter, verse);
  int index = verseStart * 2;

  for (int i = 0; i < verseLength; i++) {
    int decWordNum = Util.readShort(_data, index);
    index += 2;
    int pos = _bible.getWordPos(decWordNum);
    List<int> r = _bible.getRepeat(pos, decWordNum);
    if (r != null) {
      for (int t in r) {
        if (t == _bookTextType || t == _chapTextType || t == _descTextType || t == _versTextType) {
          sbPos = t - _versTextType;
          continue;
        }

        String word = _bible.getWord(t);
        words[sbPos].add(word);
      }
    } else {
      String word = _bible.getWord(decWordNum);
      words[sbPos].add(word);
    }
  }

  String sepChar = _bible.sepChar;
  List<String> res = new List(4);
  res[0] = _stringFromWords(words[0], sepChar);
  res[1] = _stringFromWords(words[1], sepChar);
  res[2] = _stringFromWords(words[2], sepChar);
  res[3] = _stringFromWords(words[3], sepChar);
  return res;
}