package me.bell.downapp.activity;

import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.alibaba.fastjson.JSONObject;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;

import java.net.URLEncoder;
import java.util.ArrayList;

import me.bell.downapp.R;
import me.bell.downapp.adapter.AppAdapter;
import me.bell.downapp.bean.SearchBean;
import me.bell.downapp.bean.YYBData;
import me.bell.downapp.presenter.HttpPresenter;
import me.bell.downapp.presenter.IHttpView;

public class SearchActivity extends AppCompatActivity implements View.OnClickListener, IHttpView {
    private Context mContext;
    private LinearLayout _backImg;
    private TextView _titleText;
    private PullToRefreshListView _mListView;

    //传值
    private String keyword = "";
    //分页参数
    private String page = "";

    private HttpPresenter presenter = new HttpPresenter(this);

    private ArrayList<YYBData> mList = new ArrayList<>();
    private AppAdapter adapter;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list);
        mContext = SearchActivity.this;

        keyword = getIntent().getStringExtra("keyword");

        initUI();

        presenter.getAppList(getNewUrl());

    }

    private void initUI() {
        _backImg = findViewById(R.id.back_image);
        _backImg.setOnClickListener(this);
        _titleText = findViewById(R.id.top_title_text);
        _titleText.setText("结果");

        _mListView = findViewById(R.id.app_list_view);
        _mListView.setMode(PullToRefreshBase.Mode.BOTH);
        _mListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
                mList.clear();
                page = "";
                presenter.getAppList(getNewUrl());
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
                presenter.getAppList(getNewUrl());
            }
        });
        adapter = new AppAdapter(SearchActivity.this, mList);
        _mListView.setAdapter(adapter);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.back_image:
                finish();
                break;
        }
    }

    /**
     * 获取处理后的地址
     *
     * @return
     */
    private String getNewUrl() {
        try {
            return "http://android.myapp.com/myapp/searchAjax.htm?pns="+page+"&sid=&kw=" + URLEncoder.encode(keyword, "utf-8");
        } catch (Exception e) {
            e.printStackTrace();
            return "";
        }
    }

    @Override
    public void onHttpResult(String action, String httpResult) {
        Log.i("list", httpResult);
        mHandler.sendEmptyMessage(0);
        if ("error".equals(httpResult)) {
            mHandler.sendEmptyMessage(-1);
        } else {
            SearchBean bean = JSONObject.parseObject(httpResult, SearchBean.class);
            if (!bean.isSuccess()) {
                mHandler.sendEmptyMessage(-1);
            } else {
                page = bean.getObj().getPageNumberStack();
                Log.e("hhh", "page: " + page);
                mList.addAll(bean.getObj().getAppDetails());
                mHandler.sendEmptyMessage(1);
            }
        }
    }


    MHandler mHandler = new MHandler();

    class MHandler extends Handler {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what) {
                case -1:
                    Toast.makeText(mContext, "查询结束", Toast.LENGTH_LONG).show();
                    break;

                case 0:
                    _mListView.onRefreshComplete();
                    break;

                case 1:
                    adapter.notifyDataSetChanged();
                    break;
            }

        }
    }

}
