package org.wordpress.android.ui.reader.utils; import java.util.HashMap; import java.util.regex.Pattern; public class ReaderEmbedScanner { private final String mContent; private final HashMap<Pattern, String> mKnownEmbeds = new HashMap<>(); public ReaderEmbedScanner(String contentOfPost) { mContent = contentOfPost; mKnownEmbeds.put(Pattern.compile("<blockquote[^<>]class=\"instagram-", Pattern.CASE_INSENSITIVE), "https://platform.instagram.com/en_US/embeds.js"); mKnownEmbeds.put(Pattern.compile("<fb:post", Pattern.CASE_INSENSITIVE), "https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.8"); } public void beginScan(ReaderHtmlUtils.HtmlScannerListener listener) { if (listener == null) { throw new IllegalArgumentException("HtmlScannerListener is required"); } for (Pattern pattern : mKnownEmbeds.keySet()) { if (pattern.matcher(mContent).find()) { // Use the onTagFound callback to pass a URL. Not super clean, but avoid clutter with more kind // of listeners. listener.onTagFound("", mKnownEmbeds.get(pattern)); } } } }