Przeglądaj źródła

Merge branch 'develop' of https://github.com/swict/LifePlusAndroid into develop

Hasemi 7 lat temu
rodzic
commit
1f6ecf43fa

+ 2 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/bean/api/LifeplusContentsBean.java

@@ -113,8 +113,8 @@ public class LifeplusContentsBean extends JsonBeanBase {
     return contentsUrl + "?itemNo=" + itemNumber + "&headerVisible=n";
   }
 
-  public String getContentsUrlWithParamForShare() {
-    return contentsUrl + "?itemNo=" + itemNumber + "&headerVisible=y";
+  public String getContentsUrlWithParamForShare(int pageIndex) {
+    return contentsUrl + "?itemNo=" + itemNumber + "&headerVisible=y" + "&visiblePage=" + String.valueOf(pageIndex);
   }
 
   public String getTitleWithTrim() {

+ 3 - 3
app/src/main/java/kr/co/zumo/app/lifeplus/tool/Share.java

@@ -3,6 +3,8 @@
  */
 package kr.co.zumo.app.lifeplus.tool;
 
+import kr.co.zumo.app.lifeplus.bean.api.LifeplusContentsBean;
+
 /**
  * Share
  * <pre>
@@ -20,9 +22,7 @@ public abstract class Share<T> {
     this.context = context;
   }
 
-  public abstract void shareContents(String contentsUrl, IShareListener listener);
-
-  public abstract void shareContents(String contentsUrl, int pageIndex, IShareListener listener);
+  public abstract void shareContents(LifeplusContentsBean contentsBean, int pageIndex, IShareListener listener);
 
   public abstract void shareRecommendCode(String code, IShareListener listener);
 

+ 4 - 6
app/src/main/java/kr/co/zumo/app/lifeplus/tool/ShareClipBoard.java

@@ -7,6 +7,8 @@ import android.content.ClipData;
 import android.content.ClipboardManager;
 import android.content.Context;
 
+import kr.co.zumo.app.lifeplus.bean.api.LifeplusContentsBean;
+
 /**
  * ShareClipBoard
  * <pre>
@@ -23,13 +25,9 @@ public class ShareClipBoard extends Share<Context> {
   }
 
   @Override
-  public void shareContents(String contentsUrl, IShareListener listener) {
-    shareContents(contentsUrl, 0, listener);
-  }
+  public void shareContents(LifeplusContentsBean contentsBean, int pageIndex, IShareListener listener) {
+    copy("url", contentsBean.getContentsUrlWithParamForShare(pageIndex), listener);
 
-  @Override
-  public void shareContents(String contentsUrl, int pageIndex, IShareListener listener) {
-    copy("url", contentsUrl, listener);
   }
 
   @Override

+ 5 - 28
app/src/main/java/kr/co/zumo/app/lifeplus/tool/ShareFacebook.java

@@ -13,6 +13,8 @@ import com.facebook.share.Sharer;
 import com.facebook.share.model.ShareLinkContent;
 import com.facebook.share.widget.ShareDialog;
 
+import kr.co.zumo.app.lifeplus.bean.api.LifeplusContentsBean;
+
 /**
  * ShareFacebook
  * <pre>
@@ -33,9 +35,9 @@ public class ShareFacebook extends Share<Activity> {
   }
 
   @Override
-  public void shareContents(String contentsUrl, IShareListener listener) {
+  public void shareContents(LifeplusContentsBean contentsBean, int pageIndex, IShareListener listener) {
     ShareLinkContent linkContent = new ShareLinkContent.Builder()
-      .setContentUrl(Uri.parse(contentsUrl))
+      .setContentUrl(Uri.parse(contentsBean.getContentsUrlWithParamForShare(pageIndex)))
       .build();
 
     ShareDialog shareDialog = new ShareDialog(context);
@@ -58,34 +60,9 @@ public class ShareFacebook extends Share<Activity> {
     shareDialog.show(linkContent);
   }
 
-  @Override
-  public void shareContents(String contentsUrl, int pageIndex, IShareListener listener) {
-
-  }
-
   @Override
   public void shareRecommendCode(String code, IShareListener listener) {
-//    ShareLinkContent linkContent = new ShareLinkContent.Builder()
-//      .setContentUrl(Uri.parse(ResourceUtil.getString(R.string.lifeplus_www_url)))
-//      .build();
-//
-//    ShareDialog shareDialog = new ShareDialog(context);
-//    shareDialog.registerCallback(this.callbackManager, new FacebookCallback<Sharer.Result>() {
-//      @Override
-//      public void onSuccess(Sharer.Result result) {
-//        listener.onSuccess(result.toString());
-//      }
-//
-//      @Override
-//      public void onCancel() {
-//      }
-//
-//      @Override
-//      public void onError(FacebookException error) {
-//        listener.onFailure(0, error.getLocalizedMessage());
-//      }
-//    });
-//    shareDialog.show(linkContent);
+    // 페이스북은 코드 공유 없음.
   }
 
   @Override

+ 3 - 13
app/src/main/java/kr/co/zumo/app/lifeplus/tool/ShareKakaoTalk.java

@@ -6,7 +6,6 @@ package kr.co.zumo.app.lifeplus.tool;
 import android.content.Context;
 import android.util.Log;
 
-import com.google.gson.Gson;
 import com.kakao.kakaolink.v2.KakaoLinkResponse;
 import com.kakao.kakaolink.v2.KakaoLinkService;
 import com.kakao.message.template.ButtonObject;
@@ -45,18 +44,9 @@ public class ShareKakaoTalk extends Share<Context> {
   }
 
   @Override
-  public void shareContents(String contentsUrl, IShareListener listener) {
-    shareContents(contentsUrl, 0, listener);
-  }
-
-  @Override
-  public void shareContents(String contentsUrl, int pageIndex, IShareListener listener) {
+  public void shareContents(LifeplusContentsBean contentsBean, int pageIndex, IShareListener listener) {
 
-    String jsonString = contentsUrl;
-    // contentsDeliveryBean 의 모든 데이터를 가져온다.
-    // contentsUrl json 스트링으로 들어있다.
-    LifeplusContentsBean contentsBean = new Gson().fromJson(jsonString, LifeplusContentsBean.class);
-    String url = contentsBean.getContentsUrlWithParamForShare();
+    String url = contentsBean.getContentsUrlWithParamForShare(pageIndex);
 
     String executionParams = new StringBuilder(CONTENTS_ITEM_NO).append("=")
       .append(contentsBean.getItemNumber())
@@ -139,7 +129,7 @@ public class ShareKakaoTalk extends Share<Context> {
       .addButton(new ButtonObject(ResourceUtil.getString(R.string.open_app), LinkObject.newBuilder()
         .setWebUrl(url)
         .setMobileWebUrl(url)
-        .setAndroidExecutionParams(new StringBuilder(RECOMMEND_KEY).append("=").append(code).toString()) //kakao95448ff031e92087b5dbc44d56cff7bb://kakaolink?key=test
+        .setAndroidExecutionParams(new StringBuilder(RECOMMEND_KEY).append("=").append(code).toString())
         .setIosExecutionParams(new StringBuilder(RECOMMEND_KEY).append("=").append(code).toString())
         .build()))
       .build();

+ 5 - 4
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/ContentsBasePresenter.java

@@ -201,7 +201,7 @@ public abstract class ContentsBasePresenter<M extends ContentsModel, V extends I
 
   protected void sendKakaoLink() {
     share = new ShareKakaoTalk(view.getActivity());
-    share.shareContents(model.getKakaoTalkShareData(), new IShareListener() {
+    share.shareContents(model.getContentsBean(), model.getSharePageIndex(), new IShareListener() {
       @Override
       public void onSuccess(String result) {
       }
@@ -220,7 +220,7 @@ public abstract class ContentsBasePresenter<M extends ContentsModel, V extends I
 
   protected void sendFaceBook() {
     share = new ShareFacebook(view.getActivity(), getHelper(FacebookHelper.class).getCallbackManager());
-    share.shareContents(model.getFacebookShareData(), new IShareListener() {
+    share.shareContents(model.getContentsBean(), model.getSharePageIndex(), new IShareListener() {
       @Override
       public void onSuccess(String result) {
         showToast("", ResourceUtil.getString(R.string.share_completed_message), 1);
@@ -236,7 +236,7 @@ public abstract class ContentsBasePresenter<M extends ContentsModel, V extends I
 
   protected void sendClipBoardCopy() {
     share = new ShareClipBoard(view.getActivity());
-    share.shareContents(model.getUrlCopyShareData(), new IShareListener() {
+    share.shareContents(model.getContentsBean(), model.getSharePageIndex(), new IShareListener() {
       @Override
       public void onSuccess(String result) {
         showToast("", ResourceUtil.getString(R.string.url_copy_message), 1);
@@ -252,7 +252,8 @@ public abstract class ContentsBasePresenter<M extends ContentsModel, V extends I
 
   protected void sendEmail() {
     String subject = ResourceUtil.getString(R.string.share_title, model.getContentsBean().getTitle());
-    String contents = model.getEmailShareData();
+    String url = model.getContentsBean().getContentsUrlWithParamForShare(model.getSharePageIndex());
+    String contents = ResourceUtil.getString(R.string.share_current_page_contents, model.getContentsBean().getTitle(), url);
     onCommand(new EmailSendingCommand("", subject, contents));
   }
 

+ 10 - 29
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/ContentsDetailModel.java

@@ -5,14 +5,12 @@ import android.util.Log;
 import java.util.List;
 
 import io.reactivex.disposables.Disposable;
-import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.bean.api.ContentsDetailBean;
 import kr.co.zumo.app.lifeplus.bean.api.ContentsDetailListBean;
 import kr.co.zumo.app.lifeplus.bean.api.ContentsDetailResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.StringRequestBean;
 import kr.co.zumo.app.lifeplus.model.module.APIContentsDetailModule;
 import kr.co.zumo.app.lifeplus.model.module.IAPIModuleListener;
-import kr.co.zumo.app.lifeplus.util.ResourceUtil;
 import kr.co.zumo.app.lifeplus.view.Event;
 import kr.co.zumo.app.lifeplus.view.dialog.ShareDialog;
 
@@ -31,8 +29,6 @@ public class ContentsDetailModel extends ContentsModel {
   private Disposable disposableDetail;
   private ContentsDetailListBean contentsDetailListBean;
 
-  private int currentPageIndex = 0;
-
   @Override
   public int getShareDialogType() {
     /**
@@ -58,23 +54,16 @@ public class ContentsDetailModel extends ContentsModel {
   }
 
   @Override
-  public String getKakaoTalkShareData() {
-    return getContentsBean().toJson();
-  }
-
-  @Override
-  public String getFacebookShareData() {
-    return getContentsBean().getContentsUrlWithParamForShare();
-  }
-
-  @Override
-  public String getEmailShareData() {
-    return ResourceUtil.getString(R.string.share_current_page_contents, getContentsBean().getTitle(), getContentsBean().getContentsUrl());
-  }
-
-  @Override
-  public String getUrlCopyShareData() {
-    return getContentsBean().getContentsUrlWithParamForShare();
+  public int getSharePageIndex() {
+    /**
+     * 카드 형은 항상 전체 공유, 그외는 페이지 분기
+     */
+    if (ContentsDetailBean.TYPE_CARD.equals(getContentsType())) {
+      return 0;
+    }
+    else {
+      return currentPageIndex;
+    }
   }
 
   @Override
@@ -114,12 +103,4 @@ public class ContentsDetailModel extends ContentsModel {
       }
     });
   }
