|
|
@@ -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;
|