|
|
@@ -149,7 +149,6 @@ public class SearchResultModel extends Model {
|
|
|
CategoryCheckBean categoryCheckBean = categoryCheckBeans.get(selectedCategoryIndex);
|
|
|
SearchRequestBean requestBean = new SearchRequestBean(getSearchTag());
|
|
|
requestBean.setCategoryNumber(categoryCheckBean.getCategoryNumber());
|
|
|
- Log.w("APP# SearchModel | search", "|" + " search ---> " + requestBean.toJson());
|
|
|
if (StringUtil.isEmpty(requestBean.getKeyword())) {
|
|
|
Log.i("APP# SearchResultModel | search", "|" + " 검색어 없음.");
|
|
|
waiterCaller.hideWaiter();
|
|
|
@@ -159,6 +158,8 @@ public class SearchResultModel extends Model {
|
|
|
// 필터 적용
|
|
|
applyFilter(requestBean);
|
|
|
|
|
|
+ Log.w("APP# SearchResultModel | search", "|" + " search ---> " + requestBean.toJson());
|
|
|
+
|
|
|
disposableSearch = new APISearchModule().call(requestBean, new APIModuleSimpleListener<SearchResultBean>(waiterCaller) {
|
|
|
@Override
|
|
|
public void onApiSuccess(SearchResultBean resultBean) {
|
|
|
@@ -214,7 +215,6 @@ public class SearchResultModel extends Model {
|
|
|
|
|
|
stopSearch();
|
|
|
SearchRequestBean requestBean = new SearchRequestBean(getSearchTag());
|
|
|
- Log.w("APP# SearchModel | search", "|" + " search ---> " + requestBean.toJson());
|
|
|
if (StringUtil.isEmpty(requestBean.getKeyword())) {
|
|
|
Log.i("APP# SearchResultModel | search", "|" + " 검색어 없음.");
|
|
|
waiterCaller.hideWaiter();
|
|
|
@@ -224,6 +224,8 @@ public class SearchResultModel extends Model {
|
|
|
// 필터 적용
|
|
|
applyFilter(requestBean);
|
|
|
|
|
|
+ Log.w("APP# SearchResultModel | search", "|" + " search ---> " + requestBean.toJson());
|
|
|
+
|
|
|
disposableSearch = new APISearchModule().call(requestBean, new APIModuleSimpleListener<SearchResultBean>(waiterCaller) {
|
|
|
@Override
|
|
|
public void onApiSuccess(SearchResultBean resultBean) {
|
|
|
@@ -245,7 +247,7 @@ public class SearchResultModel extends Model {
|
|
|
public void search() {
|
|
|
stopSearch();
|
|
|
SearchRequestBean requestBean = new SearchRequestBean(getSearchTag());
|
|
|
- Log.w("APP# SearchModel | search", "|" + " search ---> " + requestBean.toJson());
|
|
|
+ Log.w("APP# SearchResultModel | search", "|" + " search ---> " + requestBean.toJson());
|
|
|
if (StringUtil.isEmpty(requestBean.getKeyword())) {
|
|
|
Log.i("APP# SearchResultModel | search", "|" + " 검색어 없음.");
|
|
|
waiterCaller.hideWaiter();
|
|
|
@@ -497,6 +499,7 @@ public class SearchResultModel extends Model {
|
|
|
// 최신순, 좋아요순, 북마크순
|
|
|
sectionBean.getFilterBeans().add(getSearchFilterBean(R.string.order_by_latest, "1"));
|
|
|
sectionBean.getFilterBeans().get(0).setSelected(true); // 최신순 기본 선택
|
|
|
+ sectionBean.getFilterBeans().get(0).commit();
|
|
|
sectionBean.getFilterBeans().add(getSearchFilterBean(R.string.order_by_like, "2"));
|
|
|
sectionBean.getFilterBeans().add(getSearchFilterBean(R.string.order_by_bookmark, "3"));
|
|
|
hashMap.put("order", sectionBean);
|
|
|
@@ -542,7 +545,6 @@ public class SearchResultModel extends Model {
|
|
|
}
|
|
|
|
|
|
private SearchResultBean filterSearchResultBean;
|
|
|
- private List<SearchFilterBean> appliedSearchFilterBeans;
|
|
|
private List<SearchFilterSectionBean> searchFilterSectionBeans;
|
|
|
|
|
|
public final List<SearchFilterSectionBean> getFilterList() {
|
|
|
@@ -572,9 +574,9 @@ public class SearchResultModel extends Model {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- Log.w("APP# SearchModel | loadFilteringContents", "|" + " search ---> " + requestBean.toJson());
|
|
|
+ Log.w("APP# SearchResultModel | loadFilteringContents", "|" + " search ---> " + requestBean.toJson());
|
|
|
if (StringUtil.isEmpty(requestBean.getKeyword())) {
|
|
|
- Log.i("APP# SearchResultModel | search", "|" + " 검색어 없음.");
|
|
|
+ Log.i("APP# SearchResultModel | loadFilteringContents", "|" + " 검색어 없음.");
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
@@ -604,23 +606,6 @@ public class SearchResultModel extends Model {
|
|
|
|
|
|
public void loadFilterDetail(SearchFilterBean searchFilterBean, IFilterDetailListener listener) {
|
|
|
|
|
|
- // 이미 선택된 데이터가 있는지 확인
|
|
|
- List<String> selectedTagNoList = new ArrayList<>();
|
|
|
-
|
|
|
- if (null != searchFilterBean.getTagBeans()) {
|
|
|
- for (FilterTagBean tagBean : searchFilterBean.getTagBeans()) {
|
|
|
- if (tagBean.isSelected()) {
|
|
|
- selectedTagNoList.add(tagBean.getTagNo());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 처음 로딩 시 '전체' 항목은 기본 선택 해준다.
|
|
|
- // 이미 '전체' 가 포함된 경우는 제외
|
|
|
- if (selectedTagNoList.size() == 0) {
|
|
|
- selectedTagNoList.add(FilterTagBean.INDEX_TOTAL);
|
|
|
- }
|
|
|
-
|
|
|
String type = searchFilterBean.getFilterType();
|
|
|
String no = searchFilterBean.getFilterNo();
|
|
|
StringBuilder itemNoes = new StringBuilder();
|
|
|
@@ -647,22 +632,49 @@ public class SearchResultModel extends Model {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
disposableFilter = new APISearchFilterDetailModule().call(new FilterDetailRequestBean(type, no, itemNoes.toString()), new APIModuleSimpleListener<SearchFilterDetailResultBean>(waiterCaller) {
|
|
|
@Override
|
|
|
public void onApiSuccess(SearchFilterDetailResultBean resultBean) {
|
|
|
// 결과를 searchFilterBean 에 맵핑 해준다.
|
|
|
if (null != resultBean && null != resultBean.getData()) {
|
|
|
+ List<FilterTagBean> tagBeans = resultBean.getData();
|
|
|
// 이전 선택한 항목 재 선택
|
|
|
- for (FilterTagBean tagBean : resultBean.getData()) {
|
|
|
- for (String tagNo : selectedTagNoList) {
|
|
|
- if (tagNo.equals(tagBean.getTagNo())) {
|
|
|
+ if (null != searchFilterBean.getTagBeans()) {
|
|
|
+ for (FilterTagBean before : searchFilterBean.getTagBeans()) {
|
|
|
+ String tagNo = before.getTagNo();
|
|
|
+ for (FilterTagBean tagBean : tagBeans) {
|
|
|
+ if (tagNo.equals(tagBean.getTagNo())) {
|
|
|
+ tagBean.setSelected(before.isSelected());
|
|
|
+ if (before.canCommit() == false) {
|
|
|
+ // 커밋한 상태로 만듬
|
|
|
+ tagBean.commit();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 선택한 것이 있는지 확인
|
|
|
+ boolean needDefault = true;
|
|
|
+ for (FilterTagBean tagBean : tagBeans) {
|
|
|
+ if (tagBean.isSelected()) {
|
|
|
+ needDefault = false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 처음 하나도 선택 안된 상태라면 '전체'를 기본값으로 선택한다.
|
|
|
+ if (needDefault) {
|
|
|
+ for (FilterTagBean tagBean : tagBeans) {
|
|
|
+ if (FilterTagBean.INDEX_TOTAL.equals(tagBean.getTagNo())) {
|
|
|
tagBean.setSelected(true);
|
|
|
+ // 사용자 선택 전이므로 commit 은 하지 않는다.
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- searchFilterBean.setTagBeans(resultBean.getData());
|
|
|
+
|
|
|
+ searchFilterBean.setTagBeans(tagBeans);
|
|
|
}
|
|
|
|
|
|
listener.onCompleted(searchFilterBean);
|
|
|
@@ -737,6 +749,14 @@ public class SearchResultModel extends Model {
|
|
|
public void cancelFilter() {
|
|
|
isFilterApplied = false;
|
|
|
filterSearchResultBean = null;
|
|
|
+
|
|
|
+ int len = searchFilterSectionBeans.size();
|
|
|
+ for (int i = 0; i < len; ++i) {
|
|
|
+ SearchFilterSectionBean bean = searchFilterSectionBeans.get(i);
|
|
|
+ for (SearchFilterBean filterBean : bean.getFilterBeans()) {
|
|
|
+ filterBean.cancel();
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -744,6 +764,14 @@ public class SearchResultModel extends Model {
|
|
|
*/
|
|
|
public void commitFilter() {
|
|
|
|
|
|
+ int len = searchFilterSectionBeans.size();
|
|
|
+ for (int i = 0; i < len; ++i) {
|
|
|
+ SearchFilterSectionBean bean = searchFilterSectionBeans.get(i);
|
|
|
+ for (SearchFilterBean filterBean : bean.getFilterBeans()) {
|
|
|
+ filterBean.commit();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if (null == filterSearchResultBean) {
|
|
|
isFilterApplied = false;
|
|
|
}
|
|
|
@@ -762,10 +790,6 @@ public class SearchResultModel extends Model {
|
|
|
* @return
|
|
|
*/
|
|
|
public int getFilteredCount() {
|
|
|
- if (isFilterApplied == false) {
|
|
|
- return 0;
|
|
|
- }
|
|
|
-
|
|
|
if (getTagResultBeans().size() == 0) {
|
|
|
// 일치하는 결과가 없음.
|
|
|
return 0;
|
|
|
@@ -777,6 +801,7 @@ public class SearchResultModel extends Model {
|
|
|
|
|
|
/**
|
|
|
* filter data reset
|
|
|
+ * - need commit too
|
|
|
*/
|
|
|
public void resetFilter() {
|
|
|
isFilterApplied = false;
|
|
|
@@ -786,16 +811,17 @@ public class SearchResultModel extends Model {
|
|
|
SearchFilterSectionBean bean = searchFilterSectionBeans.get(i);
|
|
|
for (SearchFilterBean filterBean : bean.getFilterBeans()) {
|
|
|
filterBean.setSelected(false);
|
|
|
- if (SearchFilterBean.hasChildValue(filterBean)) {
|
|
|
- for (FilterTagBean tagBean : filterBean.getTagBeans()) {
|
|
|
- tagBean.setSelected(false);
|
|
|
- }
|
|
|
- }
|
|
|
+// filterBean.commit();
|
|
|
+
|
|
|
+ // 자식들 초기화
|
|
|
+ SearchFilterBean.setSelectChild(filterBean, false);
|
|
|
+// SearchFilterBean.commitChild(filterBean);
|
|
|
}
|
|
|
|
|
|
// 정렬 순서 초기값
|
|
|
if (SearchFilterBean.FILTER_TYPE_ORDER.equals(bean.getSectionType())) {
|
|
|
bean.getFilterBeans().get(0).setSelected(true);
|
|
|
+// bean.getFilterBeans().get(0).commit();
|
|
|
}
|
|
|
}
|
|
|
}
|