From 8c18983280aeae8bba5fc37b6c0818caeaeddb2f Mon Sep 17 00:00:00 2001 From: Victor Date: Fri, 10 Jan 2014 16:56:39 +0200 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=20=D0=BF=D0=BE=D0=BB?= =?UTF-8?q?=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=81=D0=BF=D0=B8=D1=81?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=82=D0=B5=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/annimon/client/tasks/ForumLoader.java | 7 +++- src/com/annimon/client/utils/ApiUtils.java | 35 +++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/com/annimon/client/tasks/ForumLoader.java b/src/com/annimon/client/tasks/ForumLoader.java index 547b492..755e652 100644 --- a/src/com/annimon/client/tasks/ForumLoader.java +++ b/src/com/annimon/client/tasks/ForumLoader.java @@ -18,7 +18,7 @@ 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; + public static final int MODE_POSTS = -121; private final Context mContext; private final FinishLoadingListener mListener; @@ -41,6 +41,11 @@ public class ForumLoader extends AsyncTask> { return (List) ApiUtils.getLastPosts(); } + if (params[0] == MODE_TOPICS) { + int section = params[1]; + return (List) ApiUtils.getTopics(section); + } + if (params[0] == MODE_POSTS) { int topicId = params[1]; } diff --git a/src/com/annimon/client/utils/ApiUtils.java b/src/com/annimon/client/utils/ApiUtils.java index 4833fac..20630a4 100644 --- a/src/com/annimon/client/utils/ApiUtils.java +++ b/src/com/annimon/client/utils/ApiUtils.java @@ -22,6 +22,7 @@ import org.json.JSONObject; 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; @@ -71,6 +72,40 @@ public class ApiUtils { return posts; } + /** + * Get topics of selection section. + * @param section раздел форума + * @return arraylist of forum topic data + */ + public static List getTopics(int section) { + List nameValuePairs = new ArrayList(); + nameValuePairs.add(new BasicNameValuePair("key", getKey(ApiForum.CLASS))); + nameValuePairs.add(new BasicNameValuePair("act", ApiForum.ACT_GET_TOPICS)); + nameValuePairs.add(new BasicNameValuePair("section", String.valueOf(section))); + + List topics = new ArrayList(); + 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); + ForumTopic post = new ForumTopic(); + post.setId(jsonObject.getInt("topic_id")); + post.setTitle(jsonObject.getString("title")); + post.setCreationDate(jsonObject.getInt("time")); + topics.add(post); + } + } catch (IOException ex) { + ExceptionHandler.log("getLastPosts", ex); + } catch (JSONException ex) { + ExceptionHandler.log("getLastPosts", ex); + } + return topics; + } + /** * Get forum sections. * @return arraylist of forum sections from raw resource