diff --git a/app/src/main/java/org/schabi/newpipe/ErrorActivity.java b/app/src/main/java/org/schabi/newpipe/ErrorActivity.java index c460a64dd..0de0cdabb 100644 --- a/app/src/main/java/org/schabi/newpipe/ErrorActivity.java +++ b/app/src/main/java/org/schabi/newpipe/ErrorActivity.java @@ -76,8 +76,11 @@ public class ErrorActivity extends AppCompatActivity { public static final String TAG = ErrorActivity.class.toString(); public static final int SEARCHED = 0; public static final int REQUESTED_STREAM = 1; - public static final String SEARCHED_STRING = "Searched"; - public static final String REQUESTED_STREAM_STRING = "Requested Stream"; + public static final int GET_SUGGESTIONS = 2; + public static final String SEARCHED_STRING = "searched"; + public static final String REQUESTED_STREAM_STRING = "requested stream"; + public static final String GET_SUGGESTIONS_STRING = "get suggestions"; + public static final String ERROR_EMAIL_ADDRESS = "crashreport@newpipe.schabi.org"; public static final String ERROR_EMAIL_SUBJECT = "Exception in NewPipe " + BuildConfig.VERSION_NAME; @@ -303,6 +306,8 @@ public class ErrorActivity extends AppCompatActivity { return REQUESTED_STREAM_STRING; case SEARCHED: return SEARCHED_STRING; + case GET_SUGGESTIONS: + return GET_SUGGESTIONS_STRING; default: return "Your description is in another castle."; } diff --git a/app/src/main/java/org/schabi/newpipe/VideoItemListActivity.java b/app/src/main/java/org/schabi/newpipe/VideoItemListActivity.java index 45e4e09cc..533c69e85 100644 --- a/app/src/main/java/org/schabi/newpipe/VideoItemListActivity.java +++ b/app/src/main/java/org/schabi/newpipe/VideoItemListActivity.java @@ -172,11 +172,17 @@ public class VideoItemListActivity extends AppCompatActivity ArrayListsuggestions = engine.suggestionList(query,searchLanguage,new Downloader()); h.post(new SuggestionResultRunnable(suggestions)); } catch (ExtractionException e) { - postNewErrorToast(h, R.string.parsing_error); + ErrorActivity.reportError(h, VideoItemListActivity.this, e, null, findViewById(R.id.videoitem_list), + ErrorActivity.ErrorInfo.make(ErrorActivity.SEARCHED, + /* todo: this shoudl not be assigned static */ "Youtube", query, R.string.parsing_error)); e.printStackTrace(); } catch (IOException e) { postNewErrorToast(h, R.string.network_error); e.printStackTrace(); + } catch (Exception e) { + ErrorActivity.reportError(h, VideoItemListActivity.this, e, null, findViewById(R.id.videoitem_list), + ErrorActivity.ErrorInfo.make(ErrorActivity.SEARCHED, + /* todo: this shoudl not be assigned static */ "Youtube", query, R.string.general_error)); } } } diff --git a/app/src/main/java/org/schabi/newpipe/VideoItemListFragment.java b/app/src/main/java/org/schabi/newpipe/VideoItemListFragment.java index a02255447..fc20aadb9 100644 --- a/app/src/main/java/org/schabi/newpipe/VideoItemListFragment.java +++ b/app/src/main/java/org/schabi/newpipe/VideoItemListFragment.java @@ -151,8 +151,6 @@ public class VideoItemListFragment extends ListFragment { /* todo: this shoudl not be assigned static */ "Youtube", query, R.string.general_error)); e.printStackTrace(); - } finally { - } } } diff --git a/app/src/main/java/org/schabi/newpipe/extractor/ParsingException.java b/app/src/main/java/org/schabi/newpipe/extractor/ParsingException.java index 64951bf49..5803537bb 100644 --- a/app/src/main/java/org/schabi/newpipe/extractor/ParsingException.java +++ b/app/src/main/java/org/schabi/newpipe/extractor/ParsingException.java @@ -25,9 +25,6 @@ public class ParsingException extends ExtractionException { public ParsingException(String message) { super(message); } - public ParsingException(Throwable cause) { - super(cause); - } public ParsingException(String message, Throwable cause) { super(message, cause); } diff --git a/app/src/main/java/org/schabi/newpipe/extractor/StreamExtractor.java b/app/src/main/java/org/schabi/newpipe/extractor/StreamExtractor.java index 4fb396e1f..b1f0249fb 100644 --- a/app/src/main/java/org/schabi/newpipe/extractor/StreamExtractor.java +++ b/app/src/main/java/org/schabi/newpipe/extractor/StreamExtractor.java @@ -44,9 +44,6 @@ public interface StreamExtractor { public ContentNotAvailableException(String message) { super(message); } - public ContentNotAvailableException(Throwable cause) { - super(cause); - } public ContentNotAvailableException(String message, Throwable cause) { super(message, cause); } diff --git a/app/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeSearchEngine.java b/app/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeSearchEngine.java index fe2dc30a7..4e6010108 100644 --- a/app/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeSearchEngine.java +++ b/app/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeSearchEngine.java @@ -137,39 +137,34 @@ public class YoutubeSearchEngine implements SearchEngine { String response = dl.download(url); + //TODO: Parse xml data using Jsoup not done + DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder dBuilder; + org.w3c.dom.Document doc = null; + try { + dBuilder = dbFactory.newDocumentBuilder(); + doc = dBuilder.parse(new InputSource( + new ByteArrayInputStream(response.getBytes("utf-8")))); + doc.getDocumentElement().normalize(); + } catch (ParserConfigurationException | SAXException | IOException e) { + throw new ParsingException("Could not parse document."); + } - //TODO: Parse xml data using Jsoup not done - DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); - DocumentBuilder dBuilder; - org.w3c.dom.Document doc = null; + try { + NodeList nList = doc.getElementsByTagName("CompleteSuggestion"); + for (int temp = 0; temp < nList.getLength(); temp++) { - try { - dBuilder = dbFactory.newDocumentBuilder(); - doc = dBuilder.parse(new InputSource( - new ByteArrayInputStream(response.getBytes("utf-8")))); - doc.getDocumentElement().normalize(); - } catch (ParserConfigurationException | SAXException | IOException e) { - e.printStackTrace(); - } - - if (doc != null) { - NodeList nList = doc.getElementsByTagName("CompleteSuggestion"); - for (int temp = 0; temp < nList.getLength(); temp++) { - - NodeList nList1 = doc.getElementsByTagName("suggestion"); - Node nNode1 = nList1.item(temp); - if (nNode1.getNodeType() == Node.ELEMENT_NODE) { - org.w3c.dom.Element eElement = (org.w3c.dom.Element) nNode1; - suggestions.add(eElement.getAttribute("data")); - } + NodeList nList1 = doc.getElementsByTagName("suggestion"); + Node nNode1 = nList1.item(temp); + if (nNode1.getNodeType() == Node.ELEMENT_NODE) { + org.w3c.dom.Element eElement = (org.w3c.dom.Element) nNode1; + suggestions.add(eElement.getAttribute("data")); } - } else { - Log.e(TAG, "GREAT FUCKING ERROR"); } return suggestions; } catch(Exception e) { - throw new ParsingException(e); + throw new ParsingException("Could not get suggestions form document.", e); } } diff --git a/app/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractor.java b/app/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractor.java index b2560fe39..db137a145 100644 --- a/app/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractor.java +++ b/app/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractor.java @@ -52,9 +52,6 @@ public class YoutubeStreamExtractor implements StreamExtractor { // exceptions public class DecryptException extends ParsingException { - DecryptException(Throwable cause) { - super(cause); - } DecryptException(String message, Throwable cause) { super(message, cause); } @@ -718,7 +715,7 @@ public class YoutubeStreamExtractor implements StreamExtractor { info.thumbnail_url = "https:" + info.thumbnail_url; } } catch (Exception e) { - throw new ParsingException(e); + throw new ParsingException("Could not get video preview info", e); } return info; } @@ -772,7 +769,7 @@ public class YoutubeStreamExtractor implements StreamExtractor { Function decryptionFunc = (Function) scope.get("decrypt", scope); result = decryptionFunc.call(context, scope, scope, new Object[]{encryptedSig}); } catch (Exception e) { - throw new DecryptException(e); + throw new DecryptException("could not get decrypt signature", e); } finally { Context.exit(); }