ForumPostLoader теперь охватывает работу со всем форумом
This commit is contained in:
parent
023dc90874
commit
0c2915df6e
@ -11,7 +11,7 @@ import com.annimon.client.adapters.ForumPostAdapter;
|
||||
import com.annimon.client.entities.ForumPost;
|
||||
import com.annimon.client.entities.ForumSection;
|
||||
import com.annimon.client.entities.ForumTopic;
|
||||
import com.annimon.client.tasks.ForumPostLoader;
|
||||
import com.annimon.client.tasks.ForumLoader;
|
||||
|
||||
public class ForumFragment extends ListFragment {
|
||||
|
||||
@ -19,11 +19,11 @@ public class ForumFragment extends ListFragment {
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
|
||||
new ForumPostLoader<ForumSection>(getActivity(), sectionListener).execute();
|
||||
new ForumLoader<ForumSection>(getActivity(), sectionListener).execute();
|
||||
}
|
||||
|
||||
private final ForumPostLoader.FinishLoadingListener<ForumSection> sectionListener
|
||||
= new ForumPostLoader.FinishLoadingListener<ForumSection>() {
|
||||
private final ForumLoader.FinishLoadingListener<ForumSection> sectionListener
|
||||
= new ForumLoader.FinishLoadingListener<ForumSection>() {
|
||||
|
||||
@Override
|
||||
public void onLoadingFinished(List<ForumSection> items) {
|
||||
@ -36,15 +36,15 @@ public class ForumFragment extends ListFragment {
|
||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
// Ãðóçèì ñïèñîê ïîñòîâ âûáðàííîé òåìû
|
||||
ForumSection section = adapter.getItem(position);
|
||||
new ForumPostLoader<ForumTopic>(getActivity(), topicListener).execute(
|
||||
ForumPostLoader.MODE_TOPICS, section.getId());
|
||||
new ForumLoader<ForumTopic>(getActivity(), topicListener).execute(
|
||||
ForumLoader.MODE_TOPICS, section.getId());
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
private final ForumPostLoader.FinishLoadingListener<ForumTopic> topicListener
|
||||
= new ForumPostLoader.FinishLoadingListener<ForumTopic>() {
|
||||
private final ForumLoader.FinishLoadingListener<ForumTopic> topicListener
|
||||
= new ForumLoader.FinishLoadingListener<ForumTopic>() {
|
||||
|
||||
@Override
|
||||
public void onLoadingFinished(List<ForumTopic> items) {
|
||||
@ -57,15 +57,15 @@ public class ForumFragment extends ListFragment {
|
||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
// Ãðóçèì ñïèñîê ïîñòîâ âûáðàííîé òåìû
|
||||
ForumTopic topic = adapter.getItem(position);
|
||||
new ForumPostLoader<ForumPost>(getActivity(), postListener).execute(
|
||||
ForumPostLoader.MODE_POSTS, topic.getId());
|
||||
new ForumLoader<ForumPost>(getActivity(), postListener).execute(
|
||||
ForumLoader.MODE_POSTS, topic.getId());
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
private final ForumPostLoader.FinishLoadingListener<ForumPost> postListener
|
||||
= new ForumPostLoader.FinishLoadingListener<ForumPost>() {
|
||||
private final ForumLoader.FinishLoadingListener<ForumPost> postListener
|
||||
= new ForumLoader.FinishLoadingListener<ForumPost>() {
|
||||
|
||||
@Override
|
||||
public void onLoadingFinished(List<ForumPost> items) {
|
||||
|
@ -8,29 +8,41 @@ import android.os.AsyncTask;
|
||||
import android.widget.ProgressBar;
|
||||
|
||||
import com.annimon.client.R;
|
||||
import com.annimon.client.entities.ForumPost;
|
||||
import com.annimon.client.utils.ApiUtils;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author aNNiMON
|
||||
*/
|
||||
public class ForumPostLoader extends AsyncTask<Integer, Void, List<ForumPost>> {
|
||||
public class ForumLoader<T> extends AsyncTask<Integer, Void, List<T>> {
|
||||
|
||||
public static final int LAST_POSTS = -110;
|
||||
public static final int MODE_TOPICS = -120;
|
||||
public static final int MODE_POSTS = -120;
|
||||
|
||||
private final Context mContext;
|
||||
private final FinishLoadingListener mListener;
|
||||
private final FinishLoadingListener<T> mListener;
|
||||
private AlertDialog mDialog;
|
||||
|
||||
public ForumPostLoader(Context context, FinishLoadingListener listener) {
|
||||
public ForumLoader(Context context, FinishLoadingListener<T> listener) {
|
||||
mContext = context;
|
||||
mListener = listener;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<ForumPost> doInBackground(Integer... params) {
|
||||
if (params[0] == LAST_POSTS) return ApiUtils.getLastPosts();
|
||||
protected List<T> doInBackground(Integer... params) {
|
||||
if (params.length == 0) {
|
||||
// Ãðóçèì ñïèñîê ðàçäåëîâ
|
||||
return (List<T>) ApiUtils.getForumSections(mContext);
|
||||
}
|
||||
|
||||
if (params[0] == MODE_POSTS) {
|
||||
int topicId = params[1];
|
||||
if (topicId == LAST_POSTS) {
|
||||
// Ñïèñîê íåïðî÷èòàííîãî
|
||||
return (List<T>) ApiUtils.getLastPosts();
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
@ -50,13 +62,13 @@ public class ForumPostLoader extends AsyncTask<Integer, Void, List<ForumPost>> {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(List<ForumPost> items) {
|
||||
protected void onPostExecute(List<T> items) {
|
||||
super.onPostExecute(items);
|
||||
mListener.onLoadingFinished(items);
|
||||
mDialog.dismiss();
|
||||
}
|
||||
|
||||
public interface FinishLoadingListener {
|
||||
void onLoadingFinished(List<ForumPost> items);
|
||||
public interface FinishLoadingListener<T> {
|
||||
void onLoadingFinished(List<T> items);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user