static void fillMetaInfo(JNIEnv* env, jobject javaBook, Book &book) { jstring javaString; javaString = AndroidUtil::createJavaString(env, book.title()); AndroidUtil::Method_Book_setTitle->call(javaBook, javaString); env->DeleteLocalRef(javaString); javaString = AndroidUtil::createJavaString(env, book.language()); if (javaString != 0) { AndroidUtil::Method_Book_setLanguage->call(javaBook, javaString); env->DeleteLocalRef(javaString); } javaString = AndroidUtil::createJavaString(env, book.encoding()); if (javaString != 0) { AndroidUtil::Method_Book_setEncoding->call(javaBook, javaString); env->DeleteLocalRef(javaString); } javaString = AndroidUtil::createJavaString(env, book.seriesTitle()); if (javaString != 0) { jstring indexString = AndroidUtil::createJavaString(env, book.indexInSeries()); AndroidUtil::Method_Book_setSeriesInfo->call(javaBook, javaString, indexString); if (indexString != 0) { env->DeleteLocalRef(indexString); } env->DeleteLocalRef(javaString); } const AuthorList &authors = book.authors(); for (std::size_t i = 0; i < authors.size(); ++i) { const Author &author = *authors[i]; javaString = env->NewStringUTF(author.name().c_str()); jstring key = env->NewStringUTF(author.sortKey().c_str()); AndroidUtil::Method_Book_addAuthor->call(javaBook, javaString, key); env->DeleteLocalRef(key); env->DeleteLocalRef(javaString); } const TagList &tags = book.tags(); for (std::size_t i = 0; i < tags.size(); ++i) { const Tag &tag = *tags[i]; AndroidUtil::Method_Book_addTag->call(javaBook, tag.javaTag(env)); } fillUids(env, javaBook, book); }
bool SimplePdbPlugin::readMetainfo(Book &book) const { const ZLFile &file = book.file(); shared_ptr<ZLInputStream> stream = createStream(file); detectEncodingAndLanguage(book, *stream); if (book.encoding().empty()) { return false; } int readType = HtmlMetainfoReader::NONE; if (book.title().empty()) { readType |= HtmlMetainfoReader::TITLE; } if (book.authors().empty()) { readType |= HtmlMetainfoReader::AUTHOR; } if (readType != HtmlMetainfoReader::NONE) { //if ((readType != HtmlMetainfoReader::NONE) && TextFormatDetector().isHtml(*stream)) { readType |= HtmlMetainfoReader::TAGS; HtmlMetainfoReader metainfoReader(book, (HtmlMetainfoReader::ReadType)readType); metainfoReader.readDocument(*stream); } return true; }
static void fillMetaInfo(JNIEnv* env, jobject javaBook, Book &book) { JString title(env, book.title()); AndroidUtil::Method_Book_setTitle->call(javaBook, title.j()); JString language(env, book.language()); if (language.j() != 0) { AndroidUtil::Method_Book_setLanguage->call(javaBook, language.j()); } JString encoding(env, book.encoding()); if (encoding.j() != 0) { AndroidUtil::Method_Book_setEncoding->call(javaBook, encoding.j()); } JString seriesTitle(env, book.seriesTitle()); if (seriesTitle.j() != 0) { JString indexString(env, book.indexInSeries()); AndroidUtil::Method_Book_setSeriesInfo->call(javaBook, seriesTitle.j(), indexString.j()); } const AuthorList &authors = book.authors(); for (std::size_t i = 0; i < authors.size(); ++i) { const Author &author = *authors[i]; JString name(env, author.name(), false); JString key(env, author.sortKey(), false); AndroidUtil::Method_Book_addAuthor->call(javaBook, name.j(), key.j()); } const TagList &tags = book.tags(); for (std::size_t i = 0; i < tags.size(); ++i) { const Tag &tag = *tags[i]; AndroidUtil::Method_Book_addTag->call(javaBook, tag.javaTag(env)); } fillUids(env, javaBook, book); }