diff --git a/src/com/annimon/client/fragments/ForumFragment.java b/src/com/annimon/client/fragments/ForumFragment.java index 8efd974..2c1f466 100644 --- a/src/com/annimon/client/fragments/ForumFragment.java +++ b/src/com/annimon/client/fragments/ForumFragment.java @@ -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(getActivity(), sectionListener).execute(); + new ForumLoader(getActivity(), sectionListener).execute(); } - private final ForumPostLoader.FinishLoadingListener sectionListener - = new ForumPostLoader.FinishLoadingListener() { + private final ForumLoader.FinishLoadingListener sectionListener + = new ForumLoader.FinishLoadingListener() { @Override public void onLoadingFinished(List 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(getActivity(), topicListener).execute( - ForumPostLoader.MODE_TOPICS, section.getId()); + new ForumLoader(getActivity(), topicListener).execute( + ForumLoader.MODE_TOPICS, section.getId()); } }); } }; - private final ForumPostLoader.FinishLoadingListener topicListener - = new ForumPostLoader.FinishLoadingListener() { + private final ForumLoader.FinishLoadingListener topicListener + = new ForumLoader.FinishLoadingListener() { @Override public void onLoadingFinished(List 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(getActivity(), postListener).execute( - ForumPostLoader.MODE_POSTS, topic.getId()); + new ForumLoader(getActivity(), postListener).execute( + ForumLoader.MODE_POSTS, topic.getId()); } }); } }; - private final ForumPostLoader.FinishLoadingListener postListener - = new ForumPostLoader.FinishLoadingListener() { + private final ForumLoader.FinishLoadingListener postListener + = new ForumLoader.FinishLoadingListener() { @Override public void onLoadingFinished(List items) { diff --git a/src/com/annimon/client/tasks/ForumPostLoader.java b/src/com/annimon/client/tasks/ForumLoader.java similarity index 57% rename from src/com/annimon/client/tasks/ForumPostLoader.java rename to src/com/annimon/client/tasks/ForumLoader.java index cde7363..d971eac 100644 --- a/src/com/annimon/client/tasks/ForumPostLoader.java +++ b/src/com/annimon/client/tasks/ForumLoader.java @@ -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> { +public class ForumLoader extends AsyncTask> { 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 mListener; private AlertDialog mDialog; - public ForumPostLoader(Context context, FinishLoadingListener listener) { + public ForumLoader(Context context, FinishLoadingListener listener) { mContext = context; mListener = listener; } @Override - protected List doInBackground(Integer... params) { - if (params[0] == LAST_POSTS) return ApiUtils.getLastPosts(); + protected List doInBackground(Integer... params) { + if (params.length == 0) { + // Грузим список разделов + return (List) ApiUtils.getForumSections(mContext); + } + + if (params[0] == MODE_POSTS) { + int topicId = params[1]; + if (topicId == LAST_POSTS) { + // Список непрочитанного + return (List) ApiUtils.getLastPosts(); + } + } return null; } @@ -50,13 +62,13 @@ public class ForumPostLoader extends AsyncTask> { } @Override - protected void onPostExecute(List items) { + protected void onPostExecute(List items) { super.onPostExecute(items); mListener.onLoadingFinished(items); mDialog.dismiss(); } - public interface FinishLoadingListener { - void onLoadingFinished(List items); + public interface FinishLoadingListener { + void onLoadingFinished(List items); } }