|
|
@@ -4,6 +4,7 @@
|
|
|
package kr.co.zumo.app.lifeplus.view.screen.web;
|
|
|
|
|
|
import android.support.annotation.Nullable;
|
|
|
+import android.util.Log;
|
|
|
|
|
|
import kr.co.zumo.app.R;
|
|
|
import kr.co.zumo.app.lifeplus.bean.ContentsWebDeliveryBean;
|
|
|
@@ -17,6 +18,7 @@ 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;
|
|
|
@@ -26,6 +28,7 @@ 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;
|
|
|
|
|
|
/**
|
|
|
* WebFromContentsPresenter
|
|
|
@@ -38,7 +41,9 @@ import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
|
|
|
* @since 2018. 12. 14.
|
|
|
*/
|
|
|
public class WebFromContentsPresenter extends Presenter<WebFromContentsModel, IWebFromContentsView> {
|
|
|
+
|
|
|
protected Share share;
|
|
|
+ protected DoubleChecker coinChecker = null;
|
|
|
|
|
|
public WebFromContentsPresenter(WebFromContentsModel model, IWebFromContentsView view) {
|
|
|
super(model, view);
|
|
|
@@ -80,7 +85,10 @@ public class WebFromContentsPresenter extends Presenter<WebFromContentsModel, IW
|
|
|
|
|
|
@Override
|
|
|
protected void resumeInternal() {
|
|
|
-
|
|
|
+ // 코인 표시가 필요할 경우
|
|
|
+ if (null != coinChecker) {
|
|
|
+ coinChecker.checkSecond();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -126,7 +134,9 @@ public class WebFromContentsPresenter extends Presenter<WebFromContentsModel, IW
|
|
|
|
|
|
@Override
|
|
|
public void onResult(Event event) {
|
|
|
-
|
|
|
+ if (event.getInteger() == Event.COIN) {
|
|
|
+ coinChecker.checkFirst();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -187,6 +197,7 @@ public class WebFromContentsPresenter extends Presenter<WebFromContentsModel, IW
|
|
|
share.shareUrl(model.getShareContents(), model.getUrl(), model.getSharePageIndex(), new IShareListener() {
|
|
|
@Override
|
|
|
public void onSuccess(String result) {
|
|
|
+ loadShareCoin(Share.TYPE_KAKAO);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -206,6 +217,7 @@ public class WebFromContentsPresenter extends Presenter<WebFromContentsModel, IW
|
|
|
share.shareUrl(model.getShareContents(), model.getUrl(), model.getSharePageIndex(), new IShareListener() {
|
|
|
@Override
|
|
|
public void onSuccess(String result) {
|
|
|
+ loadShareCoin(Share.TYPE_FACEBOOK);
|
|
|
showShareToast("", ResourceUtil.getString(R.string.share_completed_message), 1);
|
|
|
}
|
|
|
|
|
|
@@ -222,6 +234,9 @@ public class WebFromContentsPresenter extends Presenter<WebFromContentsModel, IW
|
|
|
share.shareUrl(model.getShareContents(), model.getUrl(), model.getSharePageIndex(), new IShareListener() {
|
|
|
@Override
|
|
|
public void onSuccess(String result) {
|
|
|
+ loadShareCoin(Share.TYPE_URL);
|
|
|
+ resumeInternal();
|
|
|
+
|
|
|
showShareToast("", ResourceUtil.getString(R.string.url_copy_message), 1);
|
|
|
}
|
|
|
|
|
|
@@ -234,6 +249,7 @@ public class WebFromContentsPresenter extends Presenter<WebFromContentsModel, IW
|
|
|
|
|
|
|
|
|
protected void sendEmail() {
|
|
|
+ loadShareCoin(Share.TYPE_EMAIL);
|
|
|
|
|
|
share = new ShareEmail(view.getActivity());
|
|
|
share.shareUrl(model.getShareContents(), model.getUrl(), model.getSharePageIndex(), new IShareListener() {
|
|
|
@@ -253,6 +269,26 @@ public class WebFromContentsPresenter extends Presenter<WebFromContentsModel, IW
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+ private void loadShareCoin(@Share.Type String type) {
|
|
|
+
|
|
|
+ Log.e("APP# WebFromContentsPresenter | loadShareCoin", "|" + "loadhShareCoin");
|
|
|
+ // 더블 체커 세팅
|
|
|
+ coinChecker = new DoubleChecker(() -> {
|
|
|
+ coinChecker = null;
|
|
|
+
|
|
|
+ // 보유 코인 우선 로딩 -> 코인 적립을 먼저하면 이전 값과 더한 값의 차이가 있을 수 있다.
|
|
|
+ model.getCoinAsync(e -> {
|
|
|
+ Log.i("APP# WebFromContentsPresenter | onResult", "|" + " current coin: " + e.getInteger());
|
|
|
+ new CoinPopupDriver(getFragmentManager(), () -> {}, () -> {})
|
|
|
+ .show(model.getPrevCoin(), model.getGivenCoin(), R.string.coin_share_contents);
|
|
|
+
|
|
|
+ model.mergeCoin();
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ model.loadShareCoin(type);
|
|
|
+ }
|
|
|
+
|
|
|
protected void showShareToast(String title, String detail, @Nullable int copyToastFlag) {
|
|
|
ToastProvider.showShare(title, detail, copyToastFlag);
|
|
|
}
|