Search improvements

pull/146/head
M66B 6 years ago
parent a234d0f6b5
commit 2a2280c15d

@ -35,6 +35,7 @@ public class BoundaryCallbackMessages extends PagedList.BoundaryCallback<TupleMe
private ViewModelBrowse model;
private Handler handler;
private IBoundaryCallbackMessages intf;
private boolean searching = false;
private static ExecutorService executor = Executors.newSingleThreadExecutor(Helper.backgroundThreadFactory);
@ -66,7 +67,7 @@ public class BoundaryCallbackMessages extends PagedList.BoundaryCallback<TupleMe
}
boolean isSearching() {
return model.isSearching();
return searching;
}
int getLoaded() {
@ -90,6 +91,7 @@ public class BoundaryCallbackMessages extends PagedList.BoundaryCallback<TupleMe
@Override
public void run() {
try {
searching = true;
handler.post(new Runnable() {
@Override
public void run() {
@ -106,6 +108,7 @@ public class BoundaryCallbackMessages extends PagedList.BoundaryCallback<TupleMe
}
});
} finally {
searching = false;
handler.post(new Runnable() {
@Override
public void run() {

@ -650,7 +650,7 @@ public class FragmentMessages extends FragmentEx {
new SimpleTask<Void>() {
@Override
protected Void onLoad(Context context, Bundle args) throws Throwable {
protected Void onLoad(Context context, Bundle args) {
DB.getInstance(context).message().deleteFoundMessages();
return null;
}

@ -36,8 +36,8 @@ public class ViewModelBrowse extends ViewModel {
private IMAPStore istore = null;
private IMAPFolder ifolder = null;
private Message[] imessages = null;
private int index;
private boolean searching = false;
private int index = -1;
private int loaded = 0;
void set(Context context, long folder, String search, int pageSize) {
@ -47,7 +47,6 @@ public class ViewModelBrowse extends ViewModel {
this.pageSize = pageSize;
this.index = -1;
this.searching = false;
this.loaded = 0;
}
@ -55,18 +54,11 @@ public class ViewModelBrowse extends ViewModel {
return context;
}
boolean isSearching() {
return searching;
}
int getLoaded() {
return loaded;
}
void load() throws MessagingException, FolderClosedIOException {
try {
searching = true;
DB db = DB.getInstance(context);
EntityFolder folder = db.folder().getFolder(fid);
if (folder.account == null) // outbox
@ -131,9 +123,12 @@ public class ViewModelBrowse extends ViewModel {
try {
long uid = ifolder.getUID(isub[j]);
Log.i(Helper.TAG, "Boundary sync uid=" + uid);
EntityMessage message = db.message().getMessageByUid(fid, uid, search != null);
if (message == null) {
ServiceSynchronize.synchronizeMessage(context, folder, ifolder, (IMAPMessage) isub[j], search != null);
count++;
loaded++;
}
} catch (MessageRemovedException ex) {
Log.w(Helper.TAG, "Boundary " + ex + "\n" + Log.getStackTraceString(ex));
} catch (FolderClosedException ex) {
@ -153,9 +148,6 @@ public class ViewModelBrowse extends ViewModel {
}
Log.i(Helper.TAG, "Boundary done");
} finally {
searching = false;
}
}
void clear() {

Loading…
Cancel
Save