From f02cc1636e4622300a0cc14cb7971c66f46e067c Mon Sep 17 00:00:00 2001 From: Floens Date: Sun, 26 Apr 2015 23:56:39 +0200 Subject: [PATCH] Some captcha fixes --- .../app/src/main/assets/captcha/captcha.html | 15 ++++++--------- .../floens/chan/ui/fragment/ReplyFragment.java | 4 ++-- .../floens/chan/ui/layout/CaptchaLayout.java | 18 ++++++++++++++++-- 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/Clover/app/src/main/assets/captcha/captcha.html b/Clover/app/src/main/assets/captcha/captcha.html index ad2a4ee6..f5913829 100644 --- a/Clover/app/src/main/assets/captcha/captcha.html +++ b/Clover/app/src/main/assets/captcha/captcha.html @@ -3,14 +3,6 @@ - +
Loading captcha...
+
diff --git a/Clover/app/src/main/java/org/floens/chan/ui/fragment/ReplyFragment.java b/Clover/app/src/main/java/org/floens/chan/ui/fragment/ReplyFragment.java index e41101e9..eeda3f03 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/fragment/ReplyFragment.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/fragment/ReplyFragment.java @@ -204,7 +204,7 @@ public class ReplyFragment extends DialogFragment implements CaptchaLayout.Captc String baseUrl = loadable.isThreadMode() ? ChanUrls.getThreadUrlDesktop(loadable.board, loadable.no) : ChanUrls.getBoardUrlDesktop(loadable.board); captchaLayout.initCaptcha(baseUrl, ChanUrls.getCaptchaSiteKey(), - ThemeHelper.getInstance().getTheme().isLightTheme, ChanApplication.getReplyManager().getUserAgent(), this); + ThemeHelper.getInstance().getTheme().isLightTheme, ChanApplication.getInstance().getUserAgent(), this); } else { Logger.e(TAG, "Loadable in ReplyFragment was null"); closeReply(); @@ -578,11 +578,11 @@ public class ReplyFragment extends DialogFragment implements CaptchaLayout.Captc cancelButton.setEnabled(true); setClosable(true); captchaResponse = null; - captchaLayout.reset(); if (ChanPreferences.getPassEnabled()) { flipPage(0); } else { flipPage(1); + captchaLayout.reset(); } } else if (response.isSuccessful) { shouldSaveDraft = false; diff --git a/Clover/app/src/main/java/org/floens/chan/ui/layout/CaptchaLayout.java b/Clover/app/src/main/java/org/floens/chan/ui/layout/CaptchaLayout.java index 982fc8cd..e94e39b8 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/layout/CaptchaLayout.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/layout/CaptchaLayout.java @@ -21,7 +21,10 @@ import android.annotation.SuppressLint; import android.content.Context; import android.text.TextUtils; import android.util.AttributeSet; +import android.util.Log; +import android.webkit.ConsoleMessage; import android.webkit.JavascriptInterface; +import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebView; @@ -29,6 +32,8 @@ import org.floens.chan.utils.IOUtils; import org.floens.chan.utils.Utils; public class CaptchaLayout extends WebView { + private static final String TAG = "CaptchaLayout"; + private CaptchaCallback callback; private boolean loaded = false; private String baseUrl; @@ -58,6 +63,15 @@ public class CaptchaLayout extends WebView { settings.setJavaScriptEnabled(true); settings.setUserAgentString(userAgent); + setWebChromeClient(new WebChromeClient() { + @Override + public boolean onConsoleMessage(ConsoleMessage consoleMessage) { + Log.i(TAG, consoleMessage.lineNumber() + ":" + consoleMessage.message() + " " + consoleMessage.sourceId()); + return true; + } + }); + setBackgroundColor(0x00000000); + addJavascriptInterface(new CaptchaInterface(this), "CaptchaCallback"); } @@ -94,9 +108,9 @@ public class CaptchaLayout extends WebView { } public interface CaptchaCallback { - public void captchaLoaded(CaptchaLayout captchaLayout); + void captchaLoaded(CaptchaLayout captchaLayout); - public void captchaEntered(CaptchaLayout captchaLayout, String response); + void captchaEntered(CaptchaLayout captchaLayout, String response); } public static class CaptchaInterface {