package com.erakk.lnreader.model;
import android.util.Log;
import com.erakk.lnreader.Constants;
import com.erakk.lnreader.helper.Util;
import java.util.Date;
public class BookmarkModel {
private static final String TAG = BookmarkModel.class.toString();
private int id = -1;
private String page;
private int pIndex;
private String excerpt;
private Date creationDate;
private PageModel pageModel;
private String bookmarkTitle = null;
private String subTitle = null;
private boolean selected;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getPage() {
return page;
}
public void setPage(String page) {
this.page = page;
}
public int getpIndex() {
return pIndex;
}
public void setpIndex(int pIndex) {
this.pIndex = pIndex;
}
public String getExcerpt() {
return excerpt;
}
public void setExcerpt(String excerpt) {
this.excerpt = excerpt;
}
public Date getCreationDate() {
return creationDate;
}
public void setCreationDate(Date creationDate) {
this.creationDate = creationDate;
}
public PageModel getPageModel() throws Exception {
if (pageModel == null) {
pageModel = PageModel.getExistingPageModelByName(this.page);
}
return pageModel;
}
public void setPageModel(PageModel pageModel) {
this.pageModel = pageModel;
}
public boolean isSelected() {
return selected;
}
public void setSelected(boolean selected) {
this.selected = selected;
}
/**
* Get Book Title
*
* @return
*/
public String getBookmarkTitle() {
if (bookmarkTitle == null) {
bookmarkTitle = "*DELETED CHAPTER*";
Log.d(TAG, "Page: " + page);
try {
pageModel = getPageModel();
if (pageModel != null) {
PageModel parentPage = pageModel.getParentPageModel();
bookmarkTitle = parentPage.getTitle();
}
} catch (Exception ex) {
Log.e(TAG, "Failed to get pageModel: " + page, ex);
}
}
return bookmarkTitle;
}
public void setBookmarkTitle(String bookmarkTitle) {
this.bookmarkTitle = bookmarkTitle;
}
/**
* Get Book title and chapter if possible.
*
* @return
*/
public String getSubTitle() {
if (subTitle == null) {
Log.d(TAG, "Page: " + page);
subTitle = page;
try {
pageModel = getPageModel();
if (pageModel != null) {
subTitle = pageModel.getTitle();
String bookTitle = pageModel.getParent().substring(pageModel.getParent().indexOf(Constants.NOVEL_BOOK_DIVIDER) + Constants.NOVEL_BOOK_DIVIDER.length());
if (!Util.isStringNullOrEmpty(bookTitle)) {
subTitle = String.format("(%s) %s", bookTitle, subTitle);
} else {
BookModel book = pageModel.getBook(false);
if (book != null)
subTitle = String.format("(%s) %s", book.getTitle(), subTitle);
}
}
} catch (Exception ex) {
Log.e(TAG, "Failed to get subtitle for : " + page, ex);
}
}
return subTitle;
}
public void setSubTitle(String subTitle) {
this.subTitle = subTitle;
}
}