diff --git a/commons/src/main/java/org/wikimedia/commons/CategorizationFragment.java b/commons/src/main/java/org/wikimedia/commons/CategorizationFragment.java index 2f915d0b8..d9adf8ca8 100644 --- a/commons/src/main/java/org/wikimedia/commons/CategorizationFragment.java +++ b/commons/src/main/java/org/wikimedia/commons/CategorizationFragment.java @@ -50,6 +50,8 @@ public class CategorizationFragment extends SherlockFragment{ private ContentProviderClient client; + private final int RECENT_CATS_LIMIT = 20; + public static class CategoryItem implements Parcelable { public String name; public boolean selected; @@ -129,8 +131,6 @@ public class CategorizationFragment extends SherlockFragment{ protected ArrayList doInBackground(Void... voids) { if(TextUtils.isEmpty(filter)) { ArrayList items = new ArrayList(); - // fixme add a limit? - // fixme sort by last_used descending? try { Cursor cursor = client.query( CategoryContentProvider.BASE_URI, @@ -138,7 +138,8 @@ public class CategorizationFragment extends SherlockFragment{ null, new String[]{}, Category.Table.COLUMN_LAST_USED + " DESC"); - while (cursor.moveToNext()) { + // fixme add a limit on the original query instead of falling out of the loop? + while (cursor.moveToNext() && cursor.getPosition() < RECENT_CATS_LIMIT) { Category cat = Category.fromCursor(cursor); items.add(cat.getName()); }