Browse Source

Merge branch 'develop' of https://github.com/swict/LifeplusAndroid into develop

Hasemi 6 years ago
parent
commit
ac56175a44

+ 2 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/bean/api/FilterTagBean.java

@@ -26,6 +26,8 @@ public class FilterTagBean extends TagBean implements ISelectable {
    */
 
   public static final String INDEX_TOTAL = "0";
+  public static final String TAG_NAME_TOTAL = "전체";
+  public static final String TAG_NO_TOTAL = "ALL";
 
   @SerializedName("cnt")
   private int subCount;

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/dialog/FilterDetailDialog.java

@@ -150,7 +150,7 @@ public class FilterDetailDialog extends DialogBase<IFilterListener<FilterDetailD
 
       tagBean = tagBeans.get(i);
 
-      if (FilterTagBean.INDEX_TOTAL.equals(tagBean.getTagNo())) {
+      if (FilterTagBean.TAG_NO_TOTAL.equals(tagBean.getTagNo())) {
         View containerTotal = LayoutInflater.from(getContext()).inflate(R.layout.dialog_category_filter_detail_total, container, false);
         CustomCheckBox checkBoxAll = containerTotal.findViewById(R.id.check_total);
         checkBoxAll.setText(R.string.search_filter_all);

+ 12 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/category/CategoryFilterModel.java

@@ -346,6 +346,17 @@ public abstract class CategoryFilterModel extends CategoryMainModel {
           // 결과를 filterBean 에 맵핑 해준다.
           if (null != resultBean && null != resultBean.getData()) {
             List<FilterTagBean> tagBeans = resultBean.getData();
+            
+            // todo filter bean 파서 추가 필요
+
+            // '전체' 태그는 tag no 를 'all' 로 변환
+            for (FilterTagBean tagBean : tagBeans) {
+              if (FilterTagBean.INDEX_TOTAL.equals(tagBean.getTagNo()) || FilterTagBean.TAG_NAME_TOTAL.equals(tagBean.getTagName())) {
+                tagBean.setTagNo(FilterTagBean.TAG_NO_TOTAL);
+                break;
+              }
+            }
+
             // 이전 선택한 항목 재 선택
             if (null != filterBean.getTagBeans()) {
               for (FilterTagBean before : filterBean.getTagBeans()) {
@@ -376,7 +387,7 @@ public abstract class CategoryFilterModel extends CategoryMainModel {
             // 처음 하나도 선택 안된 상태라면 '전체'를 기본값으로 선택한다.
             if (needDefault) {
               for (FilterTagBean tagBean : tagBeans) {
-                if (FilterTagBean.INDEX_TOTAL.equals(tagBean.getTagNo())) {
+                if (FilterTagBean.TAG_NO_TOTAL.equals(tagBean.getTagNo())) {
                   tagBean.setSelected(true);
                   // 사용자 선택 전이므로 commit 은 하지 않는다.
                   break;

+ 26 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/search/SearchResultModel.java

@@ -59,6 +59,7 @@ public class SearchResultModel extends Model {
   protected Disposable disposableFilter;
   protected Disposable disposableSearch;
   protected List<SearchContentsBean> resultContentsBeans;
+  protected List<SearchContentsBean> resultContentsBeansFirst;
   private String deliveredTag;
   private String[] searchTags;
 
@@ -355,6 +356,12 @@ public class SearchResultModel extends Model {
 
     if (tagResultBeans.size() > 0) {
       Log.i("APP# SearchResultModel | onApiSuccess", "|" + "------------------- tagBeans.size(): " + tagResultBeans.size());
+
+      // 필터 검색을 위한 초기 값 저장
+      if (null == resultContentsBeansFirst) {
+        resultContentsBeansFirst = new ArrayList<>(resultContentsBeans);
+      }
+
       // 검색 결과 있음
       if (searchTags.length == tagResultBeans.size()) {
         // tag 수 같음 -> count 추가
@@ -368,6 +375,12 @@ public class SearchResultModel extends Model {
     }
     else {
       Log.i("APP# SearchResultModel | onApiSuccess", "|" + "------------------- tagBeans: " + tagResultBeans);
+
+      // 필터 검색을 위한 초기 값 저장
+      if (null == resultContentsBeansFirst) {
+        resultContentsBeansFirst = new ArrayList<>();
+      }
+
       // 검색 결과 없음 -> no result 추가 -> 추천 콘텐트 추가
       resultContentsBeans.add(0, new SearchContentsBean(SearchContentsBean.TYPE_RECOMMEND));
       resultContentsBeans.add(0, new SearchContentsBean(SearchContentsBean.TYPE_NOTHING_WITH_ICON, getSearchTag()));
@@ -632,7 +645,7 @@ public class SearchResultModel extends Model {
     StringBuilder itemNoes = new StringBuilder();
 
     // 필터링 처리한 임시 데이터
-    List<SearchContentsBean> targetList = resultContentsBeans;  // 우선 전체 데이터로 지정
+    List<SearchContentsBean> targetList = resultContentsBeansFirst;  // 우선 초기 데이터로 지정
 
     // 지역 필터 적용 이전의 데이터를 저장해두고 넘겨줘야 한다.
     if (null != filterSearchResultBeanOnlyProperty) {
@@ -663,6 +676,17 @@ public class SearchResultModel extends Model {
         // 결과를 filterBean 에 맵핑 해준다.
         if (null != resultBean && null != resultBean.getData()) {
           List<FilterTagBean> tagBeans = resultBean.getData();
+
+          // todo filter bean 파서 추가 필요
+
+          // '전체' 태그는 tag no 를 'all' 로 변환
+          for (FilterTagBean tagBean : tagBeans) {
+            if (FilterTagBean.INDEX_TOTAL.equals(tagBean.getTagNo()) || FilterTagBean.TAG_NAME_TOTAL.equals(tagBean.getTagName())) {
+              tagBean.setTagNo(FilterTagBean.TAG_NO_TOTAL);
+              break;
+            }
+          }
+
           // 이전 선택한 항목 재 선택
           if (null != filterBean.getTagBeans()) {
             for (FilterTagBean before : filterBean.getTagBeans()) {
@@ -693,7 +717,7 @@ public class SearchResultModel extends Model {
           // 처음 하나도 선택 안된 상태라면 '전체'를 기본값으로 선택한다.
           if (needDefault) {
             for (FilterTagBean tagBean : tagBeans) {
-              if (FilterTagBean.INDEX_TOTAL.equals(tagBean.getTagNo())) {
+              if (FilterTagBean.TAG_NO_TOTAL.equals(tagBean.getTagNo())) {
                 tagBean.setSelected(true);
                 // 사용자 선택 전이므로 commit 은 하지 않는다.
                 break;