summaryrefslogtreecommitdiff
path: root/src/com/p4square/grow/frontend/FeedData.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/p4square/grow/frontend/FeedData.java')
-rw-r--r--src/com/p4square/grow/frontend/FeedData.java31
1 files changed, 25 insertions, 6 deletions
diff --git a/src/com/p4square/grow/frontend/FeedData.java b/src/com/p4square/grow/frontend/FeedData.java
index acff8d9..eddc6a4 100644
--- a/src/com/p4square/grow/frontend/FeedData.java
+++ b/src/com/p4square/grow/frontend/FeedData.java
@@ -28,8 +28,12 @@ public class FeedData {
private final Config mConfig;
private final String mBackendURI;
- private final Provider<String, List<MessageThread>> mThreadProvider;
- private final Provider<String, List<Message>> mMessageProvider;
+ // TODO: Elegantly merge the List and individual providers.
+ private final JsonRequestProvider<List<MessageThread>> mThreadsProvider;
+ private final JsonRequestProvider<MessageThread> mThreadProvider;
+
+ private final JsonRequestProvider<List<Message>> mMessagesProvider;
+ private final JsonRequestProvider<Message> mMessageProvider;
public FeedData(final Context context, final Config config) {
mConfig = config;
@@ -40,18 +44,33 @@ public class FeedData {
TypeFactory factory = JsonEncodedProvider.MAPPER.getTypeFactory();
JavaType threadType = factory.constructCollectionType(List.class, MessageThread.class);
- mThreadProvider = new JsonRequestProvider<List<MessageThread>>(clientDispatcher, threadType);
+ mThreadsProvider = new JsonRequestProvider<List<MessageThread>>(clientDispatcher, threadType);
+ mThreadProvider = new JsonRequestProvider<MessageThread>(clientDispatcher, MessageThread.class);
JavaType messageType = factory.constructCollectionType(List.class, Message.class);
- mMessageProvider = new JsonRequestProvider<List<Message>>(clientDispatcher, messageType);
+ mMessagesProvider = new JsonRequestProvider<List<Message>>(clientDispatcher, messageType);
+ mMessageProvider = new JsonRequestProvider<Message>(clientDispatcher, Message.class);
}
public List<MessageThread> getThreads(final String topic) throws IOException {
- return mThreadProvider.get(makeUrl(topic));
+ return mThreadsProvider.get(makeUrl(topic));
}
public List<Message> getMessages(final String topic, final String threadId) throws IOException {
- return mMessageProvider.get(makeUrl(topic, threadId));
+ return mMessagesProvider.get(makeUrl(topic, threadId));
+ }
+
+ public void createThread(final String topic, final Message message) throws IOException {
+ MessageThread thread = new MessageThread();
+ thread.setMessage(message);
+
+ mThreadProvider.post(makeUrl(topic), thread);
+ }
+
+ public void createResponse(final String topic, final String thread, final Message message)
+ throws IOException {
+
+ mMessageProvider.post(makeUrl(topic, thread), message);
}
private String makeUrl(String... parts) {