	public boolean processFeedMetadata(OPDSFeedMetadata feed, boolean beforeEntries) {
		Icon = (feed.Icon != null) ? ZLNetworkUtil.url(myBaseURL, feed.Icon.Uri) : null;
		Title = feed.Title;
		Summary = feed.Subtitle;
		for (ATOMLink link: feed.Links) {
			final MimeType type = MimeType.get(link.getType());
			final String rel = myLink.relation(link.getRel(), type);
			if ("search".equals(rel)) {
				if (MimeType.APP_OPENSEARCHDESCRIPTION.equals(type)) {
					myOpensearchDescriptionURLs.add(ZLNetworkUtil.url(myBaseURL, link.getHref()));
				} else if (MimeType.APP_ATOM_XML.weakEquals(type)) {
					final String template = ZLNetworkUtil.url(myBaseURL, link.getHref());
					final OpenSearchDescription descr = OpenSearchDescription.createDefault(template);
					if (descr.isValid()) {
						DirectOpenSearchDescription = descr;
					}
				}
			}
		}
		return true;
	}

	public boolean processFeedMetadata(OPDSFeedMetadata feed, boolean beforeEntries) {
		Icon = (feed.Icon != null) ? ZLNetworkUtil.url(myBaseURL, feed.Icon.Uri) : null;
		Title = feed.Title;
		Summary = feed.Subtitle;
		for (ATOMLink link: feed.Links) {
			final MimeType type = MimeType.get(link.getType());
			final String rel = myLink.relation(link.getRel(), type);
			if ("search".equals(rel)) {
				if (MimeType.APP_OPENSEARCHDESCRIPTION.equals(type)) {
					final String template = ZLNetworkUtil.url(myBaseURL, link.getHref());
					final OpenSearchDescription descr = OpenSearchDescription.createDefault(template);
					if (descr.isValid()) {
						DirectOpenSearchDescription = descr;
					}
				} else if (MimeType.APP_ATOM_XML.weakEquals(type)) {
					myOpensearchDescriptionURLs.add(ZLNetworkUtil.url(myBaseURL, link.getHref()));
				}
			}
		}
		return true;
	}
