admin
2021-07-06 abce02c7a61820f5d580f87364d542e817be429c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
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);
    }
}