diff --git a/src/org/geometerplus/android/fbreader/network/AuthenticationActivity.java b/src/org/geometerplus/android/fbreader/network/AuthenticationActivity.java index 61000ef8d..4685cb57e 100644 --- a/src/org/geometerplus/android/fbreader/network/AuthenticationActivity.java +++ b/src/org/geometerplus/android/fbreader/network/AuthenticationActivity.java @@ -74,7 +74,7 @@ public class AuthenticationActivity extends Activity { } } - static class CredentialsCreator extends ZLNetworkManager.BasicCredentialsCreator { + static class CredentialsCreator extends ZLNetworkManager.CredentialsCreator { private final Context myContext; CredentialsCreator(Context context) { @@ -210,8 +210,8 @@ public class AuthenticationActivity extends Activity { private void finishOk(String username, String password) { final ZLNetworkManager.CredentialsCreator creator = ZLNetworkManager.Instance().getCredentialsCreator(); - if (creator instanceof CredentialsCreator) { - ((CredentialsCreator)creator).setCredentials(username, password); + if (creator != null) { + creator.setCredentials(username, password); } finish(); } @@ -280,8 +280,8 @@ public class AuthenticationActivity extends Activity { protected void onStop() { final ZLNetworkManager.CredentialsCreator creator = ZLNetworkManager.Instance().getCredentialsCreator(); - if (creator instanceof CredentialsCreator) { - ((CredentialsCreator)creator).release(); + if (creator != null) { + creator.release(); } super.onStop(); } diff --git a/src/org/geometerplus/zlibrary/core/network/ZLNetworkManager.java b/src/org/geometerplus/zlibrary/core/network/ZLNetworkManager.java index 1c1c43874..b458a34d7 100644 --- a/src/org/geometerplus/zlibrary/core/network/ZLNetworkManager.java +++ b/src/org/geometerplus/zlibrary/core/network/ZLNetworkManager.java @@ -52,11 +52,7 @@ public class ZLNetworkManager { return ourManager; } - public static interface CredentialsCreator { - Credentials createCredentials(String scheme, AuthScope scope); - } - - public static abstract class BasicCredentialsCreator implements ZLNetworkManager.CredentialsCreator { + public static abstract class CredentialsCreator { private volatile String myUsername; private volatile String myPassword; @@ -71,7 +67,9 @@ public class ZLNetworkManager { } public Credentials createCredentials(String scheme, AuthScope scope) { - if (!"basic".equalsIgnoreCase(scope.getScheme())) { + final String authScheme = scope.getScheme(); + if (!"basic".equalsIgnoreCase(authScheme) && + !"digest".equalsIgnoreCase(authScheme)) { return null; }