Browse Source

[검색][New] 하위 태그 있는 항목 세부 설정 필요

hyodong.min 7 years ago
parent
commit
25ce8b366f

+ 13 - 7
app/src/main/java/kr/co/zumo/app/lifeplus/view/dialog/SearchFilterSection.java

@@ -18,6 +18,7 @@ import java.util.Map;
 
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.bean.SearchFilterSectionBean;
+import kr.co.zumo.app.lifeplus.bean.api.FilterTagBean;
 import kr.co.zumo.app.lifeplus.bean.api.LifeplusData;
 import kr.co.zumo.app.lifeplus.bean.api.SearchFilterBean;
 import kr.co.zumo.app.lifeplus.util.ResourceUtil;
@@ -82,6 +83,7 @@ public class SearchFilterSection {
         for (Checkable checkable : unchecked) {
           setSelected(checkable);
         }
+        requestContentsCount();
       });
 
       int len = filterBeans.size();
@@ -129,9 +131,9 @@ public class SearchFilterSection {
             }
             else {
               setSelected((Checkable) v);
+              requestContentsCount();
             }
 
-            requestContentsCount();
           });
         }
 
@@ -175,14 +177,18 @@ public class SearchFilterSection {
       }
     }
   }
-
-  private boolean equals(SearchFilterBean bean1, SearchFilterBean bean2) {
-    return null != bean2 && null != bean1 && bean2.getFilterNo().equals(bean1.getFilterNo()) && bean2.getFilterName().equals(bean1.getFilterName());
-  }
-
+  
   private void setSelected(Checkable checkBox) {
     SearchFilterBean filterBean = filterMap.get(checkBox);
-    filterBean.setSelected(checkBox.isChecked());
+    boolean isChecked = checkBox.isChecked();
+    filterBean.setSelected(isChecked);
+
+    // 자식이 있다면 모두 비활성
+    if(SearchFilterBean.hasChildValue(filterBean)) {
+      for (FilterTagBean tagBean : filterBean.getTagBeans()) {
+        tagBean.setSelected(isChecked);
+      }
+    }
   }
 
   public View getView() {

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

@@ -630,7 +630,7 @@ public class SearchResultModel extends Model {
 
     // 처음 로딩 시 '전체' 항목은 기본 선택 해준다.
     // 이미 '전체' 가 포함된 경우는 제외
-    if (selectedTagNoList.size() == 0 || (selectedTagNoList.size() == 1 && FilterTagBean.INDEX_TOTAL.equals(selectedTagNoList.get(0)) == false)) {
+    if (selectedTagNoList.size() == 0) {
       selectedTagNoList.add(FilterTagBean.INDEX_TOTAL);
     }