diff options
3 files changed, 25 insertions, 33 deletions
diff --git a/WordPress/src/main/java/org/wordpress/android/datasets/PeopleTable.java b/WordPress/src/main/java/org/wordpress/android/datasets/PeopleTable.java index 542848c94..9a99b0d15 100644 --- a/WordPress/src/main/java/org/wordpress/android/datasets/PeopleTable.java +++ b/WordPress/src/main/java/org/wordpress/android/datasets/PeopleTable.java @@ -128,50 +128,44 @@ public class PeopleTable { public static void deleteUsersForLocalBlogId(int localTableBlogId) { String[] args = new String[]{Integer.toString(localTableBlogId), Integer.toString(0)}; - getWritableDb().delete(PEOPLE_TABLE, "local_blog_id=? AND is_follower=?", args); + getWritableDb().delete(PEOPLE_TABLE, "local_blog_id=?1 AND is_follower=?2 AND is_email_follower=?2", args); } public static void deleteFollowersForLocalBlogId(int localTableBlogId) { - String[] args = new String[]{Integer.toString(localTableBlogId), Integer.toString(1)}; - getWritableDb().delete(PEOPLE_TABLE, "local_blog_id=? AND is_follower=?", args); + String[] args = new String[]{Integer.toString(localTableBlogId), Integer.toString(1), Integer.toString(0)}; + getWritableDb().delete(PEOPLE_TABLE, "local_blog_id=? AND is_follower=? AND is_email_follower=?", args); } public static void deleteEmailFollowersForLocalBlogId(int localTableBlogId) { - String[] args = new String[]{Integer.toString(localTableBlogId), Integer.toString(1)}; - getWritableDb().delete(PEOPLE_TABLE, "local_blog_id=? AND is_email_follower=?", args); + String[] args = new String[]{Integer.toString(localTableBlogId), Integer.toString(0), Integer.toString(1)}; + getWritableDb().delete(PEOPLE_TABLE, "local_blog_id=? AND is_follower=? AND is_email_follower=?", args); } - public static void deleteUsersForLocalBlogIdExceptForFirstPage(int localTableBlogId) { - PeopleTable.deletePeopleForLocalBlogIdExceptForFirstPage(localTableBlogId, false); - } - - public static void deleteFollowersForLocalBlogIdExceptForFirstPage(int localTableBlogId) { - PeopleTable.deletePeopleForLocalBlogIdExceptForFirstPage(localTableBlogId, false); - } - - private static void deletePeopleForLocalBlogIdExceptForFirstPage(int localTableBlogId, boolean isFollower) { - int size = getPeopleCountForLocalBlogId(localTableBlogId, isFollower); - int fetchLimit = PeopleUtils.FETCH_USERS_LIMIT; + public static void deletePeopleForLocalBlogIdExceptForFirstPage(int localTableBlogId) { + int size = getPeopleCountForLocalBlogId(localTableBlogId); + int fetchLimit = PeopleUtils.FETCH_LIMIT; if (size > fetchLimit) { int deleteCount = size - fetchLimit; String[] args = new String[] { Integer.toString(localTableBlogId), - Integer.toString(isFollower ? 1 : 0), Integer.toString(deleteCount) }; - getWritableDb().delete(PEOPLE_TABLE, "local_blog_id=?1 AND is_follower=?2 AND person_id " + - "IN (SELECT person_id FROM " + PEOPLE_TABLE + " WHERE local_blog_id=?1 AND is_follower=?2 " + - "ORDER BY display_name DESC LIMIT ?3)", args); + getWritableDb().delete(PEOPLE_TABLE, "local_blog_id=?1 AND person_id IN (SELECT person_id FROM " + + PEOPLE_TABLE + " WHERE local_blog_id=?1 " + + "ORDER BY display_name DESC LIMIT ?2)", args); } } public static int getUsersCountForLocalBlogId(int localTableBlogId) { - return PeopleTable.getPeopleCountForLocalBlogId(localTableBlogId, false); + String[] args = new String[]{Integer.toString(localTableBlogId), Integer.toString(0)}; + String sql = "SELECT COUNT(*) FROM " + PEOPLE_TABLE + + " WHERE local_blog_id=?1 AND is_follower=?2 AND is_email_follower=?2"; + return SqlUtils.intForQuery(getReadableDb(), sql, args); } - private static int getPeopleCountForLocalBlogId(int localTableBlogId, boolean isFollower) { - String[] args = new String[]{Integer.toString(localTableBlogId), Integer.toString(isFollower ? 1 : 0)}; - String sql = "SELECT COUNT(*) FROM " + PEOPLE_TABLE + " WHERE local_blog_id=? AND is_follower=?"; + private static int getPeopleCountForLocalBlogId(int localTableBlogId) { + String[] args = new String[]{Integer.toString(localTableBlogId)}; + String sql = "SELECT COUNT(*) FROM " + PEOPLE_TABLE + " WHERE local_blog_id=?"; return SqlUtils.intForQuery(getReadableDb(), sql, args); } @@ -182,7 +176,7 @@ public class PeopleTable { public static List<Person> getUsers(int localTableBlogId) { String[] args = { Integer.toString(localTableBlogId), Integer.toString(0) }; - String where = "WHERE local_blog_id=? AND is_follower=?"; + String where = "WHERE local_blog_id=?1 AND is_follower=?2 AND is_email_follower=?2"; return PeopleTable.getPeople(localTableBlogId, where, args); } @@ -193,8 +187,8 @@ public class PeopleTable { } public static List<Person> getEmailFollowers(int localTableBlogId) { - String[] args = { Integer.toString(localTableBlogId), Integer.toString(1)}; - String where = "WHERE local_blog_id=?1 AND is_follower=?2 AND is_email_follower=?2"; + String[] args = { Integer.toString(localTableBlogId), Integer.toString(0), Integer.toString(1)}; + String where = "WHERE local_blog_id=? AND is_follower=? AND is_email_follower=?"; return PeopleTable.getPeople(localTableBlogId, where, args); } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleManagementActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleManagementActivity.java index 02364e3b9..ad834069f 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleManagementActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleManagementActivity.java @@ -85,7 +85,7 @@ public class PeopleManagementActivity extends AppCompatActivity if (savedInstanceState == null) { // only delete cached people if there is a connection if (NetworkUtils.isNetworkAvailable(this)) { - PeopleTable.deleteUsersForLocalBlogIdExceptForFirstPage(blog.getLocalTableBlogId()); + PeopleTable.deletePeopleForLocalBlogIdExceptForFirstPage(blog.getLocalTableBlogId()); } if (actionBar != null) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/people/utils/PeopleUtils.java b/WordPress/src/main/java/org/wordpress/android/ui/people/utils/PeopleUtils.java index b46c1844f..76b189b38 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/people/utils/PeopleUtils.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/people/utils/PeopleUtils.java @@ -19,9 +19,7 @@ import java.util.List; import java.util.Map; public class PeopleUtils { - public static int FETCH_USERS_LIMIT = 20; - public static int FETCH_FOLLOWERS_LIMIT = 20; - public static int FETCH_EMAIL_FOLLOWERS_LIMIT = 20; + public static int FETCH_LIMIT = 20; public static void fetchUsers(final String blogId, final int localTableBlogId, final int offset, final FetchUsersCallback callback) { @@ -55,7 +53,7 @@ public class PeopleUtils { }; Map<String, String> params = new HashMap<>(); - params.put("number", Integer.toString(PeopleUtils.FETCH_USERS_LIMIT)); + params.put("number", Integer.toString(PeopleUtils.FETCH_LIMIT)); params.put("offset", Integer.toString(offset)); params.put("order_by", "display_name"); params.put("order", "ASC"); @@ -107,7 +105,7 @@ public class PeopleUtils { }; Map<String, String> params = new HashMap<>(); - params.put("max", Integer.toString(isEmailFollower? FETCH_EMAIL_FOLLOWERS_LIMIT : FETCH_FOLLOWERS_LIMIT)); + params.put("max", Integer.toString(FETCH_LIMIT)); params.put("page", Integer.toString(page)); params.put("type", isEmailFollower ? "email" : "wp_com"); String path = String.format("sites/%s/stats/followers", blogId); |