package com.erakk.lnreader.model;
import android.util.Log;
import com.erakk.lnreader.dao.NovelsDao;
import com.erakk.lnreader.parser.CommonParser;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import java.util.ArrayList;
import java.util.Date;
public class NovelContentModel {
private static final String TAG = NovelContentModel.class.toString();
private int id = -1;
private String content;
private String page;
private PageModel pageModel;
private Date lastUpdate;
private Date lastCheck;
private boolean isUpdatingFromInternet;
private ArrayList<ImageModel> images;
private ArrayList<BookmarkModel> bookmarks;
private NovelContentUserModel userData;
private ArrayList<String> _bigImages;
public NovelContentUserModel getUserData() {
return userData;
}
public void setUserData(NovelContentUserModel userData) {
this.userData = userData;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getPage() {
return page;
}
public void setPage(String page) {
this.page = page;
}
public void refreshPageModel() throws Exception {
// try to disable the checking, may hit performance issue?
// refer to https://github.com/calvinaquino/LNReader-Android/issues/177
//if(this.pageModel == null) {
this.pageModel = PageModel.getPageModelByName(this.page);
//}
}
public PageModel getPageModel() throws Exception {
if (this.pageModel == null) {
NovelsDao dao = NovelsDao.getInstance();
PageModel tempPage = new PageModel();
tempPage.setPage(this.page);
this.pageModel = dao.getPageModel(tempPage, null);
}
return pageModel;
}
public void setPageModel(PageModel pageModel) {
this.pageModel = pageModel;
}
public Date getLastUpdate() {
return lastUpdate;
}
public void setLastUpdate(Date lastUpdate) {
this.lastUpdate = lastUpdate;
}
public Date getLastCheck() {
return lastCheck;
}
public void setLastCheck(Date lastCheck) {
this.lastCheck = lastCheck;
}
public ArrayList<ImageModel> getImages() {
return images;
}
public void setImages(ArrayList<ImageModel> images) {
this.images = images;
}
public boolean isUpdatingFromInternet() {
return isUpdatingFromInternet;
}
public void setUpdatingFromInternet(boolean isUpdating) {
this.isUpdatingFromInternet = isUpdating;
}
public ArrayList<BookmarkModel> getBookmarks() {
if (this.bookmarks == null) {
try {
this.bookmarks = NovelsDao.getInstance().getBookmarks(getPageModel());
} catch (Exception e) {
Log.e(TAG, "Error when getting bookmarks: " + e.getMessage(), e);
}
}
return bookmarks;
}
public void setBookmarks(ArrayList<BookmarkModel> bookmarks) {
this.bookmarks = bookmarks;
}
public ArrayList<String> getBigImages() {
if (_bigImages == null) {
Document imageDoc = Jsoup.parse(getContent());
_bigImages = CommonParser.parseImagesFromContentPage(imageDoc);
}
return _bigImages;
}
}