package me.devsaki.hentoid.activities;
import android.annotation.TargetApi;
import android.graphics.Bitmap;
import android.os.AsyncTask;
import android.os.Build;
import android.webkit.WebResourceRequest;
import android.webkit.WebView;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import me.devsaki.hentoid.database.domains.Content;
import me.devsaki.hentoid.enums.Site;
import me.devsaki.hentoid.parsers.HentaiCafeParser;
import me.devsaki.hentoid.util.Helper;
import me.devsaki.hentoid.util.LogHelper;
import me.devsaki.hentoid.views.ObservableWebView;
import static me.devsaki.hentoid.util.Helper.executeAsyncTask;
/**
* Created by avluis on 07/21/2016.
* Implements Hentai Cafe source
*/
public class HentaiCafeActivity extends BaseWebActivity {
private final static String TAG = LogHelper.makeLogTag(HentaiCafeActivity.class);
@Override
void setSite(Site site) {
super.setSite(Site.HENTAICAFE);
}
@Override
void setWebView(ObservableWebView webView) {
webView.setWebViewClient(new HentaiCafeWebViewClient());
super.setWebView(webView);
}
@Override
void backgroundRequest(String extra) {
LogHelper.d(TAG, extra);
Helper.toast("Processing...");
executeAsyncTask(new HtmlLoader(), extra);
}
private class HentaiCafeWebViewClient extends CustomWebViewClient {
@SuppressWarnings("deprecation") // From API 24 we should use another overload
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
try {
URL u = new URL(url);
return !(u.getHost().endsWith("hentai.cafe"));
} catch (MalformedURLException e) {
LogHelper.d(TAG, "Malformed URL");
}
return false;
}
@TargetApi(Build.VERSION_CODES.N)
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
try {
URL u = new URL(request.getUrl().toString());
return !(u.getHost().endsWith("hentai.cafe"));
} catch (MalformedURLException e) {
LogHelper.d(TAG, "Malformed URL");
}
return false;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
if (url.contains("//hentai.cafe/")) {
executeAsyncTask(new HtmlLoader(), url);
}
}
}
private class HtmlLoader extends AsyncTask<String, Integer, Content> {
@Override
protected Content doInBackground(String... params) {
String url = params[0];
try {
processContent(HentaiCafeParser.parseContent(url));
} catch (IOException e) {
LogHelper.e(TAG, e, "Error parsing content.");
}
return null;
}
}
}