|
|
@@ -134,7 +134,7 @@ public class SearchResultModel extends Model {
|
|
|
/**
|
|
|
* 필터 취소 후 재 검색 시 이용
|
|
|
*/
|
|
|
- public void searchNofilter() {
|
|
|
+ public void searchWithoutFilter() {
|
|
|
search(selectedCategoryIndex);
|
|
|
}
|
|
|
|
|
|
@@ -324,6 +324,10 @@ public class SearchResultModel extends Model {
|
|
|
* -> 결과 일부 있음 => hash 수가 다름
|
|
|
* -> 결과 모두 있음 => hash 수가 맞음
|
|
|
*/
|
|
|
+ if (null == resultBean) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
resultContentsBeans = null;
|
|
|
categoryBeans = null;
|
|
|
tagResultBeans = null;
|
|
|
@@ -557,6 +561,7 @@ public class SearchResultModel extends Model {
|
|
|
}
|
|
|
|
|
|
private SearchResultBean filterSearchResultBean;
|
|
|
+ private SearchResultBean filterSearchResultBeanOnlyProperty; // 지역/핫플 상세 필터를 요구할 때 이전 검색 결과를 제줄해야한다. 이는 지역/핫플이 적용되지 않은 필터 데이터를 갖고 있다.
|
|
|
private List<FilterSectionBean> filterSectionBeans;
|
|
|
|
|
|
public final List<FilterSectionBean> getFilterList() {
|
|
|
@@ -578,12 +583,9 @@ public class SearchResultModel extends Model {
|
|
|
}
|
|
|
|
|
|
// 필터 적용
|
|
|
- if (applyFilter(requestBean) == false) {
|
|
|
- isFilterApplied = false;
|
|
|
- filterSearchResultBean = null;
|
|
|
- Log.i("APP# SearchResultModel | loadFilteringContents", "|" + " 선택 필터 없음.");
|
|
|
- listener.onEvent(new Event.Builder(Event.SUCCESS).integer(getFilteredCount()).build());
|
|
|
- return;
|
|
|
+ boolean hasFilter = applyFilter(requestBean);
|
|
|
+ if (hasFilter == false) {
|
|
|
+ Log.i("APP# SearchResultModel | loadFilteringContents", "|" + " 선택 필터 없음 -> 필터 없이 로딩 - 리스트 수 반환");
|
|
|
}
|
|
|
|
|
|
Log.w("APP# SearchResultModel | loadFilteringContents", "|" + " search ---> " + requestBean.toJson());
|
|
|
@@ -597,7 +599,12 @@ public class SearchResultModel extends Model {
|
|
|
public void onApiSuccess(SearchResultBean resultBean) {
|
|
|
filterSearchResultBean = resultBean;
|
|
|
if (null != filterSearchResultBean) {
|
|
|
- isFilterApplied = true;
|
|
|
+ if (StringUtil.isEmpty(requestBean.getFilterArea()) && StringUtil.isEmpty(requestBean.getFilterPlace())) {
|
|
|
+ // 지역/핫플 필터가 없는 데이터는 별도 보관한다. 상세 필터를 요구할 때 이용
|
|
|
+ filterSearchResultBeanOnlyProperty = filterSearchResultBean;
|
|
|
+ }
|
|
|
+
|
|
|
+ isFilterApplied = hasFilter;
|
|
|
int count = filterSearchResultBean.getListCount();
|
|
|
if (null == filterSearchResultBean.getTagBeans() || filterSearchResultBean.getTagBeans().size() == 0) {
|
|
|
count = 0;
|
|
|
@@ -629,14 +636,15 @@ public class SearchResultModel extends Model {
|
|
|
// 지역 필터 적용 이전의 데이터를 저장해두고 넘겨줘야 한다.
|
|
|
// 필터링 한 데이터가 있다면 그것을 이용
|
|
|
//
|
|
|
- if (null != filterSearchResultBean) {
|
|
|
+ if (null != filterSearchResultBeanOnlyProperty) {
|
|
|
// 일치하는 결과가 있음.
|
|
|
- if (null != filterSearchResultBean.getTagBeans() && filterSearchResultBean.getTagBeans().size() > 0) {
|
|
|
- if (null != filterSearchResultBean.getData() && filterSearchResultBean.getData().size() > 0) {
|
|
|
- targetList = filterSearchResultBean.getData();
|
|
|
+ if (null != filterSearchResultBeanOnlyProperty.getTagBeans() && filterSearchResultBeanOnlyProperty.getTagBeans().size() > 0) {
|
|
|
+ if (null != filterSearchResultBeanOnlyProperty.getData() && filterSearchResultBeanOnlyProperty.getData().size() > 0) {
|
|
|
+ targetList = filterSearchResultBeanOnlyProperty.getData();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
/*
|
|
|
디테일 정보를 요청할 경우 각 태그별로 컨텐츠 수를 표시하기 위해서 기 검색된 컨텐츠의 no 들을 함께 넘겨준다.
|
|
|
*/
|
|
|
@@ -794,13 +802,7 @@ public class SearchResultModel extends Model {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (null == filterSearchResultBean) {
|
|
|
- isFilterApplied = false;
|
|
|
- }
|
|
|
- else {
|
|
|
- isFilterApplied = true;
|
|
|
- parseResult(filterSearchResultBean);
|
|
|
- }
|
|
|
+ parseResult(filterSearchResultBean);
|
|
|
|
|
|
onResult(new Event.Builder(Event.SUCCESS).integer(Event.FILTER_COMMIT).build());
|
|
|
}
|
|
|
@@ -826,6 +828,8 @@ public class SearchResultModel extends Model {
|
|
|
* - need commit too
|
|
|
*/
|
|
|
public void resetFilter() {
|
|
|
+ filterSearchResultBean = null;
|
|
|
+ filterSearchResultBeanOnlyProperty = null;
|
|
|
isFilterApplied = false;
|
|
|
|
|
|
int len = filterSectionBeans.size();
|