From 40513d4753bb0e52590f78f48113541b5d304ffe Mon Sep 17 00:00:00 2001 From: Florens Douwes Date: Tue, 27 May 2014 13:58:18 +0200 Subject: [PATCH] Add an AlertDialog with a WebView for unknown pass login responses. --- .../chan/core/manager/ReplyManager.java | 3 ++- .../ui/activity/PassSettingsActivity.java | 19 ++++++++++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/Clover/app/src/main/java/org/floens/chan/core/manager/ReplyManager.java b/Clover/app/src/main/java/org/floens/chan/core/manager/ReplyManager.java index c1a72bb1..43a4af17 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/manager/ReplyManager.java +++ b/Clover/app/src/main/java/org/floens/chan/core/manager/ReplyManager.java @@ -238,7 +238,7 @@ public class ReplyManager { } else if (responseString.contains("Incorrect Token or PIN")) { e.message = "Incorrect Token or PIN"; } else { - e.message = "Unknown error"; + e.unknownError = true; } } } @@ -254,6 +254,7 @@ public class ReplyManager { public static class PassResponse { public boolean isError = false; + public boolean unknownError = false; public String responseData = ""; public String message = ""; public String passId; diff --git a/Clover/app/src/main/java/org/floens/chan/ui/activity/PassSettingsActivity.java b/Clover/app/src/main/java/org/floens/chan/ui/activity/PassSettingsActivity.java index 92404736..37bd50fa 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/activity/PassSettingsActivity.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/activity/PassSettingsActivity.java @@ -30,6 +30,8 @@ import android.view.LayoutInflater; import android.view.Menu; import android.view.View; import android.view.ViewGroup; +import android.webkit.WebSettings; +import android.webkit.WebView; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.Switch; @@ -170,9 +172,20 @@ public class PassSettingsActivity extends Activity implements OnCheckedChangeLis if (getActivity() == null) return; - new AlertDialog.Builder(getActivity()).setMessage(response.message) - .setNeutralButton(R.string.ok, null).create().show(); - ChanPreferences.setPassId(response.passId); + if (response.unknownError) { + WebView webView = new WebView(getActivity()); + WebSettings settings = webView.getSettings(); + settings.setSupportZoom(true); + + webView.loadData(response.responseData, "text/html", null); + + new AlertDialog.Builder(getActivity()).setView(webView).setNeutralButton(R.string.ok, null).show(); + } else { + new AlertDialog.Builder(getActivity()).setMessage(response.message) + .setNeutralButton(R.string.ok, null).show(); + ChanPreferences.setPassId(response.passId); + } + updateLoginButton(); } });