Browse Source

[이벤트][Bug] 응모형 잘못된 유형의 질문은 단답형으로 처리, verifier 설정

hyodong.min 6 years ago
parent
commit
7a1dd12be7

+ 7 - 17
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/event/entry/EventQuestionFragment.java

@@ -181,8 +181,7 @@ public class EventQuestionFragment extends FragmentBase<EventQuestionPresenter>
     View questionItemView;
     EventQuestionViewHolder eventQuestionViewHolder;
     for (int i = 0; i < detailBean.getEventQuestionList().size(); ++i) {
-      questionItemView = null;
-      eventQuestionViewHolder = null;
+      
       EventQuestionBean eventQuestionBean = detailBean.getEventQuestionList().get(i);
       if (EventQuestionBean.QUESTION_TYPE_SINGLE.equals(eventQuestionBean.getQuestionType())) {
         questionItemView = inflater.inflate(R.layout.event_participation_item_single_choice, null);
@@ -194,27 +193,18 @@ public class EventQuestionFragment extends FragmentBase<EventQuestionPresenter>
         eventQuestionViewHolder = new EventQuestionMultiViewHolder(questionItemView);
         eventQuestionViewHolder.draw(i, event -> presenter.onEvent(event), eventQuestionBean);
       }
-      else if (EventQuestionBean.QUESTION_TYPE_ANSWER.equals(eventQuestionBean.getQuestionType())) {
-        questionItemView = inflater.inflate(R.layout.event_participation_item_answer, null);
-        eventQuestionViewHolder = new EventQuestionAnswerViewHolder(questionItemView);
-        eventQuestionViewHolder.draw(i, event -> presenter.onEvent(event), eventQuestionBean);
-      }
       else if (EventQuestionBean.QUESTION_TYPE_IMAGE.equals(eventQuestionBean.getQuestionType())) {
         questionItemView = inflater.inflate(R.layout.event_participation_item_image, null);
         eventQuestionViewHolder = new EventQuestionImageViewHolder(questionItemView);
         eventQuestionViewHolder.draw(i, event -> presenter.onEvent(event), eventQuestionBean);
       }
-
-      if (null == eventQuestionViewHolder) {
-        // dummy : model 과 index 를 맞추기 위해서
-        eventQuestionViewHolder = new EventQuestionViewHolder(null) {
-          @Override
-          public void validate(boolean isValidate) {}
-
-          @Override
-          public void clearFocus() {}
-        };
+      else /*if (EventQuestionBean.QUESTION_TYPE_ANSWER.equals(eventQuestionBean.getQuestionType()))*/ {
+        // 타입이 맞지 않는 질문이 있는 경우 보기가 필요없는 단답형으로 처리 -> 에러 방지
+        questionItemView = inflater.inflate(R.layout.event_participation_item_answer, null);
+        eventQuestionViewHolder = new EventQuestionAnswerViewHolder(questionItemView);
+        eventQuestionViewHolder.draw(i, event -> presenter.onEvent(event), eventQuestionBean);
       }
+
       eventQuestionViewHolders.add(eventQuestionViewHolder);
 
       if (null != questionItemView) {

+ 4 - 3
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/event/entry/EventQuestionModel.java

@@ -415,15 +415,16 @@ public class EventQuestionModel extends CoinModel implements IUriListProvider {
         else if (EventQuestionBean.QUESTION_TYPE_MULTI.equals(eventQuestionBean.getQuestionType())) {
           verifier = new EventQuestionVerifierMulti();
         }
-        else if (EventQuestionBean.QUESTION_TYPE_ANSWER.equals(eventQuestionBean.getQuestionType())) {
-          verifier = new EventQuestionVerifierAnswer();
-        }
         else if (EventQuestionBean.QUESTION_TYPE_IMAGE.equals(eventQuestionBean.getQuestionType())) {
           verifier = new EventQuestionVerifierImage(i, this);
         }
+        else /*if (EventQuestionBean.QUESTION_TYPE_ANSWER.equals(eventQuestionBean.getQuestionType()))*/ {
+          verifier = new EventQuestionVerifierAnswer();
+        }
       }
 
       if (null == verifier) {
+        // 인덱스를 맞추기 위한 더미 추가
         verifier = new EventQuestionVerifierDummy();
       }