ability to certify directories
This commit is contained in:
@ -51,10 +51,14 @@ class FileTree<T> {
|
||||
}
|
||||
|
||||
synchronized void traverse(File from, FileTreeCallback<T> callback) {
|
||||
TreeNode node = fileToNode.get(from);
|
||||
if (node == null)
|
||||
return
|
||||
doTraverse(node, callback);
|
||||
if (from == null) {
|
||||
doTraverse(root, callback);
|
||||
} else {
|
||||
TreeNode node = fileToNode.get(from);
|
||||
if (node == null)
|
||||
return
|
||||
doTraverse(node, callback);
|
||||
}
|
||||
}
|
||||
|
||||
private void doTraverse(TreeNode<T> node, FileTreeCallback<T> callback) {
|
||||
|
@ -19,12 +19,13 @@ import com.muwire.core.filecert.UIImportCertificateEvent;
|
||||
|
||||
public class CertificateManager {
|
||||
private final Core core;
|
||||
|
||||
private final FileManager fileManager;
|
||||
|
||||
private final Map<Persona, Map<InfoHash,CertificateRequest>> requests = new ConcurrentHashMap<>();
|
||||
|
||||
public CertificateManager(Core core) {
|
||||
public CertificateManager(Core core, FileManager fileManager) {
|
||||
this.core = core;
|
||||
this.fileManager = fileManager;
|
||||
}
|
||||
|
||||
public void onCertificateFetchEvent(CertificateFetchEvent e) {
|
||||
@ -78,12 +79,20 @@ public class CertificateManager {
|
||||
}
|
||||
|
||||
void certify(File file) {
|
||||
SharedFile sf = core.getFileManager().getFileToSharedFile().get(file);
|
||||
if (sf == null)
|
||||
return;
|
||||
UICreateCertificateEvent event = new UICreateCertificateEvent();
|
||||
event.setSharedFile(sf);
|
||||
core.getEventBus().publish(event);
|
||||
if (file.isFile()) {
|
||||
SharedFile sf = core.getFileManager().getFileToSharedFile().get(file);
|
||||
if (sf == null)
|
||||
return;
|
||||
UICreateCertificateEvent event = new UICreateCertificateEvent();
|
||||
event.setSharedFile(sf);
|
||||
core.getEventBus().publish(event);
|
||||
} else {
|
||||
for (SharedFile sf : fileManager.getAllFiles(file)) {
|
||||
UICreateCertificateEvent event = new UICreateCertificateEvent();
|
||||
event.setSharedFile(sf);
|
||||
core.getEventBus().publish(event);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static class CertificateRequest {
|
||||
|
@ -64,8 +64,12 @@ public class FileManager {
|
||||
}
|
||||
|
||||
List<SharedFile> getAllFiles() {
|
||||
return getAllFiles(null);
|
||||
}
|
||||
|
||||
List<SharedFile> getAllFiles(File parent) {
|
||||
TraverseCallback cb = new TraverseCallback();
|
||||
fileTree.traverse(cb);
|
||||
fileTree.traverse(parent, cb);
|
||||
return cb.found;
|
||||
}
|
||||
|
||||
|
@ -150,7 +150,7 @@ public class MuWireClient {
|
||||
TrustManager trustManager = new TrustManager();
|
||||
core.getEventBus().register(TrustEvent.class, trustManager);
|
||||
|
||||
CertificateManager certificateManager = new CertificateManager(core);
|
||||
CertificateManager certificateManager = new CertificateManager(core, fileManager);
|
||||
core.getEventBus().register(CertificateFetchedEvent.class, certificateManager);
|
||||
core.getEventBus().register(CertificateFetchEvent.class, certificateManager);
|
||||
|
||||
|
@ -23,6 +23,8 @@ public class Util {
|
||||
// a file, but it's not worth it for just a handful.
|
||||
private static final String[] jsStrings = {
|
||||
_x("View Certificates"),
|
||||
_x("Certify"),
|
||||
_x("Certified"),
|
||||
_x("Import"),
|
||||
_x("Imported"),
|
||||
_x("Unsubscribe"),
|
||||
|
Reference in New Issue
Block a user