Batch search fix

This commit is contained in:
M66B 2019-10-29 11:34:03 +01:00
parent 76f7897489
commit 6e4af2ed03
1 changed files with 20 additions and 16 deletions

View File

@ -181,20 +181,26 @@ public class BoundaryCallbackMessages extends PagedList.BoundaryCallback<TupleMe
db.beginTransaction(); db.beginTransaction();
while (found < pageSize && !state.destroyed) { while (found < pageSize && !state.destroyed) {
state.matches = db.message().matchMessages( if (state.matches == null ||
folder, (state.matches.size() > 0 && state.index >= state.matches.size())) {
"%" + find + "%", state.matches = db.message().matchMessages(
seen, flagged, snoozed, folder,
SEARCH_LIMIT, state.offset); "%" + find + "%",
Log.i("Boundary device folder=" + folder + seen, flagged, snoozed,
" query=" + query + SEARCH_LIMIT, state.offset);
" seen=" + seen + Log.i("Boundary device folder=" + folder +
" flagged=" + flagged + " query=" + query +
" snoozed=" + snoozed + " seen=" + seen +
" offset=" + state.offset + " flagged=" + flagged +
" size=" + state.matches.size()); " snoozed=" + snoozed +
if (state.matches.size() == 0) " offset=" + state.offset +
break; " size=" + state.matches.size());
if (state.matches.size() == 0)
break;
state.offset += Math.min(state.matches.size(), SEARCH_LIMIT);
state.index = 0;
}
for (int i = state.index; i < state.matches.size() && found < pageSize && !state.destroyed; i++) { for (int i = state.index; i < state.matches.size() && found < pageSize && !state.destroyed; i++) {
state.index = i + 1; state.index = i + 1;
@ -223,8 +229,6 @@ public class BoundaryCallbackMessages extends PagedList.BoundaryCallback<TupleMe
db.message().setMessageFound(match.account, match.thread); db.message().setMessageFound(match.account, match.thread);
} }
} }
state.offset += SEARCH_LIMIT;
} }
db.setTransactionSuccessful(); db.setTransactionSuccessful();