package com.tejia.lijin.app.presenter;
|
|
import android.content.Context;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
|
import com.tejia.lijin.app.contract.SearchContract;
|
import com.tejia.lijin.app.model.SearchModel;
|
import com.tejia.lijin.app.db.SearchHistoryDao;
|
import com.tejia.lijin.app.entity.SearchHistory;
|
import com.tejia.lijin.app.ui.recommend.SearchResultActivity;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* 搜索过渡页 Presenter
|
*/
|
public class SearchPresenter extends BasePresenter<SearchContract.SearchView> {
|
private SearchModel model;
|
private Context mContext;
|
|
public SearchPresenter(Context context) {
|
this.model = new SearchModel(context);
|
this.mContext = context;
|
}
|
|
/**
|
* 搜索过渡页 搜索关键词
|
*
|
* @param key
|
* @param page
|
*/
|
public void getSuggestSearch(final String key, int page) {
|
model.Search(key, page, new SearchContract.SearchCallBack() {
|
@Override
|
public void onSuccess(List<String> list) {
|
if(getView()!=null){
|
getView().onSearchSuccess(list, key);
|
}
|
}
|
|
@Override
|
public void onFail(String errorInfo) {
|
if(getView()!=null){
|
getView().onSearchFail(errorInfo);
|
}
|
}
|
});
|
}
|
|
/**
|
* 添加历史搜索
|
*
|
* @param content
|
* @param page viewpage 当前页 1表示淘宝 2表示京东 3表示拼多多
|
*/
|
public void addSearchHistory(String content, int page) {
|
SearchHistoryDao historyDao = new SearchHistoryDao(mContext);
|
List<SearchHistory> list1 = historyDao.getAllSearchHistory();
|
for (int i = 0; i < list1.size(); i++) {
|
if (list1.get(i).getName().equalsIgnoreCase(content)) {
|
historyDao.addSearch(list1.get(i));
|
}
|
}
|
SharedPreferences sp = null;
|
if (page == 0) {
|
sp = mContext.getSharedPreferences("searchHistory", Context.MODE_PRIVATE);
|
} else if (page == 1) {
|
sp = mContext.getSharedPreferences("searchHistory_jd", Context.MODE_PRIVATE);
|
} else if (page == 2) {
|
sp = mContext.getSharedPreferences("searchHistory_pdd", Context.MODE_PRIVATE);
|
} else {
|
sp = mContext.getSharedPreferences("searchHistory", Context.MODE_PRIVATE);
|
}
|
|
int formNums = sp.getInt("searchNums", 0);//历史记录条数
|
SharedPreferences.Editor editor = sp.edit();
|
List<String> list = new ArrayList<>();
|
for (int i = 0; i < formNums; i++) {//取出 已经显示的历史搜索记录
|
list.add(sp.getString("searchItem_" + (formNums - 1 - i), ""));//mList.get(mList.size() - 1 - i)
|
}
|
if (list.contains(content)) {//已经包含了搜索结果
|
list.remove(content);
|
} else {//最大只要10条
|
if (formNums >= 10) {
|
list.remove(0);
|
}
|
}
|
list.add(content);//list存入 当前搜索的历史记录
|
//存入历史搜索记录
|
editor.putInt("searchNums", list.size());
|
for (int i = 0; i < list.size(); i++) {
|
editor.putString("searchItem_" + i, list.get(list.size() - 1 - i));
|
}
|
editor.apply();
|
}
|
|
/**
|
* 跳转 搜索结果页
|
*
|
* @param toString 搜索内容
|
* @param page 1淘宝 2京东 3 拼多多
|
*/
|
public void addSearchResultActivity(String toString, int page) {
|
Intent intent = new Intent(mContext, SearchResultActivity.class);
|
intent.putExtra("content", toString);
|
intent.putExtra("type", "normal");
|
intent.putExtra("page", page);
|
mContext.startActivity(intent);
|
}
|
}
|