/** * */ package com.gmail.charleszq.picorner.ui.flickr; import java.util.Collection; import android.content.Context; import android.view.View; import android.widget.ListView; import android.widget.Toast; import com.gmail.charleszq.picorner.R; import com.gmail.charleszq.picorner.task.IGeneralTaskDoneListener; import com.gmail.charleszq.picorner.task.flickr.FetchMyGroupsTask; import com.gmail.charleszq.picorner.ui.command.ICommand; import com.gmail.charleszq.picorner.ui.helper.AbstractHiddenListView; import com.gmail.charleszq.picorner.ui.helper.IHiddenView; import com.gmail.charleszq.picorner.ui.helper.PhotoCollectionItemAdapter; import com.googlecode.flickrjandroid.groups.Group; import com.handmark.pulltorefresh.library.PullToRefreshBase; import com.handmark.pulltorefresh.library.PullToRefreshBase.Mode; import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener2; /** * @author charles(charleszq@gmail.com) * */ public class MyPhotoGroupsHiddenView extends AbstractHiddenListView { private FetchMyGroupsTask mTask; private int mCurrentPage = 1; private int mActivePage = 1; private IGeneralTaskDoneListener<Collection<Group>> mTaskListener = new IGeneralTaskDoneListener<Collection<Group>>() { @Override public void onTaskDone(Collection<Group> result) { mPullToRefreshListView.onRefreshComplete(); if (result != null && !result.isEmpty()) { mCurrentPage = mActivePage; mAdapter.populateData(result); mSpace.setVisibility(View.GONE); } else { if (mActivePage == 1) { Context ctx = (Context) mCommand.getAdapter(Context.class); Toast.makeText(ctx, ctx.getString(R.string.msg_no_photo_groups), Toast.LENGTH_SHORT).show(); onAction(IHiddenView.ACTION_CANCEL); } } } }; /* * (non-Javadoc) * * @see * com.gmail.charleszq.picorner.ui.helper.AbstractHiddenListView#getData * (android.content.Context) */ @Override protected void getData(final Context ctx) { runTask(ctx,mCurrentPage); } private void runTask(Context c, int page) { mTask = new FetchMyGroupsTask(c); mTask.addTaskDoneListener(mTaskListener); mTask.execute(page); } @Override protected void initializeListViewAdapter(final Context ctx, ICommand<?> command) { mAdapter = new PhotoCollectionItemAdapter(ctx, command); mLoadingMessage = ctx.getString(R.string.msg_loading_my_groups); mPullToRefreshListView.setMode(Mode.BOTH); mPullToRefreshListView .setOnRefreshListener(new OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh( PullToRefreshBase<ListView> refreshView) { if (mCurrentPage > 1) { mActivePage = mCurrentPage - 1; runTask(ctx, mActivePage); } else mPullToRefreshListView.onRefreshComplete(); } @Override public void onPullUpToRefresh( PullToRefreshBase<ListView> refreshView) { mActivePage = mCurrentPage + 1; runTask(ctx, mActivePage); } }); } /* * (non-Javadoc) * * @see * com.gmail.charleszq.picorner.ui.helper.AbstractHiddenListView#onCancel() */ @Override protected void onCancel() { if (mTask != null) mTask.cancel(true); } }