From 42503d407a5ec4efdb61a4d009f1bd46ffc8a965 Mon Sep 17 00:00:00 2001 From: Jesse Morgan Date: Sat, 22 Feb 2014 18:15:15 -0800 Subject: Adding support to post new messages. Other Changes: * JsonEncodedProvider no longer implements Provider. * Only the first answer is shown. Others slide down. * Switch going deeper and the feed. --- src/com/p4square/grow/frontend/FeedData.java | 31 ++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) (limited to 'src/com/p4square/grow/frontend/FeedData.java') 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> mThreadProvider; - private final Provider> mMessageProvider; + // TODO: Elegantly merge the List and individual providers. + private final JsonRequestProvider> mThreadsProvider; + private final JsonRequestProvider mThreadProvider; + + private final JsonRequestProvider> mMessagesProvider; + private final JsonRequestProvider 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>(clientDispatcher, threadType); + mThreadsProvider = new JsonRequestProvider>(clientDispatcher, threadType); + mThreadProvider = new JsonRequestProvider(clientDispatcher, MessageThread.class); JavaType messageType = factory.constructCollectionType(List.class, Message.class); - mMessageProvider = new JsonRequestProvider>(clientDispatcher, messageType); + mMessagesProvider = new JsonRequestProvider>(clientDispatcher, messageType); + mMessageProvider = new JsonRequestProvider(clientDispatcher, Message.class); } public List getThreads(final String topic) throws IOException { - return mThreadProvider.get(makeUrl(topic)); + return mThreadsProvider.get(makeUrl(topic)); } public List 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) { -- cgit v1.2.3