ZLNetworkRequest createNetworkData(String url, final OPDSCatalogItem.State result) { if (url == null) { return null; } final NetworkLibrary library = NetworkLibrary.Instance(); final NetworkCatalogItem catalogItem = result.Loader.getTree().Item; library.startLoading(catalogItem); url = rewriteUrl(url, false); return new ZLNetworkRequest(url) { @Override public void handleStream(InputStream inputStream, int length) throws IOException, ZLNetworkException { if (result.Loader.confirmInterruption()) { return; } new OPDSXMLReader(new OPDSFeedHandler(getURL(), result), false).read(inputStream); if (result.Loader.confirmInterruption() && result.LastLoadedId != null) { // reset state to load current page from the beginning result.LastLoadedId = null; } else { result.Loader.getTree().confirmAllItems(); } } @Override public void doAfter(boolean success) { library.stopLoading(catalogItem); } }; }