|
|
@@ -1,33 +1,16 @@
|
|
|
package kr.co.zumo.app.lifeplus.view.screen.event.entry;
|
|
|
|
|
|
-import android.support.annotation.Nullable;
|
|
|
import android.util.Log;
|
|
|
|
|
|
import kr.co.zumo.app.R;
|
|
|
import kr.co.zumo.app.lifeplus.bean.EventDeliveryBean;
|
|
|
import kr.co.zumo.app.lifeplus.bean.api.EventDetailBean;
|
|
|
-import kr.co.zumo.app.lifeplus.helper.ActionBarHelper;
|
|
|
-import kr.co.zumo.app.lifeplus.helper.FacebookHelper;
|
|
|
import kr.co.zumo.app.lifeplus.helper.NavigationBar;
|
|
|
import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
|
|
|
-import kr.co.zumo.app.lifeplus.tool.IShareListener;
|
|
|
-import kr.co.zumo.app.lifeplus.tool.Share;
|
|
|
-import kr.co.zumo.app.lifeplus.tool.ShareClipBoard;
|
|
|
-import kr.co.zumo.app.lifeplus.tool.ShareEmail;
|
|
|
-import kr.co.zumo.app.lifeplus.tool.ShareFacebook;
|
|
|
-import kr.co.zumo.app.lifeplus.tool.ShareKakaoTalk;
|
|
|
-import kr.co.zumo.app.lifeplus.util.ResourceUtil;
|
|
|
import kr.co.zumo.app.lifeplus.util.StringUtil;
|
|
|
import kr.co.zumo.app.lifeplus.view.DoubleChecker;
|
|
|
import kr.co.zumo.app.lifeplus.view.Event;
|
|
|
-import kr.co.zumo.app.lifeplus.view.ToastProvider;
|
|
|
-import kr.co.zumo.app.lifeplus.view.command.EmailSendingCommand;
|
|
|
-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.ICustomDialogListener;
|
|
|
-import kr.co.zumo.app.lifeplus.view.dialog.ShareDialog;
|
|
|
-import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
|
|
|
-import kr.co.zumo.app.lifeplus.view.screen.common.CoinPopupDriver;
|
|
|
+import kr.co.zumo.app.lifeplus.view.screen.event.EventDetailPresenter;
|
|
|
import kr.co.zumo.app.lifeplus.view.screen.event.IEventDetailEntryView;
|
|
|
|
|
|
/**
|
|
|
@@ -41,7 +24,7 @@ import kr.co.zumo.app.lifeplus.view.screen.event.IEventDetailEntryView;
|
|
|
* @history 하세미 [2019-01-04] [최초 작성]
|
|
|
* @since 2019-01-04
|
|
|
*/
|
|
|
-public class EventDetailEntryPresenter extends Presenter<EventDetailEntryModel, IEventDetailEntryView> {
|
|
|
+public class EventDetailEntryPresenter extends EventDetailPresenter<EventDetailEntryModel, IEventDetailEntryView> {
|
|
|
|
|
|
protected DoubleChecker doubleChecker;
|
|
|
|
|
|
@@ -105,12 +88,7 @@ public class EventDetailEntryPresenter extends Presenter<EventDetailEntryModel,
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- protected void resumeInternal() {
|
|
|
- // 코인 표시가 필요할 경우
|
|
|
- if (null != coinChecker) {
|
|
|
- coinChecker.checkSecond();
|
|
|
- }
|
|
|
-
|
|
|
+ protected void resumeInternal2() {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -118,13 +96,6 @@ public class EventDetailEntryPresenter extends Presenter<EventDetailEntryModel,
|
|
|
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- protected boolean onBackPressedInternal() {
|
|
|
- setProgressVisible(false);
|
|
|
- back();
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
@Override
|
|
|
protected void onEventInternal(Event event) {
|
|
|
switch (event.getEventId()) {
|
|
|
@@ -191,9 +162,6 @@ public class EventDetailEntryPresenter extends Presenter<EventDetailEntryModel,
|
|
|
else if (event.getInteger() == Event.CONTENTS_LIKE) {
|
|
|
view.setLiked(event.getBool(), true);
|
|
|
}
|
|
|
- else if (event.getInteger() == Event.COIN) {
|
|
|
- coinChecker.checkFirst();
|
|
|
- }
|
|
|
break;
|
|
|
case Event.ERROR:
|
|
|
if (event.getInteger() == Event.EVENT_DETAIL) {
|
|
|
@@ -208,16 +176,6 @@ public class EventDetailEntryPresenter extends Presenter<EventDetailEntryModel,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public void onNavigationClickLike(NavigationBar navigationBar) {
|
|
|
- model.updateLiked();
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onNavigationClickShare(NavigationBar navigationBar) {
|
|
|
- showShareDialog();
|
|
|
- }
|
|
|
-
|
|
|
public void onChangedPageIndex(int index) {
|
|
|
//참여형 이벤트일 때 페이지 번호 노출
|
|
|
int len = model.getEventPageList().size();
|
|
|
@@ -232,178 +190,8 @@ public class EventDetailEntryPresenter extends Presenter<EventDetailEntryModel,
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void onNavigationClickClose(NavigationBar navigationBar) {
|
|
|
- super.onNavigationClickClose(navigationBar);
|
|
|
- }
|
|
|
-
|
|
|
- private void setProgress(int percent) {
|
|
|
- getHelper(ActionBarHelper.class).setProgress(percent);
|
|
|
- }
|
|
|
-
|
|
|
- private void setProgressVisible(boolean isProgressVisible) {
|
|
|
- getHelper(ActionBarHelper.class).setProgressVisible(isProgressVisible);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /***********************************
|
|
|
- * Share
|
|
|
- ***********************************/
|
|
|
-
|
|
|
- protected void showShareDialog() {
|
|
|
- new DialogBuilder<ShareDialog, ICustomDialogListener>(getFragmentManager(), DialogID.SHARE)
|
|
|
- .listener(new ICustomDialogListener<ShareDialog>() {
|
|
|
- @Override
|
|
|
- public void onDialogResult(ShareDialog dialog, Event event) {
|
|
|
- dialog.dispose();
|
|
|
- switch (event.getEventId()) {
|
|
|
- case Event.CLOSE:
|
|
|
- break;
|
|
|
- case Event.KAKAO_TALK:
|
|
|
- sendKakaoLink();
|
|
|
- break;
|
|
|
- case Event.FACE_BOOK:
|
|
|
- sendFaceBook();
|
|
|
- break;
|
|
|
- case Event.CODE_COPY:
|
|
|
- sendClipBoardCopy();
|
|
|
- break;
|
|
|
- case Event.EMAIL_CLICK:
|
|
|
- sendEmail();
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onDialogCanceled(ShareDialog dialog) {
|
|
|
- dialog.dispose();
|
|
|
- }
|
|
|
- })
|
|
|
- .attribute(dialog -> {
|
|
|
- dialog.setDialogType(ShareDialog.TYPE_PAGE_TOTAL);
|
|
|
- })
|
|
|
- .show();
|
|
|
- }
|
|
|
-
|
|
|
- protected void sendKakaoLink() {
|
|
|
- share = new ShareKakaoTalk(view.getActivity());
|
|
|
- share.shareEvent(model.getEventDetailBean(), new IShareListener() {
|
|
|
- @Override
|
|
|
- public void onSuccess(String result) {
|
|
|
- loadShareCoin(Share.TYPE_KAKAO);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onFailure(int errorCode, String result) {
|
|
|
- if (ShareKakaoTalk.CLIENT_ERROR_CODE == errorCode) {
|
|
|
- showErrorDialog(ResourceUtil.getString(R.string.please_install_kakaotalk));
|
|
|
- }
|
|
|
- else {
|
|
|
- showErrorDialog(result);
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- protected void sendFaceBook() {
|
|
|
- // deep link 생성하는 시간동안 웨이터 표시
|
|
|
- showWaiter();
|
|
|
- share = new ShareFacebook(view.getActivity(), getHelper(FacebookHelper.class).getCallbackManager());
|
|
|
- share.shareEvent(model.getEventDetailBean(), new IShareListener() {
|
|
|
- @Override
|
|
|
- public void onSuccess(String result) {
|
|
|
- loadShareCoin(Share.TYPE_FACEBOOK);
|
|
|
- showShareToast("", ResourceUtil.getString(R.string.share_completed_message), 1);
|
|
|
- hideWaiter();
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onCancel() {
|
|
|
- loadShareCoin(Share.TYPE_FACEBOOK);
|
|
|
- hideWaiter();
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onFailure(int errorCode, String result) {
|
|
|
- showErrorDialog(result);
|
|
|
- hideWaiter();
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- protected void sendClipBoardCopy() {
|
|
|
- // deep link 생성하는 시간동안 웨이터 표시
|
|
|
- showWaiter();
|
|
|
- share = new ShareClipBoard(view.getActivity());
|
|
|
- share.shareEvent(model.getEventDetailBean(), new IShareListener() {
|
|
|
- @Override
|
|
|
- public void onSuccess(String result) {
|
|
|
- hideWaiter();
|
|
|
- loadShareCoin(Share.TYPE_URL);
|
|
|
- // clipboard 는 resume 이 없으므로 바로 실행
|
|
|
- resumeInternal();
|
|
|
-
|
|
|
- showShareToast("", ResourceUtil.getString(R.string.url_copy_message), 1);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onFailure(int errorCode, String result) {
|
|
|
- hideWaiter();
|
|
|
- showErrorDialog(ResourceUtil.getString(R.string.share_error_message));
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- protected void sendEmail() {
|
|
|
-
|
|
|
- // deep link 생성하는 시간동안 웨이터 표시
|
|
|
- showWaiter();
|
|
|
- share = new ShareEmail(view.getActivity());
|
|
|
- share.shareEvent(model.getEventDetailBean(), new IShareListener() {
|
|
|
- @Override
|
|
|
- public void onSuccess(String result) {
|
|
|
- hideWaiter();
|
|
|
- loadShareCoin(Share.TYPE_EMAIL);
|
|
|
- String subject;
|
|
|
- subject = ResourceUtil.getString(R.string.share_title, model.getEventDetailBean().getTitle());
|
|
|
- String url = result;
|
|
|
- String contents = ResourceUtil.getString(R.string.share_event_contents, subject, url);
|
|
|
- Log.d("APP# EventDetailEntryPresenter | onSuccess", "|" + contents);
|
|
|
- onCommand(new EmailSendingCommand("", subject, contents));
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onFailure(int errorCode, String result) {
|
|
|
- hideWaiter();
|
|
|
- showErrorDialog(ResourceUtil.getString(R.string.share_error_message));
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- protected Share share;
|
|
|
- protected DoubleChecker coinChecker = null;
|
|
|
-
|
|
|
- protected void loadShareCoin(@Share.Type String type) {
|
|
|
- // 더블 체커 세팅
|
|
|
- coinChecker = new DoubleChecker(() -> {
|
|
|
- coinChecker = null;
|
|
|
-
|
|
|
- // 보유 코인 우선 로딩 -> 코인 적립을 먼저하면 이전 값과 더한 값의 차이가 있을 수 있다.
|
|
|
- model.getCoinAsync(e -> {
|
|
|
- Log.i("APP# ContentsBasePresenter | onResult", "|" + " current coin: " + e.getInteger());
|
|
|
- new CoinPopupDriver(getFragmentManager(), () -> {}, () -> {})
|
|
|
- .show(model.getPrevCoin(), model.getGivenCoin(), R.string.coin_share_contents);
|
|
|
-
|
|
|
- model.mergeCoin();
|
|
|
- });
|
|
|
- });
|
|
|
-
|
|
|
- model.loadShareCoin(type);
|
|
|
+ public void onNavigationClickLike(NavigationBar navigationBar) {
|
|
|
+ model.updateLiked();
|
|
|
}
|
|
|
|
|
|
- protected void showShareToast(String title, String detail, @Nullable int copyToastFlag) {
|
|
|
- ToastProvider.showShare(title, detail, copyToastFlag);
|
|
|
- }
|
|
|
}
|