X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/37297fb7a9085d10c7a2c34d846f3b7088c30929..1d5087d736b823c3ce22c80975e202059c44751c:/src/com/owncloud/android/authentication/SsoWebViewClient.java diff --git a/src/com/owncloud/android/authentication/SsoWebViewClient.java b/src/com/owncloud/android/authentication/SsoWebViewClient.java index ec86667b..442ec73d 100644 --- a/src/com/owncloud/android/authentication/SsoWebViewClient.java +++ b/src/com/owncloud/android/authentication/SsoWebViewClient.java @@ -19,13 +19,18 @@ package com.owncloud.android.authentication; import java.lang.ref.WeakReference; -import com.owncloud.android.Log_OC; +import com.owncloud.android.utils.Log_OC; import android.graphics.Bitmap; +import android.net.http.SslError; import android.os.Handler; import android.os.Message; +import android.view.KeyEvent; import android.view.View; import android.webkit.CookieManager; +import android.webkit.HttpAuthHandler; +import android.webkit.SslErrorHandler; +import android.webkit.WebResourceResponse; import android.webkit.WebView; import android.webkit.WebViewClient; @@ -70,24 +75,7 @@ public class SsoWebViewClient extends WebViewClient { @Override public void onPageStarted (WebView view, String url, Bitmap favicon) { Log_OC.d(TAG, "onPageStarted : " + url); - if (url.startsWith(mTargetUrl)) { - view.setVisibility(View.GONE); - CookieManager cookieManager = CookieManager.getInstance(); - final String cookies = cookieManager.getCookie(url); - //Log_OC.d(TAG, cookies); - if (mListenerHandler != null && mListenerRef != null) { - // this is good idea because onPageStarted is not running in the UI thread - mListenerHandler.post(new Runnable() { - @Override - public void run() { - SsoWebViewClientListener listener = mListenerRef.get(); - if (listener != null) { - listener.onSsoFinished(cookies); - } - } - }); - } - } + super.onPageStarted(view, url, favicon); } @Override @@ -111,6 +99,7 @@ public class SsoWebViewClient extends WebViewClient { mLastReloadedUrlAtError = failingUrl; } else { mLastReloadedUrlAtError = null; + super.onReceivedError(view, errorCode, description, failingUrl); } } @@ -118,9 +107,28 @@ public class SsoWebViewClient extends WebViewClient { public void onPageFinished (WebView view, String url) { Log_OC.d(TAG, "onPageFinished : " + url); mLastReloadedUrlAtError = null; + if (url.startsWith(mTargetUrl)) { + view.setVisibility(View.GONE); + CookieManager cookieManager = CookieManager.getInstance(); + final String cookies = cookieManager.getCookie(url); + Log_OC.d(TAG, "Cookies: " + cookies); + if (mListenerHandler != null && mListenerRef != null) { + // this is good idea because onPageFinished is not running in the UI thread + mListenerHandler.post(new Runnable() { + @Override + public void run() { + SsoWebViewClientListener listener = mListenerRef.get(); + if (listener != null) { + // Send Cookies to the listener + listener.onSsoFinished(cookies); + } + } + }); + } + } } - /* + @Override public void doUpdateVisitedHistory (WebView view, String url, boolean isReload) { Log_OC.d(TAG, "doUpdateVisitedHistory : " + url); @@ -129,6 +137,7 @@ public class SsoWebViewClient extends WebViewClient { @Override public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) { Log_OC.d(TAG, "onReceivedSslError : " + error); + handler.proceed(); } @Override @@ -168,5 +177,5 @@ public class SsoWebViewClient extends WebViewClient { Log_OC.d(TAG, "shouldOverrideKeyEvent : " + event); return false; } - */ + }