-
-  public int getCurrentPageIndex() {
-    return currentPageIndex;
-  }
-
-  public void setCurrentPageIndex(int currentPageIndex) {
-    this.currentPageIndex = currentPageIndex;
-  }
 }

+ 18 - 4
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/ContentsModel.java

@@ -41,6 +41,8 @@ public abstract class ContentsModel extends Model {
 
   private GuestLikedManager guestLikedManager;
 
+  protected int currentPageIndex = 0;
+
   public ContentsModel() {
     guestLikedManager = new GuestLikedManager();
   }
@@ -94,10 +96,13 @@ public abstract class ContentsModel extends Model {
    */
   public abstract String getContentsType();
 
-  public abstract String getKakaoTalkShareData();
-  public abstract String getFacebookShareData();
-  public abstract String getEmailShareData();
-  public abstract String getUrlCopyShareData();
+  /**
+   * 공유에 필요한 페이지 인덱스
+   * - 0 은 전체 공유를 의미함
+   *
+   * @return
+   */
+  public abstract int getSharePageIndex();
 
   /**
    * 리뷰 다이얼로그를 표시하기 위한 카운트
@@ -276,4 +281,13 @@ public abstract class ContentsModel extends Model {
       }
     });
   }
+
+  public int getCurrentPageIndex() {
+    return currentPageIndex;
+  }
+
+  public void setCurrentPageIndex(int currentPageIndex) {
+    this.currentPageIndex = currentPageIndex;
+  }
+
 }

+ 6 - 20
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/ContentsOverviewModel.java

@@ -3,13 +3,11 @@ package kr.co.zumo.app.lifeplus.view.screen.contents;
 import java.util.List;
 
 import io.reactivex.disposables.Disposable;
-import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.bean.api.ContentsDetailBean;
 import kr.co.zumo.app.lifeplus.bean.api.ContentsDetailResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.StringRequestBean;
 import kr.co.zumo.app.lifeplus.model.module.APIContentsDetailModule;
 import kr.co.zumo.app.lifeplus.model.module.IAPIModuleListener;
-import kr.co.zumo.app.lifeplus.util.ResourceUtil;
 import kr.co.zumo.app.lifeplus.view.Event;
 import kr.co.zumo.app.lifeplus.view.dialog.ShareDialog;
 
@@ -38,7 +36,7 @@ public class ContentsOverviewModel extends ContentsModel {
 
   @Override
   public String getContentsType() {
-    if (null != contentsDetailBeans ) {
+    if (null != contentsDetailBeans) {
       List<ContentsDetailBean> list = contentsDetailBeans;
       if (list.size() > 0) {
         return list.get(0).getListType();
@@ -48,23 +46,11 @@ public class ContentsOverviewModel extends ContentsModel {
   }
 
   @Override
-  public String getKakaoTalkShareData() {
-    return getContentsBean().toJson();
-  }
-
-  @Override
-  public String getFacebookShareData() {
-    return getContentsBean().getContentsUrlWithParamForShare();
-  }
-
-  @Override
-  public String getEmailShareData() {
-    return ResourceUtil.getString(R.string.share_current_page_contents, getContentsBean().getTitle(), getContentsBean().getContentsUrl());
-  }
-
-  @Override
-  public String getUrlCopyShareData() {
-    return getContentsBean().getContentsUrlWithParamForShare();
+  public int getSharePageIndex() {
+    /**
+     * 전체 보기는 전체 페이지 공유
+     */
+    return 0;
   }
 
   protected void stopLoadingInternal() {

+ 2 - 16
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/ContentsWebModel.java

@@ -28,23 +28,9 @@ public class ContentsWebModel extends ContentsModel {
     return ContentsDetailBean.TYPE_CARD;
   }
 
-  @Override
-  public String getKakaoTalkShareData() {
-    return null;
-  }
-
-  @Override
-  public String getFacebookShareData() {
-    return null;
-  }
-
-  @Override
-  public String getEmailShareData() {
-    return null;
-  }
 
   @Override
-  public String getUrlCopyShareData() {
-    return null;
+  public int getSharePageIndex() {
+    return 0;
   }
 }

+ 2 - 17
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/series/ContentsSeriesModel.java

@@ -47,23 +47,8 @@ public class ContentsSeriesModel extends ContentsModel {
   }
 
   @Override
-  public String getKakaoTalkShareData() {
-    return null;
-  }
-
-  @Override
-  public String getFacebookShareData() {
-    return null;
-  }
-
-  @Override
-  public String getEmailShareData() {
-    return null;
-  }
-
-  @Override
-  public String getUrlCopyShareData() {
-    return null;
+  public int getSharePageIndex() {
+    return 0;
   }
 
   public void setContentsDetailListBean(ContentsDetailListBean contentsDetailListBean) {