diff options
author | Oguz Kocer <oguz.kocer@automattic.com> | 2016-05-24 18:04:34 +0300 |
---|---|---|
committer | Oguz Kocer <oguz.kocer@automattic.com> | 2016-05-24 18:04:34 +0300 |
commit | 314989f6a444d7d4fedbf230d0bd0faeb2772dd3 (patch) | |
tree | 035159d18f465ed87607e5fec93c2d805e5bd9e9 /WordPress/src/main/java/org/wordpress | |
parent | ff286e7e8fe9b56da4d6399412357a5dda83d448 (diff) | |
download | gradle-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')
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"); |