From b96e16f9abe8749235f1e96da25718932305a90b Mon Sep 17 00:00:00 2001 From: Ricky Barrette Date: Sun, 7 Oct 2012 09:00:48 -0400 Subject: [PATCH] Started working on updating the UI after a database sync Signed-off-by: Ricky Barrette --- OSJ Forum/AndroidManifest.xml | 2 +- .../osj/forum/ForumListActivity.java | 10 --- .../osj/forum/ForumListFragment.java | 74 ++++++++++++++----- .../osj/forum/content/ForumContent.java | 5 +- .../osj/forum/database/DatabaseListener.java | 2 + .../osj/forum/database/ForumDatabase.java | 21 +++++- 6 files changed, 81 insertions(+), 33 deletions(-) diff --git a/OSJ Forum/AndroidManifest.xml b/OSJ Forum/AndroidManifest.xml index 10eaf36..c04093c 100644 --- a/OSJ Forum/AndroidManifest.xml +++ b/OSJ Forum/AndroidManifest.xml @@ -1,5 +1,5 @@ list = db.getForums(); int index = 0; diff --git a/OSJ Forum/src/org/RickBarrette/osj/forum/database/DatabaseListener.java b/OSJ Forum/src/org/RickBarrette/osj/forum/database/DatabaseListener.java index 6a85622..0c7b69b 100644 --- a/OSJ Forum/src/org/RickBarrette/osj/forum/database/DatabaseListener.java +++ b/OSJ Forum/src/org/RickBarrette/osj/forum/database/DatabaseListener.java @@ -36,5 +36,7 @@ public interface DatabaseListener { public void onDeletionComplete(); public void onRestoreComplete(); + + public void onSyncComplete(); } \ No newline at end of file diff --git a/OSJ Forum/src/org/RickBarrette/osj/forum/database/ForumDatabase.java b/OSJ Forum/src/org/RickBarrette/osj/forum/database/ForumDatabase.java index bff2f6c..8d2dba2 100644 --- a/OSJ Forum/src/org/RickBarrette/osj/forum/database/ForumDatabase.java +++ b/OSJ Forum/src/org/RickBarrette/osj/forum/database/ForumDatabase.java @@ -539,6 +539,8 @@ public class ForumDatabase { } } + if(mListener != null) + mListener.onSyncComplete(); } /** @@ -549,6 +551,19 @@ public class ForumDatabase { * @author ricky barrette */ public void saveThreads(final XMLRPCClient client, final Object forumId, final Object topicId) { + saveThreads(client, forumId, topicId, false); + } + + /** + * Downloads and save threads into the database + * + * @param client + * @param forumId + * @param topicId + * @param isRecursive + * @author ricky barrette + */ + private void saveThreads(final XMLRPCClient client, final Object forumId, final Object topicId, final boolean isRecursive) { Object[] result = null; try { result = (Object[]) ((HashMap) client.call("get_thread", topicId, 0, 0)).get("posts"); @@ -562,6 +577,8 @@ public class ForumDatabase { upsertThreadTable((String) forumId, (String) topicId, (String) contentHash.get("post_id"), (Date) contentHash.get("post_time"), convertHashMapToContentValues(contentHash)); } + if(!isRecursive && mListener != null) + mListener.onSyncComplete(); } /** @@ -585,9 +602,11 @@ public class ForumDatabase { final HashMap contentHash = (HashMap) element; upsertTopicTable((String) forumId, (String) contentHash.get("topic_id"), (Date) contentHash.get("last_reply_time"), convertHashMapToContentValues(contentHash)); if (isRecursive) - saveThreads(client, forumId, contentHash.get("topic_id")); + saveThreads(client, forumId, contentHash.get("topic_id"), isRecursive); } + if(!isRecursive && mListener != null) + mListener.onSyncComplete(); } /**