|
|
@@ -3,10 +3,29 @@
|
|
|
*/
|
|
|
package kr.co.zumo.app.lifeplus.view.screen.web;
|
|
|
|
|
|
+import android.content.Context;
|
|
|
+import android.support.annotation.Nullable;
|
|
|
+import android.view.Gravity;
|
|
|
+import android.view.LayoutInflater;
|
|
|
+import android.view.View;
|
|
|
+import android.widget.TextView;
|
|
|
+import android.widget.Toast;
|
|
|
+
|
|
|
+import kr.co.zumo.app.R;
|
|
|
+import kr.co.zumo.app.lifeplus.application.App;
|
|
|
+import kr.co.zumo.app.lifeplus.bean.ContentsWebDeliveryBean;
|
|
|
+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.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.Event;
|
|
|
+import kr.co.zumo.app.lifeplus.view.command.EmailSendingCommand;
|
|
|
import kr.co.zumo.app.lifeplus.view.dialog.DialogBase;
|
|
|
import kr.co.zumo.app.lifeplus.view.dialog.DialogBuilder;
|
|
|
import kr.co.zumo.app.lifeplus.view.dialog.DialogID;
|
|
|
@@ -25,10 +44,14 @@ import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
|
|
|
* @since 2018. 12. 14.
|
|
|
*/
|
|
|
public class WebPresenter extends Presenter<WebModel, IWebView> {
|
|
|
+ protected Share share;
|
|
|
+
|
|
|
public WebPresenter(WebModel model, IWebView view) {
|
|
|
super(model, view);
|
|
|
- String targetUrl = model.getDeliveryPackaging(String.class);
|
|
|
- model.setUrl(targetUrl);
|
|
|
+ ContentsWebDeliveryBean targetUrl = model.getDeliveryPackaging(ContentsWebDeliveryBean.class);
|
|
|
+ model.setUrl(targetUrl.getWebUrl());
|
|
|
+ model.setSharePageIndex(targetUrl.getPageIndex());
|
|
|
+ model.setShareContents(targetUrl.getContentsDetailBean());
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -131,15 +154,18 @@ public class WebPresenter extends Presenter<WebModel, IWebView> {
|
|
|
|
|
|
switch (event.getEventId()) {
|
|
|
case Event.CLOSE:
|
|
|
- dialog.dispose();
|
|
|
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;
|
|
|
@@ -158,4 +184,84 @@ public class WebPresenter extends Presenter<WebModel, IWebView> {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ protected void sendKakaoLink() {
|
|
|
+ share = new ShareKakaoTalk(view.getActivity());
|
|
|
+ share.shareUrl(model.getShareContents(), model.getUrl(), model.getSharePageIndex(), new IShareListener() {
|
|
|
+ @Override
|
|
|
+ public void onSuccess(String result) {
|
|
|
+ }
|
|
|
+
|
|
|
+ @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() {
|
|
|
+ share = new ShareFacebook(view.getActivity(), getHelper(FacebookHelper.class).getCallbackManager());
|
|
|
+ share.shareUrl(model.getShareContents(), model.getUrl(), model.getSharePageIndex(), new IShareListener() {
|
|
|
+ @Override
|
|
|
+ public void onSuccess(String result) {
|
|
|
+ showShareToast("", ResourceUtil.getString(R.string.share_completed_message), 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onFailure(int errorCode, String result) {
|
|
|
+ showErrorDialog(result);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void sendClipBoardCopy() {
|
|
|
+ share = new ShareClipBoard(view.getActivity());
|
|
|
+ share.shareUrl(model.getShareContents(), model.getUrl(), model.getSharePageIndex(), new IShareListener() {
|
|
|
+ @Override
|
|
|
+ public void onSuccess(String result) {
|
|
|
+ showShareToast("", ResourceUtil.getString(R.string.url_copy_message), 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onFailure(int errorCode, String result) {
|
|
|
+ showErrorDialog(ResourceUtil.getString(R.string.share_error_message));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ protected void sendEmail() {
|
|
|
+ String subject;
|
|
|
+ subject = ResourceUtil.getString(R.string.lifeplus_app);
|
|
|
+ String url = model.getUrl();
|
|
|
+ String contents = ResourceUtil.getString(R.string.share_current_page_contents, subject, url);
|
|
|
+ onCommand(new EmailSendingCommand("", subject, contents));
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void showShareToast(String title, String detail, @Nullable int copyToastFlag) {
|
|
|
+
|
|
|
+ Context context = App.getInstance().getContext();
|
|
|
+ Toast toast = new Toast(context);
|
|
|
+ toast.setDuration(Toast.LENGTH_LONG);
|
|
|
+ toast.setGravity(Gravity.FILL_HORIZONTAL | Gravity.BOTTOM, 0, 0);
|
|
|
+ LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
|
|
+ View view;
|
|
|
+ if (copyToastFlag != 0) {
|
|
|
+ view = inflater.inflate(R.layout.setting_toast_url_copy_pop_up, null);
|
|
|
+ ((TextView) view.findViewById(R.id.setting_toast_detail)).setText(detail);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ view = inflater.inflate(R.layout.setting_toast_pop_up, null);
|
|
|
+ ((TextView) view.findViewById(R.id.setting_toast_title)).setText(title);
|
|
|
+ ((TextView) view.findViewById(R.id.setting_toast_detail)).setText(detail);
|
|
|
+ }
|
|
|
+
|
|
|
+ toast.setView(view);
|
|
|
+ toast.show();
|
|
|
+ }
|
|
|
}
|