浏览代码

[컨텐츠][Bug] 리스티클 타입 확인 로직 수정

hyodong.min 7 年之前
父节点
当前提交
0709a89468

+ 15 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/bean/api/ContentsDetailBean.java

@@ -19,13 +19,19 @@ import java.util.List;
  */
 public class ContentsDetailBean extends LifeplusContentsBean {
 
+  public final static String ITEM_TYPE_ITEM = "01";
+  public final static String ITEM_TYPE_LISTICLE = "02";
+  public final static String ITEM_TYPE_SERIES = "03";
+
   public final static String TYPE_LISTICLE = "01";
   public final static String TYPE_CARD_LISTICLE = "02";
   public final static String TYPE_CARD = "03";
   public final static String TYPE_HTML = "04";
 
+  @SerializedName("itemDvsn")
+  private String itemType;
   @SerializedName("listType")
-  private String listType;
+  private String listType;    //   itemType == ITEM_TYPE_LISTICLE 일 때 리스트 구분
   @SerializedName("listAttrType")
   private String listAttributeType;
   @SerializedName("seriesTitl")
@@ -61,6 +67,14 @@ public class ContentsDetailBean extends LifeplusContentsBean {
     return url;
   }
 
+  public String getItemType() {
+    return itemType;
+  }
+
+  public void setItemType(String itemType) {
+    this.itemType = itemType;
+  }
+
   public String getListType() {
     return listType;
   }

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

@@ -33,7 +33,7 @@ public class ContentsAdapter extends RecyclerView.Adapter<ContentsHolder> {
   private List<ContentsDetailBean> contentsDetailBeans;
   private List<SeriesItemBean> seriesItemBeans;
   private SeriesItemBean seriesInfo;
-  private String listType = ContentsDetailBean.TYPE_CARD;
+  private final String listType;
 
   private static final int LISTICLE_COVER = 0;
   private static final int LISTICLE_DETAIL = 1;
@@ -46,16 +46,13 @@ public class ContentsAdapter extends RecyclerView.Adapter<ContentsHolder> {
   private static final int HTML = 8;
 
 
-  public ContentsAdapter(Context context, List<ContentsDetailBean> contentsDetailBeans, List<SeriesItemBean> seriesItemBeans, SeriesItemBean seriesInfo, IEventListener listener) {
+  public ContentsAdapter(Context context, String listType, List<ContentsDetailBean> contentsDetailBeans, List<SeriesItemBean> seriesItemBeans, SeriesItemBean seriesInfo, IEventListener listener) {
     this.listener = listener;
     this.inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
     this.contentsDetailBeans = contentsDetailBeans;
     this.seriesItemBeans = seriesItemBeans;
     this.seriesInfo = seriesInfo;
-
-    if (null != contentsDetailBeans && null != contentsDetailBeans.get(0)) {
-      listType = contentsDetailBeans.get(0).getListType();
-    }
+    this.listType = listType;
   }
 
   @NonNull

+ 2 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/ContentsFragment.java

@@ -163,11 +163,11 @@ public class ContentsFragment extends FragmentBase<ContentsPresenter> implements
   }
 
   @Override
-  public void draw(ContentsDetailListBean contentsDetailListBean) {
+  public void draw(String listType, ContentsDetailListBean contentsDetailListBean) {
     List<ContentsDetailBean> contentsDetailBeans = contentsDetailListBean.getItemDetailList();
     List<SeriesItemBean> seriesItemBeans = contentsDetailListBean.getSeriesItemList();
 
-    adapter = new ContentsAdapter(getActivity(), contentsDetailBeans, seriesItemBeans, contentsDetailListBean.getSeriesInfo(), event -> {
+    adapter = new ContentsAdapter(getActivity(), listType, contentsDetailBeans, seriesItemBeans, contentsDetailListBean.getSeriesInfo(), event -> {
       presenter.onEvent(event);
     });
 

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/ContentsModel.java

@@ -256,7 +256,7 @@ public class ContentsModel extends ContentsBaseModel {
   }
 
   public boolean isCardContents() {
-    return getContentsType().equals(ContentsDetailBean.TYPE_CARD);
+    return ContentsDetailBean.TYPE_CARD.equals(getContentsType());
   }
 
   public int getItemCount() {

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

@@ -5,11 +5,13 @@ import android.util.Log;
 
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.bean.ContentsDeliveryBean;
+import kr.co.zumo.app.lifeplus.bean.api.ContentsDetailBean;
 import kr.co.zumo.app.lifeplus.bean.api.LifeplusContentsBean;
 import kr.co.zumo.app.lifeplus.helper.DeliveryHelper;
 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.util.StringUtil;
 import kr.co.zumo.app.lifeplus.view.DoubleChecker;
 import kr.co.zumo.app.lifeplus.view.Event;
 import kr.co.zumo.app.lifeplus.view.dialog.ConfirmDialog;
@@ -43,11 +45,27 @@ public class ContentsPresenter extends ContentsBasePresenter<ContentsModel, ICon
   }
 
   private void render() {
-    view.draw(model.getContentsDetailListBean());
 
-    if (model.getCurrentPageIndex() > 0) {
-      view.setScrollToPosition(model.getCurrentPageIndex());
+    // 리스티클 타입인지 구분.
+    ContentsDetailBean contentsDetailBean = model.getFirstItem();
+    if (null != contentsDetailBean) {
+      String itemType = contentsDetailBean.getItemType();
+      if (StringUtil.isFull(itemType) && ContentsDetailBean.ITEM_TYPE_LISTICLE.equalsIgnoreCase(itemType)) {
+        String listType = contentsDetailBean.getListType();
+        view.draw(listType, model.getContentsDetailListBean());
+
+        if (model.getCurrentPageIndex() > 0) {
+          view.setScrollToPosition(model.getCurrentPageIndex());
+        }
+      }
+      else {
+        showErrorDialog(R.string.undefined_list_type);
+      }
     }
+    else {
+      showErrorDialog(R.string.undefined_list_type);
+    }
+
   }
 
   @Override

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/IContentsView.java

@@ -13,7 +13,7 @@ import kr.co.zumo.app.lifeplus.bean.api.ContentsDetailListBean;
  * @since 2018-11-27
  */
 public interface IContentsView extends IContentsBaseView {
-  void draw(ContentsDetailListBean contentsDetailListBean);
+  void draw(String listType, ContentsDetailListBean contentsDetailListBean);
 
   void setVisibleDotDotDot(boolean isVisible);
 

+ 4 - 2
app/src/main/res/values/strings.xml

@@ -309,8 +309,6 @@
   <string name="setting_pin_message">보안을 위해 주기적으로 재설정 해주세요.</string>
 
   <string name="setting_agree">정보제공 동의여부</string>
-  <!-- 임의 추가 문자열 -->
-  <string name="undefined_error">알 수 없는 에러</string>
   <string name="member_miss_match_error">본인인증 정보가 유효하지 않습니다.</string>
   <string name="pin_miss_match_error">간편암호가 일치하지 않습니다.</string>
 
@@ -698,5 +696,9 @@
 
   <string name="quit_app">앱 종료</string>
 
+  <!-- 임의 추가 문자열 : 시작 -->
+  <string name="undefined_error">알 수 없는 에러</string>
+  <string name="undefined_list_type">유효한 데이터 형식이 아닙니다.</string>
 
+  <!-- 임의 추가 문자열 : 끝 -->
 </resources>