Add method to get value of tag from a book.

Only the `getTagStr` method is available on android because we need a
proper exception handling on wrapping side.

Fix #298
This commit is contained in:
Matthieu Gautier 2020-01-30 14:46:01 +01:00
parent 7275f9b8e3
commit bc257d2d6d
4 changed files with 25 additions and 0 deletions

View File

@ -60,6 +60,8 @@ class Book
const std::string& getUrl() const { return m_url; } const std::string& getUrl() const { return m_url; }
const std::string& getName() const { return m_name; } const std::string& getName() const { return m_name; }
const std::string& getTags() const { return m_tags; } const std::string& getTags() const { return m_tags; }
std::string getTagStr(const std::string& tagName) const;
bool getTagBool(const std::string& tagName) const;
const std::string& getOrigId() const { return m_origId; } const std::string& getOrigId() const { return m_origId; }
const uint64_t& getArticleCount() const { return m_articleCount; } const uint64_t& getArticleCount() const { return m_articleCount; }
const uint64_t& getMediaCount() const { return m_mediaCount; } const uint64_t& getMediaCount() const { return m_mediaCount; }

View File

@ -23,6 +23,7 @@
#include "tools/base64.h" #include "tools/base64.h"
#include "tools/regexTools.h" #include "tools/regexTools.h"
#include "tools/networkTools.h" #include "tools/networkTools.h"
#include "tools/otherTools.h"
#include <pugixml.hpp> #include <pugixml.hpp>
@ -203,4 +204,12 @@ const std::string& Book::getFavicon() const {
return m_favicon; return m_favicon;
} }
std::string Book::getTagStr(const std::string& tagName) const {
return getTagValueFromTagList(convertTags(m_tags), tagName);
}
bool Book::getTagBool(const std::string& tagName) const {
return convertStrToBool(getTagStr(tagName));
}
} }

View File

@ -66,4 +66,11 @@ GETTER(jstring, getFavicon)
GETTER(jstring, getFaviconUrl) GETTER(jstring, getFaviconUrl)
GETTER(jstring, getFaviconMimeType) GETTER(jstring, getFaviconMimeType)
METHOD(jstring, Book, getTagStr, jstring tagName) try {
auto cRet = Book->getTagStr(jni2c(tagName, env));
return c2jni(cRet, env);
} catch(...) {
return c2jni<std::string>("", env);
}
#undef GETTER #undef GETTER

View File

@ -20,6 +20,13 @@ public class Book
public native String getUrl(); public native String getUrl();
public native String getName(); public native String getName();
public native String getTags(); public native String getTags();
/**
* Return the value associated to the tag tagName
*
* @param tagName the tag name to search for.
* @return The value of the tag. If the tag is not found, return empty string.
*/
public native String getTagStr(String tagName);
public native long getArticleCount(); public native long getArticleCount();
public native long getMediaCount(); public native long getMediaCount();