}
}
-void LottieView::loadFromData(const char *jsonData, const char *key)
+void LottieView::loadFromData(const std::string &jsonData, const std::string &key)
{
if (mPlayer = Animation::loadFromData(jsonData, key)) {
mFrameRate = mPlayer->frameRate();
mTotalFrame = mPlayer->totalFrame();
} else {
- printf("load failed from data key : %s\n", key);
+ printf("load failed from data key : %s\n", key.c_str());
}
}
void setSize(int w, int h);
void setPos(int x, int y);
void setFilePath(const char *filePath);
- void loadFromData(const char *jsonData, const char *key);
+ void loadFromData(const std::string &jsonData, const std::string &key);
void show();
void hide();
void loop(bool loop);
* lottie resource represented by JSON string data.
*/
static std::unique_ptr<Animation>
- loadFromData(const char *jsonData, const char *key);
+ loadFromData(std::string jsonData, const std::string &key);
/**
* @brief Returns default framerate of the lottie resource.
* @param path add the details
*/
std::unique_ptr<Animation>
-Animation::loadFromData(const char *jsonData, const char *key)
+Animation::loadFromData(std::string jsonData, const std::string &key)
{
- if (!jsonData) {
+ if (jsonData.empty()) {
vWarning << "jason data is empty";
return nullptr;
}
LottieLoader loader;
- if (loader.loadFromData(jsonData, key)) {
+ if (loader.loadFromData(std::move(jsonData), key)) {
auto animation = std::make_unique<Animation>();
animation->d->init(loader.model());
return animation;
return true;
}
-bool LottieLoader::loadFromData(const char *jsonData, const char *key)
+bool LottieLoader::loadFromData(std::string &&jsonData, const std::string &key)
{
LottieFileCache &fileCache = LottieFileCache::get();
- std::string keyString(key);
- mModel = fileCache.find(std::string(keyString));
+ mModel = fileCache.find(key);
if (mModel) return true;
- LottieParser parser(const_cast<char *>(std::string(jsonData).c_str()));
+ LottieParser parser(const_cast<char *>(jsonData.c_str()));
mModel = parser.model();
- fileCache.add(keyString, mModel);
+ fileCache.add(key, mModel);
return true;
}
{
public:
bool load(const std::string &filePath);
- bool loadFromData(const char *jsonData, const char *key);
+ bool loadFromData(std::string &&jsonData, const std::string &key);
std::shared_ptr<LOTModel> model();
private:
std::shared_ptr<LOTModel> mModel;