|
|
@@ -42,7 +42,7 @@ public abstract class ContentsBaseModel extends Model {
|
|
|
|
|
|
protected LifeplusContentsBean contentsBean;
|
|
|
|
|
|
- private GuestLikedManager guestLikedManager;
|
|
|
+ protected GuestLikedManager guestLikedManager;
|
|
|
|
|
|
protected int currentPageIndex = 0;
|
|
|
|
|
|
@@ -120,6 +120,30 @@ public abstract class ContentsBaseModel extends Model {
|
|
|
*/
|
|
|
public abstract ContentsItemBean getShareContents();
|
|
|
|
|
|
+ /**
|
|
|
+ * 좋아요/북마크를 처리하기 위한 페이지 인덱스
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public abstract int getItemIndex();
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 좋아요/북마크를 처리하기 위한 page(item) 데이터
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public abstract ContentsItemBean getCurrentItem();
|
|
|
+
|
|
|
+ /**
|
|
|
+ * DeliveryHelper 로 전달된 데이터를 저장한다.
|
|
|
+ *
|
|
|
+ * @param bean
|
|
|
+ */
|
|
|
+ public void setContentsBean(LifeplusContentsBean bean) {
|
|
|
+ this.contentsBean = bean;
|
|
|
+ currentPageIndex = bean.getPageIndex();
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 컨텐츠 정보
|
|
|
*
|
|
|
@@ -129,6 +153,10 @@ public abstract class ContentsBaseModel extends Model {
|
|
|
return contentsBean;
|
|
|
}
|
|
|
|
|
|
+ public String getContentsNo() {
|
|
|
+ return contentsBean.getContentsNo();
|
|
|
+ }
|
|
|
+
|
|
|
public boolean isLiked() {
|
|
|
return null != contentsBean && contentsBean.isLiked();
|
|
|
}
|
|
|
@@ -137,46 +165,50 @@ public abstract class ContentsBaseModel extends Model {
|
|
|
return null != contentsBean && contentsBean.isBookmarked();
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * DeliveryHelper 로 전달된 데이터를 저장한다.
|
|
|
- *
|
|
|
- * @param bean
|
|
|
- */
|
|
|
- public void setContentsBean(LifeplusContentsBean bean) {
|
|
|
- this.contentsBean = bean;
|
|
|
- currentPageIndex = bean.getPageIndex();
|
|
|
+ public boolean isItemLiked() {
|
|
|
+ return getCurrentItem().isLiked();
|
|
|
+ }
|
|
|
|
|
|
- if (isMember()) {
|
|
|
- contentsBean.updateFlags(ContentsFlagHelper.getInstance());
|
|
|
+ public boolean isItemBookmarked() {
|
|
|
+ return getCurrentItem().isBookmarked();
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void updateItemLiked(boolean isChecked) {
|
|
|
+ if (currentPageIndex == 0) {
|
|
|
+ contentsBean.setLiked(isChecked);
|
|
|
}
|
|
|
- else {
|
|
|
- defineGuestLikeBean();
|
|
|
- contentsBean.setLiked(guestLikedManager.isLiked(contentsBean.getContentsNo()));
|
|
|
+ getCurrentItem().setLiked(isChecked);
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void updateItemBookmarked(boolean isChecked) {
|
|
|
+ if (currentPageIndex == 0) {
|
|
|
+ contentsBean.setBookmarked(isChecked);
|
|
|
}
|
|
|
+ getCurrentItem().setBookmarked(isChecked);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 비회원의 경우 좋아요 정보를 로컬에 저장해둔다.
|
|
|
* - 가입 시 서버로 전송
|
|
|
*/
|
|
|
- protected void updateGuestLiked(LifeplusContentsBean bean) {
|
|
|
+ protected void updateGuestLiked(ContentsItemBean bean) {
|
|
|
defineGuestLikeBean();
|
|
|
|
|
|
// toggle
|
|
|
boolean toChecked = !bean.isLiked();
|
|
|
bean.setLiked(toChecked);
|
|
|
if (toChecked) {
|
|
|
- guestLikedManager.addLiked(bean.getContentsNo());
|
|
|
+ guestLikedManager.addLiked(bean.getItemNo());
|
|
|
}
|
|
|
else {
|
|
|
- guestLikedManager.removeLiked(bean.getContentsNo());
|
|
|
+ guestLikedManager.removeLiked(bean.getItemNo());
|
|
|
}
|
|
|
|
|
|
// for UI
|
|
|
onResult(new Event.Builder(Event.SUCCESS).integer(Event.CONTENTS_LIKE).bool(toChecked).build());
|
|
|
}
|
|
|
|
|
|
- private void defineGuestLikeBean() {
|
|
|
+ protected void defineGuestLikeBean() {
|
|
|
List<String> list = guestLikedManager.getLikedList();
|
|
|
if (null == list) {
|
|
|
GuestLikedListBean bean = getGuestLikedList();
|
|
|
@@ -217,18 +249,19 @@ public abstract class ContentsBaseModel extends Model {
|
|
|
}
|
|
|
|
|
|
private void updateLikedInternal() {
|
|
|
- boolean toChecked = !contentsBean.isLiked();
|
|
|
- disposableLiked = ContentsFlagHelper.getInstance().updateLiked(new ContentsFlagRequestBean(getUserName(), contentsBean.getContentsNo(), LifeplusData.valueOf(toChecked)), new APIModuleSimpleListener<LifeplusAPIBean>() {
|
|
|
+ ContentsItemBean bean = getCurrentItem();
|
|
|
+ boolean toChecked = !bean.isLiked();
|
|
|
+ Log.i("APP# ContentsBaseModel | updateLikedInternal", "|" + "bean.getItemNo(): " + bean.getItemNo());
|
|
|
+ disposableLiked = ContentsFlagHelper.getInstance().updateLiked(new ContentsFlagRequestBean(getUserName(), bean.getItemNo(), LifeplusData.valueOf(toChecked)), new APIModuleSimpleListener<LifeplusAPIBean>() {
|
|
|
@Override
|
|
|
public void onApiSuccess(LifeplusAPIBean resultBean) {
|
|
|
- contentsBean.setLiked(toChecked);
|
|
|
+ updateItemLiked(toChecked);
|
|
|
onResult(new Event.Builder(Event.SUCCESS).integer(Event.CONTENTS_LIKE).bool(toChecked).build());
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void onApiError(String errorMessage, APIError error) {
|
|
|
onResult(new Event.Builder(Event.ERROR).integer(Event.CONTENTS_LIKE).bool(toChecked).string(errorMessage).build());
|
|
|
-
|
|
|
}
|
|
|
});
|
|
|
|
|
|
@@ -242,16 +275,18 @@ public abstract class ContentsBaseModel extends Model {
|
|
|
}
|
|
|
else {
|
|
|
// 비회원 좋아요
|
|
|
- updateGuestLiked(contentsBean);
|
|
|
+ updateGuestLiked(getCurrentItem());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public void updateBookmarked() {
|
|
|
- boolean toChecked = !contentsBean.isBookmarked();
|
|
|
- disposableBookmarked = ContentsFlagHelper.getInstance().updateBookmarked(new ContentsFlagRequestBean(getUserName(), contentsBean.getContentsNo(), LifeplusData.valueOf(toChecked)), new APIModuleSimpleListener<LifeplusAPIBean>() {
|
|
|
+ ContentsItemBean bean = getCurrentItem();
|
|
|
+ boolean toChecked = !bean.isBookmarked();
|
|
|
+ Log.i("APP# ContentsBaseModel | updateBookmarked", "|" + "bean.getItemNo(): " + bean.getItemNo());
|
|
|
+ disposableBookmarked = ContentsFlagHelper.getInstance().updateBookmarked(new ContentsFlagRequestBean(getUserName(), bean.getItemNo(), LifeplusData.valueOf(toChecked)), new APIModuleSimpleListener<LifeplusAPIBean>() {
|
|
|
@Override
|
|
|
public void onApiSuccess(LifeplusAPIBean resultBean) {
|
|
|
- contentsBean.setBookmarked(toChecked);
|
|
|
+ updateItemBookmarked(toChecked);
|
|
|
if (toChecked) {
|
|
|
BookmarkModelHelper.getInstance().addBookmark(new BookmarkBean(contentsBean));
|
|
|
}
|