public void restoreState(JSONObject jsonObject) throws JSONException { if (jsonObject!=null) { if (jsonObject.has("versification") && jsonObject.has("bibleBook")) { Versification v11n = Versifications.instance().getVersification(jsonObject.getString("versification")); int bibleBookNo = jsonObject.getInt("bibleBook"); int chapterNo = jsonObject.getInt("chapter"); int verseNo = jsonObject.getInt("verseNo"); mainVerse = new Verse(v11n, BibleBook.values()[bibleBookNo], chapterNo, verseNo, true); } } } }
/** IBT books are Synodal but are known to have mistakenly added empty verses for all dc books * Here we check to see if this document probably has that problem. */ private boolean isProbablyIBTDocument(Book document, Versification v11n) { if (isProbablyIBT==null) { isProbablyIBT = SystemSynodal.V11N_NAME.equals(v11n.getName()) && isProbablyEmptyVerseInDocument(document, new Verse(v11n, BibleBook.TOB, 1, 1)); } return isProbablyIBT; }
private BookmarkDto getBookmark(Versification v11n, BibleBook book, int chapter, int verse) { BookmarkDto newBookmarkDto = new BookmarkDto(); final VerseRange verseRange = new VerseRange(v11n, new Verse(v11n, book, chapter, verse), new Verse(v11n, book, chapter, verse)); newBookmarkDto.setVerseRange(verseRange); return newBookmarkDto; } }
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 MyNoteDto getMyNote(Versification v11n, BibleBook book, int chapter, int verse) { MyNoteDto newMyNoteDto = new MyNoteDto(); final VerseRange verseRange = new VerseRange(v11n, new Verse(v11n, book, chapter, verse), new Verse(v11n, book, chapter, verse)); newMyNoteDto.setVerseRange(verseRange); newMyNoteDto.setNoteText("Some test note text"); return newMyNoteDto; }
@Override public ConvertibleVerseRange getConvertibleVerseRange() { return new ConvertibleVerseRange(new VerseRange(v11n, new Verse(v11n, BibleBook.JOHN, 3, 16))); } };
/** 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 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)); } };
@Test public void testGetPreviousVerseRangeWrapsToPreviousChapter() throws Exception { assertThat(bibleTraverser.getPreviousVerseRange(testBook, TestData.KJV_PS_14).getStart(), equalTo(new Verse(TestData.KJV, BibleBook.PS, 12, 8))); assertThat(bibleTraverser.getPreviousVerseRange(testBook, TestData.KJV_PS_14).getEnd(), equalTo(new Verse(TestData.KJV, BibleBook.PS, 13, 6))); }
@Test public void testGetNextVerseRangeWrapsToNextChapter() throws Exception { assertThat(bibleTraverser.getNextVerseRange(testBook, TestData.KJV_PS_14).getStart(), equalTo(new Verse(TestData.KJV, BibleBook.PS, 15, 1))); assertThat(bibleTraverser.getNextVerseRange(testBook, TestData.KJV_PS_14).getEnd(), equalTo(new Verse(TestData.KJV, BibleBook.PS, 16, 2))); }
@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); }
@Test public void testIsBookmarkForAnyVerseRangeWithSameStart() { BookmarkDto newBookmarkDto = new BookmarkDto(); final VerseRange verseRange = new VerseRange(KJV_VERSIFICATION, new Verse(KJV_VERSIFICATION, BibleBook.PS, 17, 10)); newBookmarkDto.setVerseRange(verseRange); bookmarkControl.addOrUpdateBookmark(newBookmarkDto); Verse startVerse = new Verse(KJV_VERSIFICATION, BibleBook.PS, 17, 10); assertThat(bookmarkControl.isBookmarkForKey(startVerse), equalTo(true)); // 1 has the same start as 10 but is not the same Verse verseWithSameStart = new Verse(KJV_VERSIFICATION, BibleBook.PS, 17, 1); assertThat(bookmarkControl.isBookmarkForKey(verseWithSameStart), equalTo(false)); }
private Verse getVerse(BibleBook book, int chapter, int verse) { Versification v11n = Versifications.instance().getVersification(SystemKJV.V11N_NAME); return new Verse(v11n, book, chapter, verse); } }
/** * 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); }
@Test public void testVerseRange() { BookmarkDto newBookmarkDto = new BookmarkDto(); final VerseRange verseRange = new VerseRange(KJV_VERSIFICATION, new Verse(KJV_VERSIFICATION, BibleBook.PS, 17, 2), new Verse(KJV_VERSIFICATION, BibleBook.PS, 17, 5)); newBookmarkDto.setVerseRange(verseRange); BookmarkDto newDto = bookmarkControl.addOrUpdateBookmark(newBookmarkDto); assertThat(newDto.getVerseRange(), equalTo(verseRange)); assertThat(bookmarkControl.isBookmarkForKey(verseRange.getStart()), equalTo(true)); }
@Test public void testGetVerseDescription() { Versification kjv = Versifications.instance().getVersification("KJV"); Verse gen1_0 = new Verse(kjv, BibleBook.GEN, 1, 0); assertThat(CommonUtils.getKeyDescription(gen1_0), equalTo("Genesis 1")); Verse gen1_1 = new Verse(kjv, BibleBook.GEN, 1, 1); assertThat(CommonUtils.getKeyDescription(gen1_1), equalTo("Genesis 1:1")); Verse gen1_10 = new Verse(kjv, BibleBook.GEN, 1, 10); assertThat(CommonUtils.getKeyDescription(gen1_10), equalTo("Genesis 1:10")); }
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()); } }
@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; }