Добавлен метод получения списка сообщений выбранной темы

This commit is contained in:
Victor 2014-01-10 17:24:10 +02:00
parent 78914c2f17
commit 0b5f25a2dd
2 changed files with 44 additions and 9 deletions

View File

@ -48,6 +48,7 @@ public class ForumLoader<T> extends AsyncTask<Integer, Void, List<T>> {
if (params[0] == MODE_POSTS) {
int topicId = params[1];
return (List<T>) ApiUtils.getForumPosts(topicId);
}
return null;

View File

@ -6,7 +6,6 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
@ -18,19 +17,17 @@ import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.content.Context;
import android.text.TextUtils;
import android.util.Base64;
import com.annimon.client.R;
import com.annimon.client.entities.ForumPost;
import com.annimon.client.entities.ForumSection;
import com.annimon.client.entities.ForumTopic;
import com.annimon.client.tasks.ForumLoader;
import android.content.Context;
import android.text.TextUtils;
import android.util.Base64;
/**
* Common utilities for working with server.
* Ôóíêöèè äëÿ ðàáîòû ñ API ñàéòà.
* @author aNNiMON
*/
public class ApiUtils {
@ -99,9 +96,45 @@ public class ApiUtils {
topics.add(post);
}
} catch (IOException ex) {
ExceptionHandler.log("getLastPosts", ex);
ExceptionHandler.log("getTopics", ex);
} catch (JSONException ex) {
ExceptionHandler.log("getLastPosts", ex);
ExceptionHandler.log("getTopics", ex);
}
return topics;
}
/**
* Ïîëó÷åíèå ïîñòîâ âûáðàííîé òåìû.
* @param topic id òåìû íà ôîðóìå
* @return arraylist
*/
public static List<ForumPost> getForumPosts(int topic) {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("key", getKey(ApiForum.CLASS)));
nameValuePairs.add(new BasicNameValuePair("act", ApiForum.ACT_GET_POSTS));
nameValuePairs.add(new BasicNameValuePair("topic", String.valueOf(topic)));
List<ForumPost> topics = new ArrayList<ForumPost>();
try {
HttpResponse response = sendPost(ApiForum.PATH, nameValuePairs);
String text = EntityUtils.toString(response.getEntity());
if (TextUtils.isEmpty(text)) return topics;
JSONArray jsonArray = new JSONArray(text);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
ForumPost post = new ForumPost();
post.setTopicId(topic);
post.setTopicTitle("");
post.setDate(jsonObject.getInt("time"));
post.setAuthor(jsonObject.getString("user"));
post.setMessage(jsonObject.getString("text"));
topics.add(post);
}
} catch (IOException ex) {
ExceptionHandler.log("getForumPosts", ex);
} catch (JSONException ex) {
ExceptionHandler.log("getForumPosts", ex);
}
return topics;
}
@ -172,6 +205,7 @@ public class ApiUtils {
private static final String CLASS = "forum";
private static final String PATH = API_PATH + CLASS + PHP;
private static final String ACT_GET_TOPICS = "get_topics";
private static final String ACT_GET_POSTS = "get_posts";
private static final String ACT_LAST_POSTS = "last_posts";
}