/**
   * Check every external resource if it's okay to load it and maybe replace it with our own
   * content. This is used to block loading Niantic resources which aren’t required and to inject
   * IITC early into the site. via http://stackoverflow.com/a/8274881/1684530
   */
  @Override
  public WebResourceResponse shouldInterceptRequest(final WebView view, final String url) {
    // if any tiles are requested, handle it with IITC_TileManager
    if (url.matches(".*tile.*jpg.*") // mapquest tiles | ovi tiles
        || url.matches(".*tile.*png.*") // cloudmade tiles
        || url.matches(".*mts.*googleapis.*") // google tiles
        || url.matches(".*khms.*googleapis.*") // google satellite tiles
        || url.matches(".*tile.*jpeg.*") // bing tiles
        || url.matches(".*maps.*yandex.*tiles.*") // yandex maps
        || url.matches(".*cartocdn.*png.*") // cartoDB tiles
    ) {
      try {
        return mTileManager.getTile(url);
      } catch (final Exception e) {
        Log.w(e);
        return super.shouldInterceptRequest(view, url);
      }
    }

    if (url.contains("/css/common.css")) {
      // return custom stylesheet
      return new WebResourceResponse("text/css", "UTF-8", STYLE);
    }

    if (url.contains("/css/ap_icons.css")
        || url.contains("/css/map_icons.css")
        || url.contains("/css/common.css")
        || url.contains("/css/misc_icons.css")
        || url.contains("/css/style_full.css")
        || url.contains("/css/style_mobile.css")
        || url.contains("/css/portalrender.css")
        || url.contains("/css/portalrender_mobile.css")
        || url.contains("js/analytics.js")
        || url.contains("google-analytics.com/ga.js")) {
      // don't load stylesheets
      return new WebResourceResponse("text/plain", "UTF-8", EMPTY);
    }

    final Uri uri = Uri.parse(url);
    if (uri.getHost() != null
        && uri.getHost().endsWith(DOMAIN)
        && ("http".equals(uri.getScheme()) || "https".equals(uri.getScheme())))
      return mIitc.getFileManager().getResponse(uri);

    return super.shouldInterceptRequest(view, url);
  }