|
|
@@ -0,0 +1,144 @@
|
|
|
+/*
|
|
|
+ * COPYRIGHT (c) 2018 All rights reserved by HANWHA LIFE.
|
|
|
+ */
|
|
|
+package kr.co.zumo.app.lifeplus.view.presenter;
|
|
|
+
|
|
|
+import kr.co.zumo.app.lifeplus.bean.ContentsDeliveryBean;
|
|
|
+import kr.co.zumo.app.lifeplus.bean.ContentsWebDeliveryBean;
|
|
|
+import kr.co.zumo.app.lifeplus.bean.api.LifeplusContentsBean;
|
|
|
+import kr.co.zumo.app.lifeplus.bean.api.LinkBean;
|
|
|
+import kr.co.zumo.app.lifeplus.helper.DeliveryHelper;
|
|
|
+import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
|
|
|
+
|
|
|
+/**
|
|
|
+ * LinkInvoker
|
|
|
+ * <pre>
|
|
|
+ * </pre>
|
|
|
+ *
|
|
|
+ * @author 민효동
|
|
|
+ * @version 1.0
|
|
|
+ * @history 민효동 [2019. 1. 9.] [최초 작성]
|
|
|
+ * @since 2019. 1. 9.
|
|
|
+ */
|
|
|
+public class LinkInvoker {
|
|
|
+
|
|
|
+ public static boolean invoke(Presenter presenter, LinkBean linkBean) {
|
|
|
+ boolean isSuccess = true;
|
|
|
+ /*
|
|
|
+ 링크 구분 코드
|
|
|
+ 01:외부URL, 02:컨텐츠, 03:이벤트, 04:특정메뉴
|
|
|
+ */
|
|
|
+ DeliveryHelper helper = (DeliveryHelper) presenter.getHelper(DeliveryHelper.class);
|
|
|
+ switch (linkBean.getLinkType()) {
|
|
|
+ case LinkBean.TYPE_CONTENTS:
|
|
|
+ LifeplusContentsBean bean = new LifeplusContentsBean();
|
|
|
+ bean.setContentsNo(linkBean.getLink());
|
|
|
+ ContentsDeliveryBean contentsDeliveryBean = new ContentsDeliveryBean.Builder(bean).build();
|
|
|
+
|
|
|
+ helper.setPackaging(contentsDeliveryBean);
|
|
|
+ presenter.go(ScreenID.CONTENTS);
|
|
|
+ break;
|
|
|
+ case LinkBean.TYPE_URL:
|
|
|
+ ContentsWebDeliveryBean contentsWebDeliveryBean = new ContentsWebDeliveryBean(null, -1, linkBean.getLink());
|
|
|
+
|
|
|
+ helper.setPackaging(contentsWebDeliveryBean);
|
|
|
+ presenter.go(ScreenID.WEB_FROM_CONTENTS);
|
|
|
+ break;
|
|
|
+ case LinkBean.TYPE_EVENT:
|
|
|
+ presenter.go(ScreenID.EVENT);
|
|
|
+ break;
|
|
|
+ case LinkBean.TYPE_MENU:
|
|
|
+ presenter.go(getScreenIdByApiId(linkBean.getLink()));
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ isSuccess = false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ return isSuccess;
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ EV0000 이벤트
|
|
|
+ MY0000 My홈
|
|
|
+ MY1000 My코인
|
|
|
+ CO1000 카테고리메인(주말)
|
|
|
+ CO2000 카테고리메인(여행)
|
|
|
+ CO3000 카테고리메인(취미)
|
|
|
+ CO4000 카테고리메인(트렌드이슈)
|
|
|
+ CO4500 카테고리메인(This Week)
|
|
|
+ FA1000 버킷리스트
|
|
|
+ SC0000 검색
|
|
|
+ ST2000 회원정보관리
|
|
|
+ ST4004 스페셜코드
|
|
|
+ */
|
|
|
+
|
|
|
+ public static final String API_ID_EVENT = "EV0000";
|
|
|
+ public static final String API_ID_MY_MAIN = "MY0000";
|
|
|
+ public static final String API_ID_MY_COIN_MAIN = "MY1000";
|
|
|
+ public static final String API_ID_CATEGORY_0 = "CO1000";
|
|
|
+ public static final String API_ID_CATEGORY_1 = "CO2000";
|
|
|
+ public static final String API_ID_CATEGORY_2 = "CO3000";
|
|
|
+ public static final String API_ID_CATEGORY_3 = "CO4000";
|
|
|
+ public static final String API_ID_CATEGORY_4 = "CO4500";
|
|
|
+ public static final String API_ID_BUCKET_LIST = "FA1000";
|
|
|
+ public static final String API_ID_SEARCH = "SC0000";
|
|
|
+ public static final String API_ID_SETTING_MEMBER_INFO = "ST2000";
|
|
|
+ public static final String API_ID_SPECIAL_CODE = "ST4004";
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 프로모션 팝업에서 사용되는 링크의 id 를 ScreenID 로 변환하여 반환한다.
|
|
|
+ *
|
|
|
+ * @param apiId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static int getScreenIdByApiId(String apiId) {
|
|
|
+ @ScreenID.ID int screenId;
|
|
|
+ switch (apiId) {
|
|
|
+ case API_ID_EVENT:
|
|
|
+ screenId = ScreenID.EVENT;
|
|
|
+ break;
|
|
|
+ case API_ID_MY_MAIN:
|
|
|
+ screenId = ScreenID.MY_MAIN;
|
|
|
+ break;
|
|
|
+ case API_ID_MY_COIN_MAIN:
|
|
|
+ screenId = ScreenID.MY_COIN_MAIN;
|
|
|
+ break;
|
|
|
+ case API_ID_CATEGORY_0:
|
|
|
+ screenId = ScreenID.FIRST_CATEGORY;
|
|
|
+ break;
|
|
|
+ case API_ID_CATEGORY_1:
|
|
|
+ screenId = ScreenID.SECOND_CATEGORY;
|
|
|
+ break;
|
|
|
+ case API_ID_CATEGORY_2:
|
|
|
+ screenId = ScreenID.THIRD_CATEGORY;
|
|
|
+ break;
|
|
|
+ case API_ID_CATEGORY_3:
|
|
|
+ screenId = ScreenID.FOURTH_CATEGORY;
|
|
|
+ break;
|
|
|
+ case API_ID_CATEGORY_4:
|
|
|
+ screenId = ScreenID.FIFTH_CATEGORY;
|
|
|
+ break;
|
|
|
+ case API_ID_BUCKET_LIST:
|
|
|
+ // todo 버킷리스트 유무에 따라서 화면을 결정해줘야한다.
|
|
|
+ screenId = ScreenID.BUCKET_ACTIVITY;
|
|
|
+ break;
|
|
|
+ case API_ID_SEARCH:
|
|
|
+ screenId = ScreenID.SEARCH;
|
|
|
+ break;
|
|
|
+ case API_ID_SETTING_MEMBER_INFO:
|
|
|
+ // todo 비밀번호 확인 필요
|
|
|
+ screenId = ScreenID.SETTING_MEMBER_INFO;
|
|
|
+ break;
|
|
|
+ case API_ID_SPECIAL_CODE:
|
|
|
+ // todo 코드 등록 후 피드백 처리 필요
|
|
|
+ screenId = ScreenID.SETTING_CODE;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ screenId = ScreenID.EVENT;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ return screenId;
|
|
|
+
|
|
|
+ }
|
|
|
+}
|