浏览代码

[공통][New] 추천인 코드 공유 다이얼로그 변경

hyodong.min 7 年之前
父节点
当前提交
7977d28c14

+ 40 - 17
app/src/main/java/kr/co/zumo/app/lifeplus/view/dialog/CurrentPageShareDialog.java

@@ -3,7 +3,6 @@ package kr.co.zumo.app.lifeplus.view.dialog;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
-import android.support.annotation.StringRes;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -15,7 +14,7 @@ import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.view.Event;
 
 /**
- * CurrentPageShareDialog
+ * ShareDialog
  * <pre>
  * </pre>
  *
@@ -24,10 +23,15 @@ import kr.co.zumo.app.lifeplus.view.Event;
  * @history 하세미   [2018-10-26]   [최초 작성]
  * @since 2018-10-26
  */
-public class CurrentPageShareDialog extends DialogBase {
+public class ShareDialog extends DialogBase {
+
+  public static final int TYPE_CODE = 0;
+  public static final int TYPE_PAGE_CURRENT = 1;
+  public static final int TYPE_PAGE_TOTAL = 2;
 
   private int titleResource;
   private int lastButtonNameResource;
+  private int type;
 
   @Nullable
   @Override
@@ -39,50 +43,69 @@ public class CurrentPageShareDialog extends DialogBase {
   public void onActivityCreated(Bundle savedInstanceState) {
     super.onActivityCreated(savedInstanceState);
 
-    Log.e("APP#  CurrentPageShareDialog | onActivityCreated", "|" + "onActivityCreated");
+    switch (type) {
+      case TYPE_CODE:
+        this.titleResource = R.string.code_share;
+        this.lastButtonNameResource = R.string.code_copy;
+        getView().findViewById(R.id.image_view_facebook).setVisibility(View.GONE);
+        getView().findViewById(R.id.image_view_email).setVisibility(View.GONE);
+        getView().findViewById(R.id.textView2).setVisibility(View.GONE);
+        getView().findViewById(R.id.textView3).setVisibility(View.GONE);
+        getView().findViewById(R.id.imageView2).setVisibility(View.GONE);
+        getView().findViewById(R.id.imageView3).setVisibility(View.GONE);
+        break;
+      case TYPE_PAGE_CURRENT:
+        this.titleResource = R.string.share_current_page_subject;
+        this.lastButtonNameResource = R.string.url;
+        break;
+      case TYPE_PAGE_TOTAL:
+        this.titleResource = R.string.share_total_page_subject;
+        this.lastButtonNameResource = R.string.url;
+        break;
+      default:
+        break;
+    }
+
+    Log.e("APP#  ShareDialog | onActivityCreated", "|" + "onActivityCreated");
     ((TextView) getView().findViewById(R.id.text_view_dialog_title)).setText(titleResource);
     ((TextView) getView().findViewById(R.id.text_view_last_button_name)).setText(lastButtonNameResource);
 
-
     Window window = getDialog().getWindow();
     window.setBackgroundDrawableResource(R.color.C99000000);
 
     getView().findViewById(R.id.image_view_cancel).setOnClickListener(view -> {
       if (null != getCustomListener()) {
-        getCustomListener().onDialogCanceled(CurrentPageShareDialog.this);
+        getCustomListener().onDialogCanceled(ShareDialog.this);
       }
     });
 
     getView().findViewById(R.id.image_view_kakao).setOnClickListener(view -> {
       if (null != getCustomListener()) {
-        getCustomListener().onDialogResult(CurrentPageShareDialog.this, new Event.Builder(Event.KAKAO_TALK).build());
+        getCustomListener().onDialogResult(ShareDialog.this, new Event.Builder(Event.KAKAO_TALK).build());
       }
     });
 
     getView().findViewById(R.id.image_view_facebook).setOnClickListener(view -> {
       if (null != getCustomListener()) {
-        getCustomListener().onDialogResult(CurrentPageShareDialog.this, new Event.Builder(Event.FACE_BOOK).build());
+        getCustomListener().onDialogResult(ShareDialog.this, new Event.Builder(Event.FACE_BOOK).build());
       }
     });
 
-    getView().findViewById(R.id.image_view_url).setOnClickListener(view -> {
+    getView().findViewById(R.id.image_view_email).setOnClickListener(view -> {
       if (null != getCustomListener()) {
-        getCustomListener().onDialogResult(CurrentPageShareDialog.this, new Event.Builder(Event.CODE_COPY).build());
+        getCustomListener().onDialogResult(ShareDialog.this, new Event.Builder(Event.EMAIL_CLICK).build());
       }
     });
 
-    getView().findViewById(R.id.image_view_email).setOnClickListener(view -> {
+    getView().findViewById(R.id.image_view_url).setOnClickListener(view -> {
       if (null != getCustomListener()) {
-        getCustomListener().onDialogResult(CurrentPageShareDialog.this, new Event.Builder(Event.EMAIL_CLICK).build());
+        getCustomListener().onDialogResult(ShareDialog.this, new Event.Builder(Event.CODE_COPY).build());
       }
     });
-
-
   }
 
-  public void setDialogType(@StringRes int titleResource, @StringRes int lastButtonNameResource) {
-    this.titleResource = titleResource;
-    this.lastButtonNameResource = lastButtonNameResource;
+  public void setDialogType(int type) {
+    this.type = type;
   }
 
 }

+ 2 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/view/dialog/factory/BasicDialogFactory.java

@@ -8,7 +8,7 @@ import kr.co.zumo.app.lifeplus.view.dialog.AppReviewDialog;
 import kr.co.zumo.app.lifeplus.view.dialog.CategorySecondMainFilterDialog;
 import kr.co.zumo.app.lifeplus.view.dialog.CoinInformationDialog;
 import kr.co.zumo.app.lifeplus.view.dialog.ConfirmDialog;
-import kr.co.zumo.app.lifeplus.view.dialog.CurrentPageShareDialog;
+import kr.co.zumo.app.lifeplus.view.dialog.ShareDialog;
 import kr.co.zumo.app.lifeplus.view.dialog.CustomAlertDialog;
 import kr.co.zumo.app.lifeplus.view.dialog.DialogBase;
 import kr.co.zumo.app.lifeplus.view.dialog.DialogID;
@@ -51,7 +51,7 @@ public class BasicDialogFactory implements IDialogFactory {
         dialog = new PromotionDialog();
         break;
       case DialogID.SHARE:
-        dialog = new CurrentPageShareDialog();
+        dialog = new ShareDialog();
         break;
       case DialogID.COIN_INFORMATION:
         dialog = new CoinInformationDialog();

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

@@ -28,7 +28,7 @@ import kr.co.zumo.app.lifeplus.util.ResourceUtil;
 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.AppReviewDialog;
-import kr.co.zumo.app.lifeplus.view.dialog.CurrentPageShareDialog;
+import kr.co.zumo.app.lifeplus.view.dialog.ShareDialog;
 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;
@@ -206,10 +206,10 @@ public class ContentsPresenter extends Presenter<ContentsModel, IContentsView> {
    * @param navigationBar
    */
   public void onNavigationClickShare(NavigationBar navigationBar) {
-    new DialogBuilder<CurrentPageShareDialog, ICustomDialogListener>(getFragmentManager(), DialogID.SHARE)
-      .listener(new ICustomDialogListener<CurrentPageShareDialog>() {
+    new DialogBuilder<ShareDialog, ICustomDialogListener>(getFragmentManager(), DialogID.SHARE)
+      .listener(new ICustomDialogListener<ShareDialog>() {
         @Override
-        public void onDialogResult(CurrentPageShareDialog dialog, Event event) {
+        public void onDialogResult(ShareDialog dialog, Event event) {
           dialog.dispose();
 
           switch (event.getEventId()) {
@@ -234,12 +234,12 @@ public class ContentsPresenter extends Presenter<ContentsModel, IContentsView> {
         }
 
         @Override
-        public void onDialogCanceled(CurrentPageShareDialog dialog) {
+        public void onDialogCanceled(ShareDialog dialog) {
           dialog.dispose();
         }
       })
       .attribute(dialog -> {
-        dialog.setDialogType(R.string.share_current_page_subject, R.string.url);
+        dialog.setDialogType(ShareDialog.TYPE_PAGE_CURRENT);
       })
       .show();
   }

+ 46 - 42
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/setting/SettingPresenter.java

@@ -30,7 +30,7 @@ import kr.co.zumo.app.lifeplus.view.Event;
 import kr.co.zumo.app.lifeplus.view.command.AppUpdateCommand;
 import kr.co.zumo.app.lifeplus.view.command.EmailSendingCommand;
 import kr.co.zumo.app.lifeplus.view.command.NotificationSettingCommand;
-import kr.co.zumo.app.lifeplus.view.dialog.CurrentPageShareDialog;
+import kr.co.zumo.app.lifeplus.view.dialog.ShareDialog;
 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;
@@ -236,47 +236,7 @@ public class SettingPresenter extends Presenter<SettingModel, ISettingView> {
           if (index == SettingViewHolder.CODE_SHARE || index == SettingViewHolder.CODE_RECOMMENDED) {
             // 내 추천인 코드 공유
             // 추천인 코드
-            String code = model.getSettingMemberBean().getMyRecommendCode();
-            if (StringUtil.isFull(code)) {
-              //추천 팝업 띄우기
-              alertDialog = new DialogBuilder<CurrentPageShareDialog, ICustomDialogListener>(getFragmentManager(), DialogID.SHARE)
-                .listener(new ICustomDialogListener<CurrentPageShareDialog>() {
-                  @Override
-                  public void onDialogResult(CurrentPageShareDialog 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(CurrentPageShareDialog dialog) {
-                    dialog.dispose();
-                  }
-                })
-                .attribute(dialog -> {
-                  dialog.setDialogType(R.string.code_share, R.string.code_copy);
-                })
-                .show();
-
-            }
+            showShareDialog();
 
           }
           else if (index == SettingViewHolder.CODE_SPACIAL) {
@@ -313,6 +273,50 @@ public class SettingPresenter extends Presenter<SettingModel, ISettingView> {
 
   }
 
+  private void showShareDialog() {
+
+    String code = model.getSettingMemberBean().getMyRecommendCode();
+    if (StringUtil.isFull(code)) {
+      //추천 팝업 띄우기
+      alertDialog = 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_CODE);
+        })
+        .show();
+
+    }
+  }
+
   private void sendEmail() {
     String subject = ResourceUtil.getString(R.string.share_title, ResourceUtil.getString(R.string.share_recommend_code_subject));
     String contents = ResourceUtil.getString(R.string.share_recommend_code_contents, model.getMyRecommendCode());

+ 14 - 7
app/src/main/res/layout/dialog_current_page_share.xml

@@ -42,7 +42,9 @@
       app:layout_constraintHorizontal_bias="0.5"
       app:layout_constraintHorizontal_chainStyle="packed"
       app:layout_constraintStart_toStartOf="parent"
-      app:layout_constraintTop_toBottomOf="@+id/text_view_dialog_title"/>
+      app:layout_constraintTop_toBottomOf="@+id/text_view_dialog_title"
+      app:layout_goneMarginStart="4dp"
+      app:layout_goneMarginEnd="4dp"/>
 
     <ImageView
       android:id="@+id/image_view_facebook"
@@ -56,7 +58,8 @@
       app:layout_constraintHorizontal_bias="0.5"
       app:layout_constraintHorizontal_chainStyle="packed"
       app:layout_constraintStart_toEndOf="@+id/image_view_kakao"
-      app:layout_constraintTop_toBottomOf="@+id/text_view_dialog_title"/>
+      app:layout_constraintTop_toBottomOf="@+id/text_view_dialog_title"
+      tools:visibility="gone"/>
 
     <ImageView
       android:id="@+id/image_view_email"
@@ -70,7 +73,8 @@
       app:layout_constraintHorizontal_bias="0.5"
       app:layout_constraintHorizontal_chainStyle="packed"
       app:layout_constraintStart_toEndOf="@+id/image_view_facebook"
-      app:layout_constraintTop_toBottomOf="@+id/text_view_dialog_title"/>
+      app:layout_constraintTop_toBottomOf="@+id/text_view_dialog_title"
+      tools:visibility="gone"/>
 
     <ImageView
       android:id="@+id/image_view_url"
@@ -79,13 +83,14 @@
       android:layout_marginTop="10dp"
       android:layout_marginEnd="11dp"
       android:layout_marginBottom="7dp"
-
       android:padding="10dp"
       android:src="@drawable/circle_c000000"
       app:layout_constraintEnd_toEndOf="parent"
       app:layout_constraintHorizontal_chainStyle="packed"
       app:layout_constraintStart_toEndOf="@+id/image_view_email"
-      app:layout_constraintTop_toBottomOf="@+id/text_view_dialog_title"/>
+      app:layout_constraintTop_toBottomOf="@+id/text_view_dialog_title"
+      app:layout_goneMarginStart="4dp"
+      app:layout_goneMarginEnd="4dp"/>
 
     <ImageView
       android:id="@+id/imageView6"
@@ -164,7 +169,8 @@
       android:textStyle="bold"
       app:layout_constraintEnd_toEndOf="@+id/imageView2"
       app:layout_constraintStart_toStartOf="@+id/imageView2"
-      app:layout_constraintTop_toBottomOf="@+id/image_view_facebook"/>
+      app:layout_constraintTop_toBottomOf="@+id/image_view_facebook"
+      tools:visibility="gone"/>
 
     <TextView
       android:id="@+id/textView3"
@@ -178,7 +184,8 @@
       android:textStyle="bold"
       app:layout_constraintEnd_toEndOf="@+id/imageView3"
       app:layout_constraintStart_toStartOf="@+id/imageView3"
-      app:layout_constraintTop_toBottomOf="@+id/image_view_email"/>
+      app:layout_constraintTop_toBottomOf="@+id/image_view_email"
+      tools:visibility="gone"/>
 
     <TextView
       android:id="@+id/text_view_last_button_name"

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -640,6 +640,7 @@
   <string name="share_title">[Lifeplus] %s</string>
   <string name="share_recommend_code_subject">추천인 코드 공유</string>
   <string name="share_current_page_subject">현재 페이지 공유</string>
+  <string name="share_total_page_subject">전체 페이지 공유</string>
   <string name="share_recommend_code_contents">"[Lifeplus] 추천인 코드 공유\n\n추천인 코드: %s\n\nLifeplus에서 더 다양한 컨텐츠를 확인하세요!\n\n아직 Lifeplus App이 없으시다면 아래 경로에서 다운로드 받으세요!\n\nApp 다운로드 : http://www.lifeplus.co.kr"</string>
   <string name="share_current_page_contents">"[Lifeplus] %1$s\n\n%2$s\n\nLifeplus에서 더 다양한 컨텐츠를 확인하세요!\n\n아직 Lifeplus App이 없으시다면 아래 경로에서 다운로드 받으세요!\n\nApp 다운로드 : http://www.lifeplus.co.kr"</string>
   <string name="sending_email">이메일 보내기</string>