|
|
@@ -2,15 +2,23 @@ package kr.co.zumo.app.lifeplus.view.screen.my.bucketlist;
|
|
|
|
|
|
import android.util.Log;
|
|
|
|
|
|
+import kr.co.zumo.app.R;
|
|
|
import kr.co.zumo.app.lifeplus.bean.ContentsDeliveryBean;
|
|
|
-import kr.co.zumo.app.lifeplus.bean.api.BucketMyBean;
|
|
|
import kr.co.zumo.app.lifeplus.bean.api.BucketWithTagBean;
|
|
|
import kr.co.zumo.app.lifeplus.bean.api.LifeplusContentsBean;
|
|
|
-import kr.co.zumo.app.lifeplus.bean.api.LifeplusData;
|
|
|
+import kr.co.zumo.app.lifeplus.helper.NavigationBar;
|
|
|
import kr.co.zumo.app.lifeplus.model.SuperModel;
|
|
|
import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
|
|
|
+import kr.co.zumo.app.lifeplus.util.ResourceUtil;
|
|
|
import kr.co.zumo.app.lifeplus.view.DoubleChecker;
|
|
|
import kr.co.zumo.app.lifeplus.view.Event;
|
|
|
+import kr.co.zumo.app.lifeplus.view.dialog.AlertDialog;
|
|
|
+import kr.co.zumo.app.lifeplus.view.dialog.ConfirmDialog;
|
|
|
+import kr.co.zumo.app.lifeplus.view.dialog.DialogBuilder;
|
|
|
+import kr.co.zumo.app.lifeplus.view.dialog.DialogID;
|
|
|
+import kr.co.zumo.app.lifeplus.view.dialog.IAttribute;
|
|
|
+import kr.co.zumo.app.lifeplus.view.dialog.ICustomConfirmListener;
|
|
|
+import kr.co.zumo.app.lifeplus.view.dialog.ICustomDialogListener;
|
|
|
import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
|
|
|
|
|
|
/**
|
|
|
@@ -23,19 +31,19 @@ import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
|
|
|
* @history 하세미 [2018-10-19] [최초 작성]
|
|
|
* @since 2018-10-19
|
|
|
*/
|
|
|
-public class BucketListWithTagDetailPresenter extends Presenter<BucketListDetailModel, IBucketListWithTagDetailView> {
|
|
|
+public class BucketListWithTagDetailPresenter extends Presenter<BucketListWithTagDetailModel, IBucketListWithTagDetailView> {
|
|
|
|
|
|
private DoubleChecker doubleCheckerTag;
|
|
|
private DoubleChecker doubleCheckerContents;
|
|
|
|
|
|
- public BucketListWithTagDetailPresenter(BucketListDetailModel model, IBucketListWithTagDetailView view) {
|
|
|
+ public BucketListWithTagDetailPresenter(BucketListWithTagDetailModel model, IBucketListWithTagDetailView view) {
|
|
|
super(model, view);
|
|
|
|
|
|
// 나의 버킷 정보 가져옴
|
|
|
BucketWithTagBean bucketMyBean = model.getDeliveryPackaging(BucketWithTagBean.class);
|
|
|
if (null != bucketMyBean) {
|
|
|
- Log.w("APP# BucketListDetailModel | BucketListDetailModel", "|" + bucketMyBean.toPrettyJson());
|
|
|
- model.setBucketMyBean(bucketMyBean);
|
|
|
+ Log.w("APP# BucketListWithTagDetailModel | BucketListWithTagDetailModel", "|" + bucketMyBean.toPrettyJson());
|
|
|
+ model.setBucketWithTagBean(bucketMyBean);
|
|
|
model.clearDeliveryPackaging();
|
|
|
}
|
|
|
|
|
|
@@ -72,7 +80,7 @@ public class BucketListWithTagDetailPresenter extends Presenter<BucketListDetail
|
|
|
|
|
|
@Override
|
|
|
protected void startInternalOnce() {
|
|
|
- if (null != this.model.getBucketMyBean()) {
|
|
|
+ if (null != this.model.getBucketWithTagBean()) {
|
|
|
this.model.loadTag();
|
|
|
if (false == SuperModel.getInstance().getPreferences().isTutorialBucketListTagDone()) {
|
|
|
view.showTutorialBucketTag();
|
|
|
@@ -109,8 +117,7 @@ public class BucketListWithTagDetailPresenter extends Presenter<BucketListDetail
|
|
|
switch (event.getEventId()) {
|
|
|
case Event.UPDATE:
|
|
|
// 상단 버킷 클릭 시
|
|
|
- model.setDeliveryPackaging(model.getBucketMyBean());
|
|
|
- go(ScreenID.BUCKET_MY_EDIT);
|
|
|
+ edit();
|
|
|
break;
|
|
|
case Event.TAG:
|
|
|
// 태그 하나 누름
|
|
|
@@ -137,6 +144,11 @@ public class BucketListWithTagDetailPresenter extends Presenter<BucketListDetail
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void edit() {
|
|
|
+ model.setDeliveryPackaging(model.getBucketWithTagBean());
|
|
|
+ go(ScreenID.BUCKET_MY_EDIT);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public void onResult(Event event) {
|
|
|
switch (event.getEventId()) {
|
|
|
@@ -162,6 +174,18 @@ public class BucketListWithTagDetailPresenter extends Presenter<BucketListDetail
|
|
|
doubleCheckerContents.checkSecond();
|
|
|
}
|
|
|
break;
|
|
|
+
|
|
|
+ case Event.COMPLETED:
|
|
|
+ // 달성 갱신 완료;
|
|
|
+ view.setCompleted(model.getBucketWithTagBean().isCompleted());
|
|
|
+ break;
|
|
|
+ case Event.DELETE:
|
|
|
+ // 삭제 완료
|
|
|
+ showDeleteResultDialog();
|
|
|
+ break;
|
|
|
+ case Event.ERROR:
|
|
|
+ showErrorDialog(event.getString());
|
|
|
+ break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
@@ -172,11 +196,89 @@ public class BucketListWithTagDetailPresenter extends Presenter<BucketListDetail
|
|
|
doubleCheckerTag.checkFirst();
|
|
|
doubleCheckerContents.checkFirst();
|
|
|
|
|
|
- BucketMyBean bean = model.getBucketMyBean();
|
|
|
+ BucketWithTagBean bean = model.getBucketWithTagBean();
|
|
|
if (null != bean) {
|
|
|
- view.setCompleted(LifeplusData.isTrue(bean.getCompleted()));
|
|
|
+ view.setCompleted(bean.isCompleted());
|
|
|
view.setBucketTitle(bean.getTitle());
|
|
|
view.setBackground(bean.getImageUrl());
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 확인 클릭
|
|
|
+ *
|
|
|
+ * @param navigationBar
|
|
|
+ */
|
|
|
+ public void onNavigationClickConfirm(NavigationBar navigationBar) {
|
|
|
+ model.completeBucket();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 수정 클릭
|
|
|
+ *
|
|
|
+ * @param navigationBar
|
|
|
+ */
|
|
|
+ public void onNavigationClickEdit(NavigationBar navigationBar) {
|
|
|
+ edit();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 휴지통 클릭
|
|
|
+ *
|
|
|
+ * @param navigationBar
|
|
|
+ */
|
|
|
+ public void onNavigationClickTrash(NavigationBar navigationBar) {
|
|
|
+ // 버킷 리스트 삭제
|
|
|
+ new DialogBuilder<ConfirmDialog, ICustomConfirmListener>(getFragmentManager(), DialogID.CONFIRM)
|
|
|
+ .listener(new ICustomConfirmListener<ConfirmDialog>() {
|
|
|
+ @Override
|
|
|
+ public void onPositiveResult(ConfirmDialog dialog, Event event) {
|
|
|
+ dialog.dispose();
|
|
|
+ model.deleteBucket();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onNegativeResult(ConfirmDialog dialog, Event event) {
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onDialogCanceled(ConfirmDialog dialog) {
|
|
|
+ dialog.dispose();
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .attribute(dialog -> {
|
|
|
+ dialog.setText(ResourceUtil.getString(R.string.best_bucket_delete_guide));
|
|
|
+ })
|
|
|
+ .show();
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void showDeleteResultDialog() {
|
|
|
+ new DialogBuilder<AlertDialog, ICustomDialogListener>(getFragmentManager(), DialogID.ALERT)
|
|
|
+ .listener(new ICustomDialogListener<AlertDialog>() {
|
|
|
+ @Override
|
|
|
+ public void onDialogResult(AlertDialog dialog, Event event) {
|
|
|
+ if (event.getEventId() == Event.CONFIRM) {
|
|
|
+ dialog.dispose();
|
|
|
+ if (BucketListModelHelper.getInstance().getCountOfBucket() == 0) {
|
|
|
+ jump(ScreenID.MY_MAIN);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ back(ScreenID.MY_BUCKET_LIST);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onDialogCanceled(AlertDialog dialog) {
|
|
|
+ dialog.dispose();
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .attribute(new IAttribute<AlertDialog>() {
|
|
|
+ @Override
|
|
|
+ public void onAttribute(AlertDialog dialog) {
|
|
|
+ dialog.setText(R.string.delete_message);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .show();
|
|
|
+ }
|
|
|
}
|