diff --git a/app/src/main/java/com/ericsson/uecontrol/core/behaviour/UeBehaviourSurfing.java b/app/src/main/java/com/ericsson/uecontrol/core/behaviour/UeBehaviourSurfing.java index 58b3007..cf2768e 100755 --- a/app/src/main/java/com/ericsson/uecontrol/core/behaviour/UeBehaviourSurfing.java +++ b/app/src/main/java/com/ericsson/uecontrol/core/behaviour/UeBehaviourSurfing.java @@ -39,23 +39,48 @@ public class UeBehaviourSurfing extends UeBehaviour { rootUrl = url; } + private static class URLContainer{ + public URL url; + public boolean parsable; + + private URLContainer(URL url, boolean parsable) { + this.url = url; + this.parsable = parsable; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + URLContainer that = (URLContainer) o; + if (!url.equals(that.url)) return false; + return true; + } + + @Override + public int hashCode() { + return url.hashCode(); + } + } + @Override protected void execute() throws IOException { if(!rootUrl.startsWith("http://")) rootUrl = "http://"+ rootUrl; - List urlList = new ArrayList(); - urlList.add(new URL(rootUrl)); + List urlList = new ArrayList(); + urlList.add(new URLContainer(new URL(rootUrl), true)); byte[] data = new byte[100]; IOException retException = null; long totalRead = 0; for(int i=0; i", Pattern.CASE_INSENSITIVE), Pattern.compile("@import [\"']?(.*?)[\"']?", Pattern.CASE_INSENSITIVE), Pattern.compile("(?:import|background)[\\W:]*url\\([\"']?(?![\"']?data:)(.*?)[\"']??\\)", Pattern.CASE_INSENSITIVE), + }; + private static final Pattern[] CONTENT_INCLUSION_PATTERNS = new Pattern[]{ + // HTML + Pattern.compile(" urlList){ - for(Pattern pattern : CONTENT_INCLUSION_PATTERNS){ + private void getAdditionalContent(URL baseUrl, String data, List urlList){ + getAdditionalContent(baseUrl, data, urlList, PARSABLE_CONTENT_INCLUSION_PATTERNS, true); + getAdditionalContent(baseUrl, data, urlList, PARSABLE_CONTENT_INCLUSION_PATTERNS, false); + } + private void getAdditionalContent(URL baseUrl, String data, List urlList, Pattern[] patternList, boolean parsable){ + for(Pattern pattern : patternList){ Matcher m = pattern.matcher(data); while(m.find()){ try { String strUrl = m.group(1); log.debug("Parsing(Regex: "+pattern.pattern()+"): " + strUrl); - URL url = new URL(baseUrl, strUrl); - if(!urlList.contains(url)) - urlList.add(url); + URLContainer cont = new URLContainer(new URL(baseUrl, strUrl), parsable); + if(!urlList.contains(cont)) + urlList.add(cont); }catch(MalformedURLException e){ log.warn(null, e); } diff --git a/app/src/main/java/com/ericsson/uecontrol/gui/MainActivity.java b/app/src/main/java/com/ericsson/uecontrol/gui/MainActivity.java index 0839e06..1d145a8 100755 --- a/app/src/main/java/com/ericsson/uecontrol/gui/MainActivity.java +++ b/app/src/main/java/com/ericsson/uecontrol/gui/MainActivity.java @@ -1,16 +1,13 @@ package com.ericsson.uecontrol.gui; import android.app.ActionBar; -import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.os.Bundle; -import android.os.Environment; import android.os.Handler; import android.preference.PreferenceManager; import android.support.v4.app.FragmentActivity; -import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast;