|
|
@@ -13,9 +13,14 @@ import io.reactivex.android.schedulers.AndroidSchedulers;
|
|
|
import io.reactivex.disposables.Disposable;
|
|
|
import io.reactivex.schedulers.Schedulers;
|
|
|
import kr.co.zumo.app.lifeplus.bean.api.ContentsFlagBean;
|
|
|
+import kr.co.zumo.app.lifeplus.bean.api.ContentsFlagRequestBean;
|
|
|
import kr.co.zumo.app.lifeplus.bean.api.ContentsFlagResultBean;
|
|
|
import kr.co.zumo.app.lifeplus.bean.api.ItemNumberBean;
|
|
|
+import kr.co.zumo.app.lifeplus.bean.api.LifeplusAPIBean;
|
|
|
import kr.co.zumo.app.lifeplus.bean.api.RequestBean;
|
|
|
+import kr.co.zumo.app.lifeplus.model.module.APIContentsBookmarkedModule;
|
|
|
+import kr.co.zumo.app.lifeplus.model.module.APIContentsLikedModule;
|
|
|
+import kr.co.zumo.app.lifeplus.model.module.IAPIModuleListener;
|
|
|
import kr.co.zumo.app.lifeplus.network.api.LifeplusAPIRepository;
|
|
|
import kr.co.zumo.app.lifeplus.network.api.ParameterMapper;
|
|
|
import kr.co.zumo.app.lifeplus.util.AppUtil;
|
|
|
@@ -41,6 +46,8 @@ public class ContentsFlagHelper {
|
|
|
}
|
|
|
|
|
|
private Disposable disposable;
|
|
|
+ private Disposable disposableLiked;
|
|
|
+ private Disposable disposableBookmarked;
|
|
|
private ContentsFlagBean contentsFlagBean;
|
|
|
|
|
|
public Single<ContentsFlagResultBean> load() {
|
|
|
@@ -75,7 +82,14 @@ public class ContentsFlagHelper {
|
|
|
disposable.dispose();
|
|
|
disposable = null;
|
|
|
}
|
|
|
- contentsFlagBean = null;
|
|
|
+ if (null != disposableLiked) {
|
|
|
+ disposableLiked.dispose();
|
|
|
+ disposableLiked = null;
|
|
|
+ }
|
|
|
+ if (null != disposableBookmarked) {
|
|
|
+ disposableBookmarked.dispose();
|
|
|
+ disposableBookmarked = null;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -83,6 +97,7 @@ public class ContentsFlagHelper {
|
|
|
*/
|
|
|
public void dispose() {
|
|
|
stopLoading();
|
|
|
+ contentsFlagBean = null;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -93,14 +108,7 @@ public class ContentsFlagHelper {
|
|
|
*/
|
|
|
public boolean isLiked(String itemNumber) {
|
|
|
List<ItemNumberBean> list = contentsFlagBean.getLikedList();
|
|
|
- if (null != list) {
|
|
|
- for (ItemNumberBean bean : list) {
|
|
|
- if (bean.getItemNumber().equals(itemNumber)) {
|
|
|
- return true;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return false;
|
|
|
+ return isChecked(itemNumber, list);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -111,6 +119,10 @@ public class ContentsFlagHelper {
|
|
|
*/
|
|
|
public boolean isBookmarked(String itemNumber) {
|
|
|
List<ItemNumberBean> list = contentsFlagBean.getBookmarkedList();
|
|
|
+ return isChecked(itemNumber, list);
|
|
|
+ }
|
|
|
+
|
|
|
+ private boolean isChecked(String itemNumber, List<ItemNumberBean> list) {
|
|
|
if (null != list) {
|
|
|
for (ItemNumberBean bean : list) {
|
|
|
if (bean.getItemNumber().equals(itemNumber)) {
|
|
|
@@ -132,7 +144,9 @@ public class ContentsFlagHelper {
|
|
|
contentsFlagBean.setLikedList(new ArrayList<>());
|
|
|
list = contentsFlagBean.getLikedList();
|
|
|
}
|
|
|
- list.add(new ItemNumberBean(itemNumber));
|
|
|
+ if (isLiked(itemNumber) == false) {
|
|
|
+ list.add(new ItemNumberBean(itemNumber));
|
|
|
+ }
|
|
|
print();
|
|
|
}
|
|
|
|
|
|
@@ -147,7 +161,9 @@ public class ContentsFlagHelper {
|
|
|
contentsFlagBean.setBookmarkedList(new ArrayList<>());
|
|
|
list = contentsFlagBean.getBookmarkedList();
|
|
|
}
|
|
|
- list.add(new ItemNumberBean(itemNumber));
|
|
|
+ if (isBookmarked(itemNumber) == false) {
|
|
|
+ list.add(new ItemNumberBean(itemNumber));
|
|
|
+ }
|
|
|
print();
|
|
|
}
|
|
|
|
|
|
@@ -158,15 +174,7 @@ public class ContentsFlagHelper {
|
|
|
*/
|
|
|
public void removeLiked(String itemNumber) {
|
|
|
List<ItemNumberBean> list = contentsFlagBean.getLikedList();
|
|
|
- if (null != list) {
|
|
|
- for (ItemNumberBean bean : list) {
|
|
|
- if (bean.getItemNumber().equals(itemNumber)) {
|
|
|
- list.remove(bean);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- print();
|
|
|
+ removeFlag(itemNumber, list);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -176,6 +184,10 @@ public class ContentsFlagHelper {
|
|
|
*/
|
|
|
public void removeBookmarked(String itemNumber) {
|
|
|
List<ItemNumberBean> list = contentsFlagBean.getBookmarkedList();
|
|
|
+ removeFlag(itemNumber, list);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void removeFlag(String itemNumber, List<ItemNumberBean> list) {
|
|
|
if (null != list) {
|
|
|
for (ItemNumberBean bean : list) {
|
|
|
if (bean.getItemNumber().equals(itemNumber)) {
|
|
|
@@ -192,4 +204,61 @@ public class ContentsFlagHelper {
|
|
|
Log.w("APP# ContentsFlagHelper | print", "| lists: \n" + contentsFlagBean.toPrettyJson());
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ public Disposable updateLiked(ContentsFlagRequestBean requestBean, IAPIModuleListener<LifeplusAPIBean> listener) {
|
|
|
+ boolean toChecked = requestBean.isChecked();
|
|
|
+ disposableLiked = new APIContentsLikedModule().call(requestBean, new IAPIModuleListener<LifeplusAPIBean>() {
|
|
|
+ @Override
|
|
|
+ public void onApiSuccess(LifeplusAPIBean resultBean) {
|
|
|
+ if (toChecked) {
|
|
|
+ addLiked(requestBean.getItemNumber());
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ removeLiked(requestBean.getItemNumber());
|
|
|
+ }
|
|
|
+ listener.onApiSuccess(resultBean);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onApiReason(LifeplusAPIBean resultBean) {
|
|
|
+ listener.onApiReason(resultBean);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onApiError(String errorMessage) {
|
|
|
+ listener.onApiError(errorMessage);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ return disposableLiked;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public Disposable updateBookmarked(ContentsFlagRequestBean requestBean, IAPIModuleListener<LifeplusAPIBean> listener) {
|
|
|
+ boolean toChecked = requestBean.isChecked();
|
|
|
+ disposableBookmarked = new APIContentsBookmarkedModule().call(requestBean, new IAPIModuleListener<LifeplusAPIBean>() {
|
|
|
+ @Override
|
|
|
+ public void onApiSuccess(LifeplusAPIBean resultBean) {
|
|
|
+ if (toChecked) {
|
|
|
+ addBookmarked(requestBean.getItemNumber());
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ removeBookmarked(requestBean.getItemNumber());
|
|
|
+ }
|
|
|
+ listener.onApiSuccess(resultBean);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onApiReason(LifeplusAPIBean resultBean) {
|
|
|
+ listener.onApiReason(resultBean);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onApiError(String errorMessage) {
|
|
|
+ listener.onApiError(errorMessage);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ return disposableBookmarked;
|
|
|
+ }
|
|
|
}
|