From 0a4dfe442c0fe17c262f1f1642d963ae1e32c621 Mon Sep 17 00:00:00 2001 From: Shohei Kameda Date: Sun, 4 Jun 2017 11:13:27 +0900 Subject: [PATCH] added handling for cancelation --- .../oauth/OAuthManagerDialogFragment.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/android/src/main/java/io/fullstack/oauth/OAuthManagerDialogFragment.java b/android/src/main/java/io/fullstack/oauth/OAuthManagerDialogFragment.java index 6398199..13e238f 100644 --- a/android/src/main/java/io/fullstack/oauth/OAuthManagerDialogFragment.java +++ b/android/src/main/java/io/fullstack/oauth/OAuthManagerDialogFragment.java @@ -35,6 +35,9 @@ import im.delight.android.webview.AdvancedWebView; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + public class OAuthManagerDialogFragment extends DialogFragment implements AdvancedWebView.Listener { private static final int WEBVIEW_TAG = 100001; @@ -195,6 +198,15 @@ public void onReceivedError(WebView view, int code, String desc, String failingU private boolean interceptUrl(WebView view, String url, boolean loadUrl) { Log.i(TAG, "interceptUrl called with url: " + url); + + // url would be http://localhost/twitter?denied=xxx when it's canceled + Pattern p = Pattern.compile("\\S*denied\\S*"); + Matcher m = p.matcher(url); + if(m.matches()){ + Log.i(TAG, "authentication is canceled"); + return false; + } + if (isCallbackUri(url, mController.getCallbackUrl())) { mController.getAccessToken(mWebView, url); return true; @@ -326,4 +338,4 @@ public static int convertDpToPixel(float dp, Context context){ float px = dp * ((float)metrics.densityDpi / DisplayMetrics.DENSITY_DEFAULT); return (int)px; } -} \ No newline at end of file +}