mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-05 19:42:17 +02:00
NetworkLibrary search mechanism has been implemented
git-svn-id: https://only.mawhrin.net/repos/FBReaderJ/trunk@1303 6a642e6f-84f6-412e-ac94-c4a38d5a04b0
This commit is contained in:
parent
0b894e6bb1
commit
a4bc969e0a
3 changed files with 50 additions and 0 deletions
|
@ -25,6 +25,8 @@ import java.util.*;
|
||||||
import org.geometerplus.zlibrary.core.filesystem.*;
|
import org.geometerplus.zlibrary.core.filesystem.*;
|
||||||
import org.geometerplus.zlibrary.core.util.ZLNetworkUtil;
|
import org.geometerplus.zlibrary.core.util.ZLNetworkUtil;
|
||||||
import org.geometerplus.zlibrary.core.options.ZLStringOption;
|
import org.geometerplus.zlibrary.core.options.ZLStringOption;
|
||||||
|
import org.geometerplus.zlibrary.core.network.ZLNetworkRequest;
|
||||||
|
import org.geometerplus.zlibrary.core.network.ZLNetworkManager;
|
||||||
|
|
||||||
import org.geometerplus.fbreader.tree.FBTree;
|
import org.geometerplus.fbreader.tree.FBTree;
|
||||||
import org.geometerplus.fbreader.network.tree.*;
|
import org.geometerplus.fbreader.network.tree.*;
|
||||||
|
@ -236,4 +238,45 @@ public class NetworkLibrary {
|
||||||
return myRootTree;
|
return myRootTree;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// returns Error Message
|
||||||
|
public String simpleSearch(String pattern, final NetworkOperationData.OnNewItemListener listener) {
|
||||||
|
LinkedList<ZLNetworkRequest> requestList = new LinkedList<ZLNetworkRequest>();
|
||||||
|
LinkedList<NetworkOperationData> dataList = new LinkedList<NetworkOperationData>();
|
||||||
|
|
||||||
|
NetworkOperationData.OnNewItemListener synchronizedListener = new NetworkOperationData.OnNewItemListener() {
|
||||||
|
public synchronized boolean onNewItem(NetworkLibraryItem item) {
|
||||||
|
return listener.onNewItem(item);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
for (NetworkLink link: myLinks) {
|
||||||
|
if (link.OnOption.getValue()) {
|
||||||
|
NetworkOperationData data = new NetworkOperationData(link, synchronizedListener);
|
||||||
|
ZLNetworkRequest request = link.simpleSearchRequest(pattern, data);
|
||||||
|
if (request != null) {
|
||||||
|
dataList.add(data);
|
||||||
|
requestList.add(request);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
while (requestList.size() != 0) {
|
||||||
|
final String errorMessage = ZLNetworkManager.Instance().perform(requestList);
|
||||||
|
if (errorMessage != null) {
|
||||||
|
return errorMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
requestList.clear();
|
||||||
|
|
||||||
|
for (NetworkOperationData data: dataList) {
|
||||||
|
ZLNetworkRequest request = data.resume();
|
||||||
|
if (request != null) {
|
||||||
|
requestList.add(request);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,6 +63,7 @@ abstract public class NetworkLink {
|
||||||
Links = new TreeMap(links);
|
Links = new TreeMap(links);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public abstract ZLNetworkRequest simpleSearchRequest(String pattern, NetworkOperationData data);
|
||||||
public abstract ZLNetworkRequest resume(NetworkOperationData data);
|
public abstract ZLNetworkRequest resume(NetworkOperationData data);
|
||||||
|
|
||||||
public abstract NetworkLibraryItem libraryItem();
|
public abstract NetworkLibraryItem libraryItem();
|
||||||
|
|
|
@ -93,6 +93,12 @@ class OPDSLink extends NetworkLink {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ZLNetworkRequest simpleSearchRequest(String pattern, NetworkOperationData data) {
|
||||||
|
// TODO: implement
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ZLNetworkRequest resume(NetworkOperationData data) {
|
public ZLNetworkRequest resume(NetworkOperationData data) {
|
||||||
String url = data.ResumeURI;
|
String url = data.ResumeURI;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue