package com.pan.simplepicture.fragment; import in.srain.cube.views.ptr.PtrDefaultHandler; import in.srain.cube.views.ptr.PtrFrameLayout; import in.srain.cube.views.ptr.PtrHandler; import in.srain.cube.views.ptr.header.StoreHouseHeader; import java.util.List; import java.util.TreeMap; import android.view.View; import android.widget.ListView; import com.nhaarman.listviewanimations.appearance.simple.RotateBottomAnimationAdapter; import com.pan.simplepicture.ConstantValue; import com.pan.simplepicture.R; import com.pan.simplepicture.activity.BaseActivity; import com.pan.simplepicture.adapter.BaseListAdapter; import com.pan.simplepicture.adapter.BaseListAdapter.OnLoadMoreListener; import com.pan.simplepicture.been.ShortVideo; import com.pan.simplepicture.holder.ResourcesHolder; import com.pan.simplepicture.http.protocol.HomeProtocol; import com.pan.simplepicture.utils.MD5Utils; import com.pan.simplepicture.widget.LoadingPage.LoadResult; public class AllFragment extends BaseFragment implements OnLoadMoreListener<ShortVideo> { private List<ShortVideo> list; private int page = 1; private TreeMap<String, String> map; public AllFragment(BaseActivity activity) { super(activity); } @Override protected LoadResult load() { map = new TreeMap<String, String>(); long time = System.currentTimeMillis() / 1000L; map.put("api_key", "android"); map.put("timestamp", String.valueOf(time)); map.put("page", String.valueOf(page)); String str = MD5Utils.getAccessToken(map); map.put("access_token", str); HomeProtocol protocol = new HomeProtocol(); list = protocol.loadInfo(mActivity, map, true); if (list == null) { return LoadResult.ERROR; } if (list.size() <= 0) { return LoadResult.EMPTY; } return LoadResult.SUCCEED; } @Override protected View createLoadedView() { View view = mActivity.inflate(R.layout.fragment_list); ListView list_categoty = (ListView) view .findViewById(R.id.list_categoty); PtrFrameLayout ptrFrameLayout = (PtrFrameLayout) view .findViewById(R.id.fragment_ptr_home_ptr_frame); initPtrFrameLayout(ptrFrameLayout); BaseListAdapter<ShortVideo> mAdapter = new BaseListAdapter<ShortVideo>( mActivity, list, ResourcesHolder.class); mAdapter.setOnLoadMoreListener(this); RotateBottomAnimationAdapter swingBottomInAnimationAdapter = new RotateBottomAnimationAdapter( mAdapter); swingBottomInAnimationAdapter.setAbsListView(list_categoty); assert swingBottomInAnimationAdapter.getViewAnimator() != null; swingBottomInAnimationAdapter.getViewAnimator().setInitialDelayMillis( ConstantValue.INITIAL_DELAY_MILLIS); list_categoty.setAdapter(swingBottomInAnimationAdapter); return view; } private void initPtrFrameLayout(final PtrFrameLayout ptrFrameLayout) { final StoreHouseHeader header = new StoreHouseHeader(mActivity); header.setPadding(0, mActivity.dip2px(15), 0, mActivity.dip2px(15)); header.initWithString(ConstantValue.PULL_STRING); ptrFrameLayout.setDurationToCloseHeader(2000); ptrFrameLayout.setHeaderView(header); ptrFrameLayout.addPtrUIHandler(header); ptrFrameLayout.setPtrHandler(new PtrHandler() { @Override public boolean checkCanDoRefresh(PtrFrameLayout frame, View content, View header) { return PtrDefaultHandler.checkContentCanBePulledDown( ptrFrameLayout, content, header); } @Override public void onRefreshBegin(PtrFrameLayout frame) { ptrFrameLayout.postDelayed(new Runnable() { @Override public void run() { ptrFrameLayout.refreshComplete(); } }, 1500); } }); } @Override public List<ShortVideo> OnLoadMore(int starIndex) { long time = System.currentTimeMillis() / 1000L; map.clear(); map.put("api_key", "android"); map.put("timestamp", String.valueOf(time)); map.put("page", String.valueOf(++page)); String str = MD5Utils.getAccessToken(map); map.put("access_token", str); HomeProtocol protocol = new HomeProtocol(); return protocol.loadInfo(mActivity, map, true); } }