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.ForumPost;
|
||||||
import com.annimon.client.entities.ForumSection;
|
import com.annimon.client.entities.ForumSection;
|
||||||
import com.annimon.client.entities.ForumTopic;
|
import com.annimon.client.entities.ForumTopic;
|
||||||
import com.annimon.client.tasks.ForumPostLoader;
|
import com.annimon.client.tasks.ForumLoader;
|
||||||
|
|
||||||
public class ForumFragment extends ListFragment {
|
public class ForumFragment extends ListFragment {
|
||||||
|
|
||||||
@ -19,11 +19,11 @@ public class ForumFragment extends ListFragment {
|
|||||||
public void onActivityCreated(Bundle savedInstanceState) {
|
public void onActivityCreated(Bundle savedInstanceState) {
|
||||||
super.onActivityCreated(savedInstanceState);
|
super.onActivityCreated(savedInstanceState);
|
||||||
|
|
||||||
new ForumPostLoader<ForumSection>(getActivity(), sectionListener).execute();
|
new ForumLoader<ForumSection>(getActivity(), sectionListener).execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
private final ForumPostLoader.FinishLoadingListener<ForumSection> sectionListener
|
private final ForumLoader.FinishLoadingListener<ForumSection> sectionListener
|
||||||
= new ForumPostLoader.FinishLoadingListener<ForumSection>() {
|
= new ForumLoader.FinishLoadingListener<ForumSection>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLoadingFinished(List<ForumSection> items) {
|
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) {
|
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||||
// Ãðóçèì ñïèñîê ïîñòîâ âûáðàííîé òåìû
|
// Ãðóçèì ñïèñîê ïîñòîâ âûáðàííîé òåìû
|
||||||
ForumSection section = adapter.getItem(position);
|
ForumSection section = adapter.getItem(position);
|
||||||
new ForumPostLoader<ForumTopic>(getActivity(), topicListener).execute(
|
new ForumLoader<ForumTopic>(getActivity(), topicListener).execute(
|
||||||
ForumPostLoader.MODE_TOPICS, section.getId());
|
ForumLoader.MODE_TOPICS, section.getId());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private final ForumPostLoader.FinishLoadingListener<ForumTopic> topicListener
|
private final ForumLoader.FinishLoadingListener<ForumTopic> topicListener
|
||||||
= new ForumPostLoader.FinishLoadingListener<ForumTopic>() {
|
= new ForumLoader.FinishLoadingListener<ForumTopic>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLoadingFinished(List<ForumTopic> items) {
|
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) {
|
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||||
// Ãðóçèì ñïèñîê ïîñòîâ âûáðàííîé òåìû
|
// Ãðóçèì ñïèñîê ïîñòîâ âûáðàííîé òåìû
|
||||||
ForumTopic topic = adapter.getItem(position);
|
ForumTopic topic = adapter.getItem(position);
|
||||||
new ForumPostLoader<ForumPost>(getActivity(), postListener).execute(
|
new ForumLoader<ForumPost>(getActivity(), postListener).execute(
|
||||||
ForumPostLoader.MODE_POSTS, topic.getId());
|
ForumLoader.MODE_POSTS, topic.getId());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private final ForumPostLoader.FinishLoadingListener<ForumPost> postListener
|
private final ForumLoader.FinishLoadingListener<ForumPost> postListener
|
||||||
= new ForumPostLoader.FinishLoadingListener<ForumPost>() {
|
= new ForumLoader.FinishLoadingListener<ForumPost>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLoadingFinished(List<ForumPost> items) {
|
public void onLoadingFinished(List<ForumPost> items) {
|
||||||
|
@ -8,29 +8,41 @@ import android.os.AsyncTask;
|
|||||||
import android.widget.ProgressBar;
|
import android.widget.ProgressBar;
|
||||||
|
|
||||||
import com.annimon.client.R;
|
import com.annimon.client.R;
|
||||||
import com.annimon.client.entities.ForumPost;
|
|
||||||
import com.annimon.client.utils.ApiUtils;
|
import com.annimon.client.utils.ApiUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author aNNiMON
|
* @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 LAST_POSTS = -110;
|
||||||
|
public static final int MODE_TOPICS = -120;
|
||||||
|
public static final int MODE_POSTS = -120;
|
||||||
|
|
||||||
private final Context mContext;
|
private final Context mContext;
|
||||||
private final FinishLoadingListener mListener;
|
private final FinishLoadingListener<T> mListener;
|
||||||
private AlertDialog mDialog;
|
private AlertDialog mDialog;
|
||||||
|
|
||||||
public ForumPostLoader(Context context, FinishLoadingListener listener) {
|
public ForumLoader(Context context, FinishLoadingListener<T> listener) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mListener = listener;
|
mListener = listener;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected List<ForumPost> doInBackground(Integer... params) {
|
protected List<T> doInBackground(Integer... params) {
|
||||||
if (params[0] == LAST_POSTS) return ApiUtils.getLastPosts();
|
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;
|
return null;
|
||||||
}
|
}
|
||||||
@ -50,13 +62,13 @@ public class ForumPostLoader extends AsyncTask<Integer, Void, List<ForumPost>> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPostExecute(List<ForumPost> items) {
|
protected void onPostExecute(List<T> items) {
|
||||||
super.onPostExecute(items);
|
super.onPostExecute(items);
|
||||||
mListener.onLoadingFinished(items);
|
mListener.onLoadingFinished(items);
|
||||||
mDialog.dismiss();
|
mDialog.dismiss();
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface FinishLoadingListener {
|
public interface FinishLoadingListener<T> {
|
||||||
void onLoadingFinished(List<ForumPost> items);
|
void onLoadingFinished(List<T> items);
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user