Pārlūkot izejas kodu

[FAQ][New] 비회원은 액션버튼 누르면 가입 안내

hyodong.min 7 gadi atpakaļ
vecāks
revīzija
ee678900aa

+ 9 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/model/Model.java

@@ -118,6 +118,15 @@ public abstract class Model extends ViewModel implements ILifeCycle {
     return StringUtil.isFull(preferences.getZumoUserNo()) && preferences.isZumoUserUpdateCompleted() == false;
   }
 
+  /**
+   * 멤버/게스트 확인
+   *
+   * @return
+   */
+  public boolean isMember() {
+    return SuperModel.getInstance().isMember();
+  }
+
   /**
    * User ID (userNo)
    *

+ 7 - 14
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/faq/FAQFragment.java

@@ -81,6 +81,13 @@ public class FAQFragment extends FragmentBase<FAQPresenter> implements IFAQView
 
   }
 
+  @Override
+  protected void defineActionButton(ActionButtonHelper actionButtonHelper) {
+    actionButtonHelper.begin().pencil(floatingActionButton -> {
+      presenter.onActionButtonClick();
+    }).show();
+  }
+
   @Override
   public void drawList(List<FAQBean> beans) {
 
@@ -94,20 +101,6 @@ public class FAQFragment extends FragmentBase<FAQPresenter> implements IFAQView
     faqPagerAdapter.notifyDataSetChanged();
   }
 
-  @Override
-  public void showHideActionButton(boolean isMember) {
-    if (isMember) {
-      getHelper(ActionButtonHelper.class).begin().pencil(floatingActionButton -> {
-        presenter.onActionButtonClick();
-      }).show();
-    }
-    else {
-      getHelper(ActionButtonHelper.class).begin().pencil(floatingActionButton -> {
-        presenter.onActionButtonClick();
-      }).hide();
-    }
-  }
-
   @Override
   protected void onAfterDestroy() {
   }

+ 0 - 5
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/faq/FAQModel.java

@@ -10,7 +10,6 @@ import kr.co.zumo.app.lifeplus.bean.api.FAQBean;
 import kr.co.zumo.app.lifeplus.bean.api.FAQResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.RequestBean;
 import kr.co.zumo.app.lifeplus.model.Model;
-import kr.co.zumo.app.lifeplus.model.SuperModel;
 import kr.co.zumo.app.lifeplus.model.module.APIFAQModule;
 import kr.co.zumo.app.lifeplus.model.module.IAPIModuleListener;
 import kr.co.zumo.app.lifeplus.view.Event;
@@ -100,8 +99,4 @@ public class FAQModel extends Model {
   public List<FAQBean> getFaqBeans() {
     return faqBeans;
   }
-
-  public boolean isMember(){
-    return SuperModel.getInstance().isMember();
-  }
 }

+ 31 - 3
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/faq/FAQPresenter.java

@@ -3,10 +3,16 @@
  */
 package kr.co.zumo.app.lifeplus.view.screen.faq;
 
+import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.helper.NavigationBar;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
+import kr.co.zumo.app.lifeplus.util.ResourceUtil;
 import kr.co.zumo.app.lifeplus.view.DoubleChecker;
 import kr.co.zumo.app.lifeplus.view.Event;
+import kr.co.zumo.app.lifeplus.view.dialog.CustomAlertDialog;
+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.ICustomDialogListener;
 import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
 
 /**
@@ -90,8 +96,6 @@ public class FAQPresenter extends Presenter<FAQModel, IFAQView> {
   @Override
   public void onScreenReady() {
     doubleChecker.checkFirst();
-      view.showHideActionButton(model.isMember());
-
   }
 
   private void render() {
@@ -100,7 +104,31 @@ public class FAQPresenter extends Presenter<FAQModel, IFAQView> {
 
   @Override
   public void onActionButtonClick() {
-    go(ScreenID.MY_FAQ);
+    if (model.isMember()) {
+      go(ScreenID.MY_FAQ);
+    }
+    else {
+      // 비회원 가입 유도
+      new DialogBuilder<CustomAlertDialog, ICustomDialogListener>(DialogID.ALERT)
+        .listener(new ICustomDialogListener<CustomAlertDialog>() {
+          @Override
+          public void onDialogResult(CustomAlertDialog dialog, Event event) {
+            if (event.getEventId() == Event.CONFIRM) {
+              dialog.dispose();
+              go(ScreenID.SIGN_UP_START);
+            }
+          }
+
+          @Override
+          public void onDialogCanceled(CustomAlertDialog dialog) {
+            dialog.dispose();
+          }
+        })
+        .attribute(dialog -> {
+          dialog.setText(ResourceUtil.getString(R.string.faq_guest_guide));
+        })
+        .show();
+    }
   }
 
   @Override

+ 0 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/faq/IFAQView.java

@@ -20,5 +20,4 @@ import kr.co.zumo.app.lifeplus.view.IView;
  */
 public interface IFAQView extends IView {
   void drawList(List<FAQBean> beans);
-  void showHideActionButton(boolean isMember);
 }

+ 1 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/faq/MyFAQModel.java

@@ -95,4 +95,5 @@ public class MyFAQModel extends Model {
   public List<QuestionBean> getQuestionBeans() {
     return questionBeans;
   }
+
 }

+ 0 - 4
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/my/main/MyMainModel.java

@@ -186,8 +186,4 @@ public class MyMainModel extends Model {
       disposableBucket = null;
     }
   }
-
-  public boolean isMember() {
-    return SuperModel.getInstance().isMember();
-  }
 }

+ 0 - 9
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/setting/SettingModel.java

@@ -83,15 +83,6 @@ public class SettingModel extends Model {
     }
   }
 
-  /**
-   * 멤버/게스트 확인
-   *
-   * @return
-   */
-  public boolean isMember() {
-    return SuperModel.getInstance().isMember();
-  }
-
   /**
    * 추천인 이름
    * - 코드 등록 토스트에 사용

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

@@ -30,6 +30,7 @@
   <string name="member_confirm"><u>회원확인</u></string>
   <string name="faq_none">문의하신 내용이 없습니다.</string>
   <string name="faq_notice">답변알림이 오지 않을 경우 <u>여기</u>를 눌러\n알림수신을 허용해주세요.</string>
+  <string name="faq_guest_guide">서비스 이용을 위해서 Lifeplus 회원 확인이 필요합니다.</string>
 
   <string name="lifeplus_email">&lifeplus_email;</string>