aboutsummaryrefslogtreecommitdiff
path: root/WordPress/src/main/java/org/wordpress
diff options
context:
space:
mode:
authorOguz Kocer <oguz.kocer@automattic.com>2016-05-24 18:04:34 +0300
committerOguz Kocer <oguz.kocer@automattic.com>2016-05-24 18:04:34 +0300
commit314989f6a444d7d4fedbf230d0bd0faeb2772dd3 (patch)
tree035159d18f465ed87607e5fec93c2d805e5bd9e9 /WordPress/src/main/java/org/wordpress
parentff286e7e8fe9b56da4d6399412357a5dda83d448 (diff)
downloadgradle-perf-android-medium-314989f6a444d7d4fedbf230d0bd0faeb2772dd3.tar.gz
When People page is created, remove all users except for 1st page
Diffstat (limited to 'WordPress/src/main/java/org/wordpress')
-rw-r--r--WordPress/src/main/java/org/wordpress/android/datasets/PeopleTable.java12
-rw-r--r--WordPress/src/main/java/org/wordpress/android/ui/people/PeopleManagementActivity.java2
-rw-r--r--WordPress/src/main/java/org/wordpress/android/ui/people/utils/PeopleUtils.java2
3 files changed, 16 insertions, 0 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 6b5220952..d9221ad92 100644
--- a/WordPress/src/main/java/org/wordpress/android/datasets/PeopleTable.java
+++ b/WordPress/src/main/java/org/wordpress/android/datasets/PeopleTable.java
@@ -6,6 +6,7 @@ import android.database.sqlite.SQLiteDatabase;
import org.wordpress.android.WordPress;
import org.wordpress.android.models.Person;
+import org.wordpress.android.ui.people.utils.PeopleUtils;
import org.wordpress.android.util.AppLog;
import org.wordpress.android.util.SqlUtils;
@@ -93,6 +94,17 @@ public class PeopleTable {
getWritableDb().delete(PEOPLE_TABLE, "local_blog_id=?", args);
}
+ public static void deletePeopleForLocalBlogIdExceptForFirstPage(int localTableBlogId) {
+ int size = getPeopleCountForLocalBlogId(localTableBlogId);
+ int fetchLimit = PeopleUtils.FETCH_USERS_LIMIT;
+ if (size > fetchLimit) {
+ int deleteCount = size - fetchLimit;
+ String[] args = new String[]{Integer.toString(deleteCount), Integer.toString(localTableBlogId)};
+ getWritableDb().delete(PEOPLE_TABLE, "person_id " +
+ "IN (SELECT person_id FROM people ORDER BY display_name DESC LIMIT ?) AND local_blog_id=?", args);
+ }
+ }
+
public static void deletePerson(long personID, int localTableBlogId) {
String[] args = new String[]{Long.toString(personID), Integer.toString(localTableBlogId)};
getWritableDb().delete(PEOPLE_TABLE, "person_id=? AND local_blog_id=?", 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 c9a2b11f6..f7da1d59f 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
@@ -53,6 +53,8 @@ public class PeopleManagementActivity extends AppCompatActivity
}
if (savedInstanceState == null) {
+ PeopleTable.deletePeopleForLocalBlogIdExceptForFirstPage(blog.getLocalTableBlogId());
+
PeopleListFragment peopleListFragment = PeopleListFragment.newInstance(blog.getLocalTableBlogId());
peopleListFragment.setOnPersonSelectedListener(this);
peopleListFragment.setOnFetchMorePeopleListener(this);
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 d56950859..bb9de18ae 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
@@ -17,6 +17,7 @@ import java.util.List;
import java.util.Map;
public class PeopleUtils {
+ public static int FETCH_USERS_LIMIT = 20;
public static void fetchUsers(final String blogId, final int localTableBlogId, final int offset, final FetchUsersCallback callback) {
com.wordpress.rest.RestRequest.Listener listener = new RestRequest.Listener() {
@@ -49,6 +50,7 @@ public class PeopleUtils {
};
Map<String, String> params = new HashMap<>();
+ params.put("number", Integer.toString(PeopleUtils.FETCH_USERS_LIMIT));
params.put("offset", Integer.toString(offset));
params.put("order_by", "display_name");
params.put("order", "ASC");