update plugin for batched browse results

pull/53/head
Zlatin Balevsky 2020-10-10 16:42:14 +01:00
parent 9e3a9e2737
commit f83275e1e7
No known key found for this signature in database
GPG Key ID: A72832072D525E41
2 changed files with 13 additions and 5 deletions

View File

@ -1,16 +1,19 @@
package com.muwire.webui; package com.muwire.webui;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.UUID;
import com.muwire.core.Core; import com.muwire.core.Core;
import com.muwire.core.Persona; import com.muwire.core.Persona;
import com.muwire.core.search.BrowseStatus; import com.muwire.core.search.BrowseStatus;
import com.muwire.core.search.BrowseStatusEvent; import com.muwire.core.search.BrowseStatusEvent;
import com.muwire.core.search.UIBrowseEvent; import com.muwire.core.search.UIBrowseEvent;
import com.muwire.core.search.UIResultBatchEvent;
import com.muwire.core.search.UIResultEvent; import com.muwire.core.search.UIResultEvent;
public class BrowseManager { public class BrowseManager {
@ -28,15 +31,19 @@ public class BrowseManager {
return; // hmm return; // hmm
browse.status = e.getStatus(); browse.status = e.getStatus();
browse.revision++; browse.revision++;
if (browse.status == BrowseStatus.FETCHING) if (browse.status == BrowseStatus.FETCHING) {
browse.totalResults = e.getTotalResults(); browse.totalResults = e.getTotalResults();
browse.uuid = e.getUuid();
}
} }
public void onUIResultEvent(UIResultEvent e) { public void onUIResultBatchEvent(UIResultBatchEvent e) {
Browse browse = browses.get(e.getSender()); Browse browse = browses.get(e.getResults()[0].getSender());
if (browse == null) if (browse == null)
return; return;
browse.results.add(e); if (!browse.uuid.equals(e.getUuid()))
return;
browse.results.addAll(Arrays.asList(e.getResults()));
browse.revision++; browse.revision++;
} }
@ -65,6 +72,7 @@ public class BrowseManager {
private volatile BrowseStatus status; private volatile BrowseStatus status;
private volatile int totalResults; private volatile int totalResults;
private volatile long revision; private volatile long revision;
private volatile UUID uuid;
private final List<UIResultEvent> results = Collections.synchronizedList(new ArrayList<>()); private final List<UIResultEvent> results = Collections.synchronizedList(new ArrayList<>());
Browse(Persona persona) { Browse(Persona persona) {

View File

@ -164,7 +164,7 @@ public class MuWireClient {
BrowseManager browseManager = new BrowseManager(core); BrowseManager browseManager = new BrowseManager(core);
core.getEventBus().register(BrowseStatusEvent.class, browseManager); core.getEventBus().register(BrowseStatusEvent.class, browseManager);
core.getEventBus().register(UIResultEvent.class, browseManager); core.getEventBus().register(UIResultBatchEvent.class, browseManager);
TrustManager trustManager = new TrustManager(); TrustManager trustManager = new TrustManager();
core.getEventBus().register(TrustEvent.class, trustManager); core.getEventBus().register(TrustEvent.class, trustManager);