mirror of https://github.com/kiwix/libkiwix.git
Merge pull request #675 from kiwix/fix_android
Revert removing of deprecated methods used by android wrapper.
This commit is contained in:
commit
367e5d2636
|
@ -91,6 +91,14 @@ Meson. If you want statically linked libraries, you can add
|
||||||
|
|
||||||
Depending of you system, `ninja` may be called `ninja-build`.
|
Depending of you system, `ninja` may be called `ninja-build`.
|
||||||
|
|
||||||
|
The android wrapper uses deprecated methods of libkiwix so it cannot be compiled
|
||||||
|
with `werror=true` (the default). So you must pass `-Dwerror=false` to meson:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
meson . build -Dwrapper=android -Dwerror=false
|
||||||
|
ninja -C build
|
||||||
|
```
|
||||||
|
|
||||||
Testing
|
Testing
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
|
|
@ -329,6 +329,28 @@ class Reader
|
||||||
*/
|
*/
|
||||||
Entry getEntryFromTitle(const std::string& title) const;
|
Entry getEntryFromTitle(const std::string& title) const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Search for entries with title starting with prefix (case sensitive).
|
||||||
|
*
|
||||||
|
* Suggestions are stored in an internal vector and can be retrieved using
|
||||||
|
* `getNextSuggestion` method.
|
||||||
|
* This method is not thread safe and is deprecated. Use :
|
||||||
|
* bool searchSuggestions(const string& prefix,
|
||||||
|
* unsigned int suggestionsCount,
|
||||||
|
* SuggestionsList_t& results);
|
||||||
|
*
|
||||||
|
* @param prefix The prefix to search.
|
||||||
|
* @param suggestionsCount How many suggestions to search for.
|
||||||
|
* @param reset If true, remove previous suggestions in the internal vector.
|
||||||
|
* If false, add suggestions to the internal vector
|
||||||
|
* (until internal vector size is suggestionCount (or no more
|
||||||
|
* suggestion))
|
||||||
|
* @return True if some suggestions have been added to the internal vector.
|
||||||
|
*/
|
||||||
|
DEPRECATED bool searchSuggestions(const string& prefix,
|
||||||
|
unsigned int suggestionsCount,
|
||||||
|
const bool reset = true);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Search for entries with title starting with prefix (case sensitive).
|
* Search for entries with title starting with prefix (case sensitive).
|
||||||
*
|
*
|
||||||
|
@ -344,6 +366,28 @@ class Reader
|
||||||
unsigned int suggestionsCount,
|
unsigned int suggestionsCount,
|
||||||
SuggestionsList_t& resuls);
|
SuggestionsList_t& resuls);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Search for entries for the given prefix.
|
||||||
|
*
|
||||||
|
* If the zim file has a internal fulltext index, the suggestions will be
|
||||||
|
* searched using it.
|
||||||
|
* Else the suggestions will be search using `searchSuggestions` while trying
|
||||||
|
* to be smart about case sensitivity (using `getTitleVariants`).
|
||||||
|
*
|
||||||
|
* In any case, suggestions are stored in an internal vector and can be
|
||||||
|
* retrieved using `getNextSuggestion` method.
|
||||||
|
* The internal vector will be reset.
|
||||||
|
* This method is not thread safe and is deprecated. Use :
|
||||||
|
* bool searchSuggestionsSmart(const string& prefix,
|
||||||
|
* unsigned int suggestionsCount,
|
||||||
|
* SuggestionsList_t& results);
|
||||||
|
*
|
||||||
|
* @param prefix The prefix to search for.
|
||||||
|
* @param suggestionsCount How many suggestions to search for.
|
||||||
|
*/
|
||||||
|
DEPRECATED bool searchSuggestionsSmart(const string& prefix,
|
||||||
|
unsigned int suggestionsCount);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Search for entries for the given prefix.
|
* Search for entries for the given prefix.
|
||||||
*
|
*
|
||||||
|
@ -390,6 +434,22 @@ class Reader
|
||||||
*/
|
*/
|
||||||
std::vector<std::string> getTitleVariants(const std::string& title) const;
|
std::vector<std::string> getTitleVariants(const std::string& title) const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the next suggestion title.
|
||||||
|
*
|
||||||
|
* @param[out] title the title of the suggestion.
|
||||||
|
* @return True if title has been set.
|
||||||
|
*/
|
||||||
|
DEPRECATED bool getNextSuggestion(string& title);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the next suggestion title and url.
|
||||||
|
*
|
||||||
|
* @param[out] title the title of the suggestion.
|
||||||
|
* @param[out] url the url of the suggestion.
|
||||||
|
* @return True if title and url have been set.
|
||||||
|
*/
|
||||||
|
DEPRECATED bool getNextSuggestion(string& title, string& url);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get if we can check zim file integrity (has a checksum).
|
* Get if we can check zim file integrity (has a checksum).
|
||||||
|
@ -425,6 +485,9 @@ class Reader
|
||||||
std::shared_ptr<zim::Archive> zimArchive;
|
std::shared_ptr<zim::Archive> zimArchive;
|
||||||
std::string zimFilePath;
|
std::string zimFilePath;
|
||||||
|
|
||||||
|
SuggestionsList_t suggestions;
|
||||||
|
SuggestionsList_t::iterator suggestionsOffset;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::map<const std::string, unsigned int> parseCounterMetadata() const;
|
std::map<const std::string, unsigned int> parseCounterMetadata() const;
|
||||||
};
|
};
|
||||||
|
|
|
@ -273,6 +273,32 @@ bool Reader::hasFulltextIndex() const
|
||||||
return zimArchive->hasFulltextIndex();
|
return zimArchive->hasFulltextIndex();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Search titles by prefix */
|
||||||
|
|
||||||
|
bool Reader::searchSuggestions(const string& prefix,
|
||||||
|
unsigned int suggestionsCount,
|
||||||
|
const bool reset)
|
||||||
|
{
|
||||||
|
/* Reset the suggestions otherwise check if the suggestions number is less
|
||||||
|
* than the suggestionsCount */
|
||||||
|
if (reset) {
|
||||||
|
this->suggestions.clear();
|
||||||
|
this->suggestionsOffset = this->suggestions.begin();
|
||||||
|
} else {
|
||||||
|
if (this->suggestions.size() > suggestionsCount) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
auto ret = searchSuggestions(prefix, suggestionsCount, this->suggestions);
|
||||||
|
|
||||||
|
/* Set the cursor to the begining */
|
||||||
|
this->suggestionsOffset = this->suggestions.begin();
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool Reader::searchSuggestions(const string& prefix,
|
bool Reader::searchSuggestions(const string& prefix,
|
||||||
unsigned int suggestionsCount,
|
unsigned int suggestionsCount,
|
||||||
SuggestionsList_t& results)
|
SuggestionsList_t& results)
|
||||||
|
@ -333,6 +359,19 @@ std::vector<std::string> Reader::getTitleVariants(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool Reader::searchSuggestionsSmart(const string& prefix,
|
||||||
|
unsigned int suggestionsCount)
|
||||||
|
{
|
||||||
|
this->suggestions.clear();
|
||||||
|
this->suggestionsOffset = this->suggestions.begin();
|
||||||
|
|
||||||
|
auto ret = searchSuggestionsSmart(prefix, suggestionsCount, this->suggestions);
|
||||||
|
|
||||||
|
this->suggestionsOffset = this->suggestions.begin();
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
/* Try also a few variations of the prefix to have better results */
|
/* Try also a few variations of the prefix to have better results */
|
||||||
bool Reader::searchSuggestionsSmart(const string& prefix,
|
bool Reader::searchSuggestionsSmart(const string& prefix,
|
||||||
unsigned int suggestionsCount,
|
unsigned int suggestionsCount,
|
||||||
|
@ -371,6 +410,38 @@ bool Reader::searchSuggestionsSmart(const string& prefix,
|
||||||
return results.size() > 0;
|
return results.size() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Get next suggestion */
|
||||||
|
bool Reader::getNextSuggestion(string& title)
|
||||||
|
{
|
||||||
|
if (this->suggestionsOffset != this->suggestions.end()) {
|
||||||
|
/* title */
|
||||||
|
title = (*(this->suggestionsOffset)).getTitle();
|
||||||
|
|
||||||
|
/* increment the cursor for the next call */
|
||||||
|
this->suggestionsOffset++;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Reader::getNextSuggestion(string& title, string& url)
|
||||||
|
{
|
||||||
|
if (this->suggestionsOffset != this->suggestions.end()) {
|
||||||
|
/* title */
|
||||||
|
title = (*(this->suggestionsOffset)).getTitle();
|
||||||
|
url = (*(this->suggestionsOffset)).getPath();
|
||||||
|
|
||||||
|
/* increment the cursor for the next call */
|
||||||
|
this->suggestionsOffset++;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/* Check if the file has as checksum */
|
/* Check if the file has as checksum */
|
||||||
bool Reader::canCheckIntegrity() const
|
bool Reader::canCheckIntegrity() const
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue