|
|
@@ -1,9 +1,6 @@
|
|
|
package kr.co.zumo.app.lifeplus.view.screen.setting;
|
|
|
|
|
|
-import android.content.ClipData;
|
|
|
-import android.content.ClipboardManager;
|
|
|
import android.content.Context;
|
|
|
-import android.net.Uri;
|
|
|
import android.support.annotation.Nullable;
|
|
|
import android.util.Log;
|
|
|
import android.view.Gravity;
|
|
|
@@ -12,28 +9,16 @@ import android.view.View;
|
|
|
import android.widget.TextView;
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
-import com.facebook.FacebookCallback;
|
|
|
-import com.facebook.FacebookException;
|
|
|
-import com.facebook.share.Sharer;
|
|
|
-import com.facebook.share.model.ShareLinkContent;
|
|
|
-import com.facebook.share.widget.ShareDialog;
|
|
|
-import com.kakao.kakaolink.v2.KakaoLinkResponse;
|
|
|
-import com.kakao.kakaolink.v2.KakaoLinkService;
|
|
|
-import com.kakao.message.template.ButtonObject;
|
|
|
-import com.kakao.message.template.ContentObject;
|
|
|
-import com.kakao.message.template.FeedTemplate;
|
|
|
-import com.kakao.message.template.LinkObject;
|
|
|
-import com.kakao.network.ErrorResult;
|
|
|
-import com.kakao.network.callback.ResponseCallback;
|
|
|
-
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.Map;
|
|
|
-
|
|
|
import kr.co.zumo.app.R;
|
|
|
import kr.co.zumo.app.lifeplus.application.App;
|
|
|
import kr.co.zumo.app.lifeplus.bean.api.SettingBean;
|
|
|
import kr.co.zumo.app.lifeplus.helper.FacebookHelper;
|
|
|
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.AppUtil;
|
|
|
import kr.co.zumo.app.lifeplus.util.ResourceUtil;
|
|
|
import kr.co.zumo.app.lifeplus.util.StringUtil;
|
|
|
@@ -45,7 +30,6 @@ import kr.co.zumo.app.lifeplus.view.dialog.CurrentPageShareDialog;
|
|
|
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;
|
|
|
-import kr.co.zumo.app.lifeplus.view.dialog.IAttribute;
|
|
|
import kr.co.zumo.app.lifeplus.view.dialog.ICustomDialogListener;
|
|
|
import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
|
|
|
|
|
|
@@ -68,6 +52,7 @@ public class SettingPresenter extends Presenter<SettingModel, ISettingView> {
|
|
|
public static final int SETTING_UPDATE = 4;
|
|
|
|
|
|
private DialogBase shareDialog;
|
|
|
+ private Share share;
|
|
|
private boolean isEnabled = false;
|
|
|
|
|
|
public SettingPresenter(SettingModel model, ISettingView view) {
|
|
|
@@ -77,7 +62,9 @@ public class SettingPresenter extends Presenter<SettingModel, ISettingView> {
|
|
|
|
|
|
@Override
|
|
|
protected void destroyInternal() {
|
|
|
-
|
|
|
+ if (null != share) {
|
|
|
+ share.dispose();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -200,7 +187,6 @@ public class SettingPresenter extends Presenter<SettingModel, ISettingView> {
|
|
|
case Event.CLOSE:
|
|
|
break;
|
|
|
case Event.KAKAO_TALK:
|
|
|
- //카카오링크
|
|
|
sendKakaoLink();
|
|
|
break;
|
|
|
case Event.FACE_BOOK:
|
|
|
@@ -223,7 +209,7 @@ public class SettingPresenter extends Presenter<SettingModel, ISettingView> {
|
|
|
dialog.dispose();
|
|
|
}
|
|
|
})
|
|
|
- .attribute((IAttribute<CurrentPageShareDialog>) dialog -> {
|
|
|
+ .attribute(dialog -> {
|
|
|
dialog.setDialogType(R.string.code_share, R.string.code_copy);
|
|
|
})
|
|
|
.show();
|
|
|
@@ -272,81 +258,49 @@ public class SettingPresenter extends Presenter<SettingModel, ISettingView> {
|
|
|
}
|
|
|
|
|
|
private void sendKakaoLink() {
|
|
|
- FeedTemplate params = FeedTemplate
|
|
|
- .newBuilder(ContentObject.newBuilder("추천인코드 공유",
|
|
|
- "https://www.lifeplus.co.kr/_resource/_web/images/promotion/lifeplusx/detail12_img.png",
|
|
|
- LinkObject.newBuilder().setWebUrl("https://www.lifeplus.co.kr/")
|
|
|
- .setMobileWebUrl("https://www.lifeplus.co.kr/").build())
|
|
|
- .setDescrption(model.getMyRecommendCode())
|
|
|
- .build())
|
|
|
- //.setSocial(SocialObject.newBuilder().setLikeCount(10).setCommentCount(20)
|
|
|
- //.setSharedCount(30).setViewCount(40).build())
|
|
|
-
|
|
|
- .addButton(new ButtonObject("웹에서 보기", LinkObject.newBuilder()
|
|
|
- .setWebUrl("https://www.lifeplus.co.kr/")
|
|
|
- .setMobileWebUrl("https://www.lifeplus.co.kr/").build()))
|
|
|
- .addButton(new ButtonObject("앱에서 보기", LinkObject.newBuilder()
|
|
|
- .setWebUrl("https://www.lifeplus.co.kr/")
|
|
|
- .setMobileWebUrl("https://www.lifeplus.co.kr/")
|
|
|
- .setAndroidExecutionParams("key=${model.getMyRecommendCode}") //kakao95448ff031e92087b5dbc44d56cff7bb://kakaolink?key=test
|
|
|
- .setIosExecutionParams("key=${model.getMyRecommendCode}")
|
|
|
- .build()))
|
|
|
- .build();
|
|
|
-
|
|
|
- Map<String, String> serverCallbackArgs = new HashMap<>();
|
|
|
- serverCallbackArgs.put("user_id", "${current_user_id}");
|
|
|
- serverCallbackArgs.put("product_id", "${shared_product_id}");
|
|
|
-
|
|
|
- KakaoLinkService.getInstance().sendDefault(view.getActivity(), params, new ResponseCallback<KakaoLinkResponse>() {
|
|
|
+ share = new ShareKakaoTalk(view.getActivity());
|
|
|
+ share.shareRecommendCode(model.getMyRecommendCode(), new IShareListener() {
|
|
|
@Override
|
|
|
- public void onFailure(ErrorResult errorResult) {
|
|
|
- Log.e("APP# SettingPresenter | onFailure", "|" + errorResult.toString());
|
|
|
+ public void onSuccess(String result) {
|
|
|
+ showToast("", ResourceUtil.getString(R.string.share_completed_message), 1);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void onSuccess(KakaoLinkResponse result) {
|
|
|
- Log.w("APP# SettingPresenter | onSuccess", "|" + result.toString());
|
|
|
- // 템플릿 밸리데이션과 쿼터 체크가 성공적으로 끝남. 톡에서 정상적으로 보내졌는지 보장은 할 수 없다. 전송 성공 유무는 서버콜백 기능을 이용하여야 한다.
|
|
|
+ public void onFailure(String result) {
|
|
|
+ showErrorDialog(result);
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
private void sendFaceBook() {
|
|
|
- ShareDialog shareDialog = new ShareDialog(view.getActivity());
|
|
|
- shareDialog.registerCallback(getHelper(FacebookHelper.class).getCallbackManager(), new FacebookCallback<Sharer.Result>() {
|
|
|
+ share = new ShareFacebook(view.getActivity(), getHelper(FacebookHelper.class).getCallbackManager());
|
|
|
+ share.shareRecommendCode(model.getMyRecommendCode(), new IShareListener() {
|
|
|
@Override
|
|
|
- public void onSuccess(Sharer.Result result) {
|
|
|
+ public void onSuccess(String result) {
|
|
|
showToast("", ResourceUtil.getString(R.string.share_completed_message), 1);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void onCancel() {
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onError(FacebookException error) {
|
|
|
- showErrorDialog(error.getLocalizedMessage());
|
|
|
+ public void onFailure(String result) {
|
|
|
+ showErrorDialog(result);
|
|
|
}
|
|
|
});
|
|
|
|
|
|
- ShareLinkContent linkContent = new ShareLinkContent.Builder()
|
|
|
- .setContentUrl(Uri.parse("https://www.lifeplus.co.kr/about/"))
|
|
|
- .build();
|
|
|
- shareDialog.show(linkContent);
|
|
|
-
|
|
|
}
|
|
|
|
|
|
private void sendClipBoardCopy() {
|
|
|
+ share = new ShareClipBoard(view.getActivity());
|
|
|
+ share.shareRecommendCode(model.getMyRecommendCode(), new IShareListener() {
|
|
|
+ @Override
|
|
|
+ public void onSuccess(String result) {
|
|
|
+ showToast("", ResourceUtil.getString(R.string.share_copy_completed_message), 1);
|
|
|
+ }
|
|
|
|
|
|
- ClipboardManager clipboardManager = (ClipboardManager) view.getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
|
|
|
- ClipData clipData = ClipData.newPlainText("code", model.getMyRecommendCode());
|
|
|
- try {
|
|
|
- clipboardManager.setPrimaryClip(clipData);
|
|
|
- showToast("", ResourceUtil.getString(R.string.share_copy_completed_message), 1);
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
-
|
|
|
+ @Override
|
|
|
+ public void onFailure(String result) {
|
|
|
+ showErrorDialog(ResourceUtil.getString(R.string.share_error_message));
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
@Override
|