Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: libadblockplus-android-webviewapp/src/org/adblockplus/libadblockplus/webviewapp/MainActivity.java

Issue 29351744: Issue 4399 - Add WebView inheritor with ad blocking (Closed)
Patch Set: now loading elemhide selectors beforehand in bg thread Created Sept. 20, 2016, 11:42 a.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: libadblockplus-android-webviewapp/src/org/adblockplus/libadblockplus/webviewapp/MainActivity.java
diff --git a/libadblockplus-android-webviewapp/src/org/adblockplus/libadblockplus/webviewapp/MainActivity.java b/libadblockplus-android-webviewapp/src/org/adblockplus/libadblockplus/webviewapp/MainActivity.java
new file mode 100644
index 0000000000000000000000000000000000000000..fafeca853bcc3d43459b0f1efd7d59359312b3b7
--- /dev/null
+++ b/libadblockplus-android-webviewapp/src/org/adblockplus/libadblockplus/webviewapp/MainActivity.java
@@ -0,0 +1,136 @@
+/*
+ * This file is part of Adblock Plus <https://adblockplus.org/>,
+ * Copyright (C) 2006-2016 Eyeo GmbH
+ *
+ * Adblock Plus is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 3 as
+ * published by the Free Software Foundation.
+ *
+ * Adblock Plus is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package org.adblockplus.libadblockplus.webviewapp;
+
+import org.adblockplus.android.AdblockWebView;
+
+import android.app.Activity;
+import android.graphics.Bitmap;
+import android.os.Bundle;
+import android.view.View;
+import android.webkit.WebChromeClient;
+import android.webkit.WebView;
+import android.webkit.WebViewClient;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ProgressBar;
+
+public class MainActivity extends Activity
+{
+ private static final boolean DEVELOPMENT_BUILD = true;
+
+ private ProgressBar progress;
+ private EditText url;
+ private Button ok;
+ private AdblockWebView webView;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+
+ bindControls();
+ initControls();
+ }
+
+ private void bindControls()
+ {
+ url = (EditText) findViewById(R.id.main_url);
+ ok = (Button) findViewById(R.id.main_ok);
+ progress = (ProgressBar) findViewById(R.id.main_progress);
+ webView = (AdblockWebView) findViewById(R.id.main_webview);
+ }
+
+ private void setProgressVisible(boolean visible)
+ {
+ progress.setVisibility(visible ? View.VISIBLE : View.INVISIBLE);
+ }
+
+ private WebViewClient webViewClient = new WebViewClient()
+ {
+ @Override
+ public void onPageStarted(WebView view, String url, Bitmap favicon)
+ {
+ setProgressVisible(true);
+ }
+
+ @Override
+ public void onPageFinished(WebView view, String url)
+ {
+ setProgressVisible(false);
+ }
+ };
+
+ private WebChromeClient webChromeClient = new WebChromeClient()
+ {
+ @Override
+ public void onProgressChanged(WebView view, int newProgress)
+ {
+ progress.setProgress(newProgress);
+ }
+ };
+
+ private void initControls()
+ {
+ ok.setOnClickListener(new View.OnClickListener()
+ {
+ @Override
+ public void onClick(View view)
+ {
+ loadUrl();
+ }
+ });
+
+ setProgressVisible(false);
+
+ // to get debug/warning log output
+ webView.setDebugMode(DEVELOPMENT_BUILD);
+
+ // render as fast as we can
+ webView.setAllowDrawDelay(0);
+
+ // to show that external WebViewClient is still working
+ webView.setWebViewClient(webViewClient);
+
+ // to show that external WebChromeClient is still working
+ webView.setWebChromeClient(webChromeClient);
+ }
+
+ private String prepareUrl(String url)
+ {
+ if (!url.startsWith("http"))
+ url = "http://" + url;
+
+ // make sure url is valid URL
+ return url;
+ }
+
+ private void loadUrl()
+ {
+ webView.loadUrl(prepareUrl(url.getText().toString()));
+ }
+
+ @Override
+ protected void onDestroy()
+ {
+ webView.dispose();
+
+ super.onDestroy();
+ }
+}

Powered by Google App Engine
This is Rietveld