Search in sources :

Example 1 with ContentNotAvailableException

use of org.schabi.newpipe.extractor.exceptions.ContentNotAvailableException in project NewPipe by TeamNewPipe.

the class ExtractorHelper method handleGeneralException.

/**
 * A simple and general error handler that show a Toast for known exceptions, and for others, opens the report error activity with the (optional) error message.
 */
public static void handleGeneralException(Context context, int serviceId, String url, Throwable exception, UserAction userAction, String optionalErrorMessage) {
    final Handler handler = new Handler(context.getMainLooper());
    handler.post(() -> {
        if (exception instanceof ReCaptchaException) {
            Toast.makeText(context, R.string.recaptcha_request_toast, Toast.LENGTH_LONG).show();
            // Starting ReCaptcha Challenge Activity
            Intent intent = new Intent(context, ReCaptchaActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(intent);
        } else if (exception instanceof IOException) {
            Toast.makeText(context, R.string.network_error, Toast.LENGTH_LONG).show();
        } else if (exception instanceof YoutubeStreamExtractor.GemaException) {
            Toast.makeText(context, R.string.blocked_by_gema, Toast.LENGTH_LONG).show();
        } else if (exception instanceof ContentNotAvailableException) {
            Toast.makeText(context, R.string.content_not_available, Toast.LENGTH_LONG).show();
        } else {
            int errorId = exception instanceof YoutubeStreamExtractor.DecryptException ? R.string.youtube_signature_decryption_error : exception instanceof ParsingException ? R.string.parsing_error : R.string.general_error;
            ErrorActivity.reportError(handler, context, exception, MainActivity.class, null, ErrorActivity.ErrorInfo.make(userAction, serviceId == -1 ? "none" : NewPipe.getNameOfService(serviceId), url + (optionalErrorMessage == null ? "" : optionalErrorMessage), errorId));
        }
    });
}
Also used : ParsingException(org.schabi.newpipe.extractor.exceptions.ParsingException) Handler(android.os.Handler) ContentNotAvailableException(org.schabi.newpipe.extractor.exceptions.ContentNotAvailableException) Intent(android.content.Intent) InterruptedIOException(java.io.InterruptedIOException) IOException(java.io.IOException) MainActivity(org.schabi.newpipe.MainActivity) ReCaptchaException(org.schabi.newpipe.extractor.exceptions.ReCaptchaException)

Aggregations

Intent (android.content.Intent)1 Handler (android.os.Handler)1 IOException (java.io.IOException)1 InterruptedIOException (java.io.InterruptedIOException)1 MainActivity (org.schabi.newpipe.MainActivity)1 ContentNotAvailableException (org.schabi.newpipe.extractor.exceptions.ContentNotAvailableException)1 ParsingException (org.schabi.newpipe.extractor.exceptions.ParsingException)1 ReCaptchaException (org.schabi.newpipe.extractor.exceptions.ReCaptchaException)1