package example.xfsp.miappstore.fragment.impl;

import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

import com.lidroid.xutils.bitmap.PauseOnScrollListener;

import java.util.List;

import example.xfsp.miappstore.adapter.TopListAdapter;
import example.xfsp.miappstore.bean.ListAppEntity;
import example.xfsp.miappstore.bean.TopList;
import example.xfsp.miappstore.fragment.base.BaseViewPagerFragment;
import example.xfsp.miappstore.protocal.impl.TopProtocal;
import example.xfsp.miappstore.utils.UiUtils;
import example.xfsp.miappstore.view.BaseListView;
import example.xfsp.miappstore.view.LoadPage;

/**
 * Created by Administrator on 2015/9/19.
 */
public class TopFragment extends BaseViewPagerFragment {
    private TopProtocal topProtocal;
    private TopList load;
    private List<ListAppEntity> listApp;
    private BaseListView listView;
    private TopListAdapter listAdapter;
    private boolean hasMore;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }


    @Override
    public void onResume() {
        if (listAdapter != null) {
            listAdapter.startObserver();
            listAdapter.notifyDataSetChanged();
        }
        super.onResume();
    }

    /**
     * 不可见时,需要关闭监听
     */

    @Override
    public void onPause() {
        if (listAdapter != null) {
            listAdapter.stopObserver();
            listAdapter.notifyDataSetChanged();
        }
        super.onPause();
    }

    /**
     * 可见时,需要启动监听,以便随时根据下载状态刷新页面
     */


    @Override
    protected View createSuccessView() {
        listView = new BaseListView(getContext()) {
            @Override
            public void refresh() {
                show();
            }
        };
        //第二个参数,满速滑动,第三个快速滑动,false加载,true不加载
        listView.setOnScrollListener(new PauseOnScrollListener(bitmapUtils, false, true));
        listApp = load.getListApp();
        listAdapter = new TopListAdapter(listApp, listView, getContext()) {
            @Override
            public String getHostUrls() {
                return load.getHost();
            }
        };
        listAdapter.startObserver();
        listView.setAdapter(listAdapter);
        listView.setSwipeRefreshLayout(swipeRefreshLayout);
        return listView;
    }

    @Override
    public LoadPage.LoadResult loadData() {
        topProtocal = new TopProtocal();
        load = topProtocal.load(0);
        hasMore = load.getHasMore();
        if (swipeRefreshLayout != null && swipeRefreshLayout.isRefreshing()) {
            swipeRefreshLayout.setRefreshing(false);
            UiUtils.runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    Toast.makeText(getContext(), "刷新完毕", Toast.LENGTH_SHORT).show();
                }
            });
        }
        return checkData(load);
    }
}