/** books should be the same as they are enums */ public BibleBook getBook() { return mainVerse.getBook(); }
/** * The number of books between two verses includes * the books of the two verses and everything in between. * * @param start * The first Verse in the range * @param end The last Verse in the range * @return The number of books. Always >= 1. */ public int getBookCount(Verse start, Verse end) { int startBook = bookList.getOrdinal(start.getBook()); int endBook = bookList.getOrdinal(end.getBook()); return endBook - startBook + 1; }
/** default book for use when jumping into the middle of passage selection */ public int getDefaultBibleBookNo() { return Arrays.binarySearch(BibleBook.values(), pageControl.getCurrentBibleVerse().getBook()); }
public JSONObject getStateJson() throws JSONException { JSONObject object = new JSONObject(); object.put("versification", mainVerse.getVersification().getName()); object.put("bibleBook", mainVerse.getBook().ordinal()); object.put("chapter", mainVerse.getChapter()); object.put("verseNo", mainVerse.getVerse()); return object; }
@Override public Verse createEndVerse(Versification v11n, Verse verseBasis, String[] endParts) throws NoSuchVerseException { // Very similar to the start verse but use the verse as a basis // and it gets the end of the chapter BibleBook book = verseBasis.getBook(); int chapter = getChapter(v11n, book, endParts[0]); return new Verse(v11n, book, chapter, v11n.getLastVerse(book, chapter)); } },
/** Return the verse in the required versification, mapping if necessary */ public Verse convert(Verse verse, Versification toVersification) { Verse mappedVerse = convertVerseStrictly(verse, toVersification); if (mappedVerse != null) return mappedVerse; // just try to retain information by forcing creation of a similar verse with the new v11n return new Verse(toVersification, verse.getBook(), verse.getChapter(), verse.getVerse()); }
@Override public VerseRange blur(Versification v11n, Verse verse, int blurDown, int blurUp) { BibleBook book = verse.getBook(); int chapter = verse.getChapter(); int startVerse = verse.getVerse() - blurDown; int endVerse = verse.getVerse() + blurUp; startVerse = Math.max(startVerse, 0); endVerse = Math.min(endVerse, v11n.getLastVerse(book, chapter)); Verse start = new Verse(v11n, book, chapter, startVerse); Verse end = new Verse(v11n, book, chapter, endVerse); return new VerseRange(v11n, start, end); }
@Override public Verse createEndVerse(Versification v11n, Verse verseBasis, String[] endParts) throws NoSuchVerseException { // Very similar to the start verse but use the verse as a basis BibleBook book = verseBasis.getBook(); int chapter = getChapter(v11n, book, endParts[0]); int verse = getVerse(v11n, book, chapter, endParts[1]); return new Verse(v11n, book, chapter, verse, getSubIdentifier(endParts)); } },
@Override public Verse createEndVerse(Versification v11n, Verse verseBasis, String[] endParts) throws NoSuchVerseException { // Very similar to the start verse but use the verse as a basis // and it gets the end of the chapter BibleBook book = verseBasis.getBook(); int chapter = verseBasis.getChapter(); int verse = getVerse(v11n, book, chapter, endParts[0]); return new Verse(v11n, book, chapter, verse, getSubIdentifier(endParts)); } };
public void setChapterVerse(ChapterVerse chapterVerse) { mainVerse = new Verse(mainVerse.getVersification(), mainVerse.getBook(), chapterVerse.getChapter(), chapterVerse.getVerse()); } public ChapterVerse getChapterVerse() {
/** * Get a fragment for specified chapter of Bible to be inserted at top of bottom of original text */ public String getFragmentForChapter(int chapter) { Verse verseForFragment = new Verse(getVersification(), getVerseSelected().getBook(), chapter, 1); Key wholeChapter = CommonUtils.getWholeChapter(verseForFragment); return getPageContent(wholeChapter, true); }
/** * Some IBT books mistakenly had dummy empty verses which returned the following for verse 1,2,... lastVerse-1 * <chapter eID="gen7" osisID="1Esd.1"/> * <chapter eID="gen1010" osisID="Mal.3"/> */ private boolean isProbablyEmptyVerseInDocument(Book document, Verse verse) { int rawTextLength = ((AbstractBook)document).getBackend().getRawTextLength(verse); if (verse.getBook().isShortBook()) { return isProbablyShortBookEmptyVerseStub(rawTextLength); } else { return isProbablyEmptyVerseStub(rawTextLength); } }
@Override public Verse createStartVerse(Versification v11n, VerseRange verseRangeBasis, String[] parts) throws NoSuchVerseException { if (verseRangeBasis == null) { // TRANSLATOR: The user supplied a verse reference but did not give the book of the Bible. throw new NoSuchVerseException(JSMsg.gettext("Book is missing")); } BibleBook book = verseRangeBasis.getEnd().getBook(); int chapter = getChapter(v11n, book, parts[0]); int verse = 0; // chapter > 0 ? 1 : 0; // 0 ? return new Verse(v11n, book, chapter, verse); }
public static Key getWholeChapter(Verse currentVerse) { Log.i(TAG, "Get Chapter for:"+currentVerse.getOsisID()); Versification versification = currentVerse.getVersification(); BibleBook book = currentVerse.getBook(); int chapter = currentVerse.getChapter(); Verse targetChapterFirstVerse = new Verse(versification, book, chapter, 0); Verse targetChapterLastVerse = new Verse(versification, book, chapter, versification.getLastVerse(book, chapter)); // convert to full chapter before returning because bible view is for a full chapter return new VerseRange(versification, targetChapterFirstVerse, targetChapterLastVerse); }
private void updateBookmarkSettings(Key key, PlaybackSettings settings) { Verse v = (Verse) key; if(v.getVerse() == 0) { v = new Verse(v.getVersification(), v.getBook(), v.getChapter(), 1); } BookmarkDto bookmarkDto = getBookmarkByKey(v); if(bookmarkDto != null && bookmarkDto.getPlaybackSettings() != null) { bookmarkDto.setPlaybackSettings(settings); addOrUpdateBookmark(bookmarkDto); Log.d("SpeakBookmark", "Updated bookmark settings "+bookmarkDto + settings.getSpeed()); } }
/** * Get percentage value of reading progress of the verse within its biblebook. */ public int getPercentOfBook(@NotNull Verse verse) { Versification v11n = verse.getVersification(); BibleBook bibleBook = verse.getBook(); int lastChapterNumber = v11n.getLastChapter(bibleBook); int lastVerseNumber = v11n.getLastVerse(bibleBook, lastChapterNumber); Verse lastVerse = new Verse(v11n, bibleBook, lastChapterNumber, lastVerseNumber); Verse firstVerse = new Verse(v11n, bibleBook, 1, 1); return (int)((((double)(verse.getOrdinal() - firstVerse.getOrdinal())) / (lastVerse.getOrdinal() - firstVerse.getOrdinal())) * 100.0); } }
@Override public Verse createStartVerse(Versification v11n, VerseRange verseRangeBasis, String[] parts) throws NoSuchVerseException { if (verseRangeBasis == null) { // TRANSLATOR: The user supplied a verse reference but did not give the book of the Bible. throw new NoSuchVerseException(JSMsg.gettext("Book is missing")); } BibleBook book = verseRangeBasis.getEnd().getBook(); int chapter = getChapter(v11n, book, parts[0]); int verse = getVerse(v11n, book, chapter, parts[1]); return new Verse(v11n, book, chapter, verse, getSubIdentifier(parts)); }
@Override public Verse createStartVerse(Versification v11n, VerseRange verseRangeBasis, String[] parts) throws NoSuchVerseException { if (verseRangeBasis == null) { // TRANSLATOR: The user supplied a verse reference but did not give the book or chapter of the Bible. throw new NoSuchVerseException(JSMsg.gettext("Book and chapter are missing")); } BibleBook book = verseRangeBasis.getEnd().getBook(); int chapter = verseRangeBasis.getEnd().getChapter(); int verse = getVerse(v11n, book, chapter, parts[0]); return new Verse(v11n, book, chapter, verse, getSubIdentifier(parts)); }
public SpeakCommandArray getSpeakCommands(SpeakSettings settings, SwordBook book, Verse verse) { VersificationConverter v11nConverter = new VersificationConverter(); Verse verse_ = v11nConverter.convert(verse, book.getVersification()); SpeakCommandArray lst = new SpeakCommandArray(); if (verse_.getVerse() == 1) { lst.addAll(getSpeakCommandsForVerse(settings, book, new Verse(book.getVersification(), verse_.getBook(), verse_.getChapter(), 0))); } lst.addAll(getSpeakCommandsForVerse(settings, book, verse_)); return lst; }