Browse Source

[이벤트][New] 액티비티에서 이벤트 디테일 데이터 전달 해줌

hyodong.min 6 years ago
parent
commit
80d26b6710

+ 3 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/activity/EventDetailActivity.java

@@ -15,6 +15,7 @@ import kr.co.zumo.app.lifeplus.supervisor.ActivityDeliveryHelper;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
 import kr.co.zumo.app.lifeplus.util.StringUtil;
 import kr.co.zumo.app.lifeplus.view.IWaiterCallable;
+import kr.co.zumo.app.lifeplus.view.ToastProvider;
 import kr.co.zumo.app.lifeplus.view.animation.Loading;
 
 /**
@@ -44,7 +45,7 @@ public class EventDetailActivity extends ActivityBaseScreen implements IWaiterCa
           public void onApiSuccess(EventDetailResultBean resultBean) {
             if (null != resultBean.getData() && StringUtil.isFull(resultBean.getData().getEventType())) {
 
-              // todo 로딩한 이벤트 데이터를 model 로 전달해서 재활용 할 수 있다.
+              eventDeliveryBean.setEventDetailBean(resultBean.getData());
 
               String eventType = resultBean.getData().getEventType();
               eventDeliveryBean.setEventType(eventType);
@@ -69,6 +70,7 @@ public class EventDetailActivity extends ActivityBaseScreen implements IWaiterCa
     }
     else {
       Log.e("APP#  EventDetailActivity | render", "|" + " ---- EventDeliveryBean is null");
+      ToastProvider.showNative("bean is null");
       finish();
     }
   }

+ 11 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/bean/EventDeliveryBean.java

@@ -3,6 +3,8 @@
  */
 package kr.co.zumo.app.lifeplus.bean;
 
+import kr.co.zumo.app.lifeplus.bean.api.EventDetailBean;
+
 /**
  * EventDeliveryBean
  * <pre>
@@ -17,6 +19,7 @@ public class EventDeliveryBean {
 
   private String eventNo;
   private String eventType;
+  private EventDetailBean eventDetailBean;
 
   public EventDeliveryBean(String eventNo, String eventType) {
     this.eventNo = eventNo;
@@ -38,4 +41,12 @@ public class EventDeliveryBean {
   public void setEventType(String eventType) {
     this.eventType = eventType;
   }
+
+  public EventDetailBean getEventDetailBean() {
+    return eventDetailBean;
+  }
+
+  public void setEventDetailBean(EventDetailBean eventDetailBean) {
+    this.eventDetailBean = eventDetailBean;
+  }
 }

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/supervisor/ScreenID.java

@@ -123,7 +123,7 @@ public class ScreenID {
     PIN_RESET_INPUT_FROM_SETTING, /*PIN_RESET_AUTH_FROM_ALREADY_MEMBER,*/ PIN_RESET_INPUT_FROM_ALREADY_MEMBER, CONTENTS, EVENT_LIST, PHONE_NUMBER_RESET, BUCKET_MY_EDIT, BUCKET_DETAIL,
     NETWORK_ERROR_STARTING, OVER_VIEW, ACTIVITY, SERIES, SIGN_UP_START_FROM_ZUMO_ON_BOARDING, WEB_FROM_CONTENTS, BUCKET_ACTIVITY, MAP, MY_EVENT, EVENT_WINNER,
     EVENT_DETAIL, SEARCH, EVENT_QUESTION, SYSTEM_CHECK, UTILITY_ACTIVITY, SEARCH_RESULT, MY_COIN_DETAIL_GUEST, PIN_RESET_AUTH_FROM_MULTI_DEVICE, PIN_RESET_INPUT_FROM_MULTI_DEVICE,
-    PIN_RESET_AUTH_FROM_MEMBER_BLOCK, PIN_RESET_INPUT_FROM_MEMBER_BLOCK, MEMBER_UNLOCK,
+    PIN_RESET_AUTH_FROM_MEMBER_BLOCK, PIN_RESET_INPUT_FROM_MEMBER_BLOCK, MEMBER_UNLOCK, EVENT_DETAIL_ENTRY, EVENT_DETAIL_SELECT
   })
   public @interface ID {}
 

+ 17 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/event/EventDetailModel.java

@@ -16,6 +16,7 @@ import kr.co.zumo.app.lifeplus.model.module.APIError;
 import kr.co.zumo.app.lifeplus.model.module.APIEventDetailModule;
 import kr.co.zumo.app.lifeplus.model.module.APIModuleListener;
 import kr.co.zumo.app.lifeplus.util.ResourceUtil;
+import kr.co.zumo.app.lifeplus.util.StringUtil;
 import kr.co.zumo.app.lifeplus.view.Event;
 
 /**
@@ -32,6 +33,7 @@ public class EventDetailModel extends Model {
 
   private String eventNo; // 전달된 이벤트 no
   private EventDetailBean eventDetailBean;
+  private EventDetailBean deliveredEventDetailBean;
   private Disposable disposable;
 
   @Override
@@ -83,6 +85,10 @@ public class EventDetailModel extends Model {
     return eventDetailBean;
   }
 
+  public void setDeliveredEventDetailBean(EventDetailBean eventDetailBean) {
+    this.deliveredEventDetailBean = eventDetailBean;
+  }
+
   protected List<EventEntryBean> eventEntryBeans;
 
   public List<EventEntryBean> getEventEntryList() {
@@ -90,6 +96,16 @@ public class EventDetailModel extends Model {
   }
 
   public void loadEventDetail() {
+    // 배달된 데이터가 있다면
+    if (null != deliveredEventDetailBean && StringUtil.isFull(deliveredEventDetailBean.getItemNo()) && StringUtil.isFull(deliveredEventDetailBean.getEventType())) {
+      eventDetailBean = deliveredEventDetailBean;
+      parseEventEntryBean();
+      // 한 번만 사용
+      deliveredEventDetailBean = null;
+      onResult(new Event.Builder(Event.SUCCESS).integer(Event.EVENT_DETAIL).build());
+      return;
+    }
+
     disposable = new APIEventDetailModule().call(new ItemNoRequestBean(eventNo), new APIModuleListener<EventDetailResultBean>(waiterCaller) {
       @Override
       public void onApiSuccess(EventDetailResultBean resultBean) {
@@ -178,4 +194,5 @@ public class EventDetailModel extends Model {
   public boolean isEventEnd() {
     return eventDetailBean.isEventEnd();
   }
+
 }

+ 1 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/event/entry/EventDetailEntryPresenter.java

@@ -42,6 +42,7 @@ public class EventDetailEntryPresenter extends Presenter<EventDetailModel, IEven
     if (null != eventDeliveryBean) {
       Log.w("APP# EventDetailEntryPresenter | EventDetailEntryPresenter", "|" + "event NO: " + eventDeliveryBean.getEventNo());
       model.setEventNo(eventDeliveryBean.getEventNo());
+      model.setDeliveredEventDetailBean(eventDeliveryBean.getEventDetailBean());
 
       model.clearDeliveryPackaging();
     }