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 {