From: masensio Date: Mon, 10 Mar 2014 09:53:11 +0000 (+0100) Subject: OC-3212: Show appropiate error messages for SslError in SSL error dialog shown by... X-Git-Tag: oc-android-1.5.5~15^2~6 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/45bc02fbe527ab9b19b806438af7aa828bd54af2?ds=inline;hp=-c OC-3212: Show appropiate error messages for SslError in SSL error dialog shown by WebViewClient --- 45bc02fbe527ab9b19b806438af7aa828bd54af2 diff --git a/res/layout/ssl_untrusted_cert_layout.xml b/res/layout/ssl_untrusted_cert_layout.xml index ef57de63..6a30c2e0 100644 --- a/res/layout/ssl_untrusted_cert_layout.xml +++ b/res/layout/ssl_untrusted_cert_layout.xml @@ -75,6 +75,16 @@ android:textAppearance="?android:attr/textAppearanceSmall" /> + + Signature: Algorithm: The certificate could not be shown. + - No information about the error This is a placeholder placeholder.txt diff --git a/src/com/owncloud/android/ui/dialog/SslUntrustedCertDialog.java b/src/com/owncloud/android/ui/dialog/SslUntrustedCertDialog.java index ec33ddf0..5a67e978 100644 --- a/src/com/owncloud/android/ui/dialog/SslUntrustedCertDialog.java +++ b/src/com/owncloud/android/ui/dialog/SslUntrustedCertDialog.java @@ -141,7 +141,7 @@ public class SslUntrustedCertDialog extends SslUntrustedCertDialogABSTRACT { // Create a view by inflating desired layout mView = inflater.inflate(R.layout.ssl_untrusted_cert_layout, container, false); - updateException(mException); + updateMessageException(mException, mError); Button ok = (Button) mView.findViewById(R.id.ok); ok.setOnClickListener(new OnClickListener() { @@ -224,35 +224,50 @@ public class SslUntrustedCertDialog extends SslUntrustedCertDialogABSTRACT { } - private void updateException(CertificateCombinedException exception) { + private void updateMessageException(CertificateCombinedException exception, SslError error) { /// clean mView.findViewById(R.id.reason_cert_not_trusted).setVisibility(View.GONE); mView.findViewById(R.id.reason_cert_expired).setVisibility(View.GONE); mView.findViewById(R.id.reason_cert_not_yet_valid).setVisibility(View.GONE); mView.findViewById(R.id.reason_hostname_not_verified).setVisibility(View.GONE); + mView.findViewById(R.id.reason_no_info_about_error).setVisibility(View.GONE); mView.findViewById(R.id.details_scroll).setVisibility(View.GONE); - - if (mException != null) { + + if (exception != null) { /// refresh - if (mException.getCertPathValidatorException() != null) { + if (exception.getCertPathValidatorException() != null) { ((TextView)mView.findViewById(R.id.reason_cert_not_trusted)).setVisibility(View.VISIBLE); } - if (mException.getCertificateExpiredException() != null) { + if (exception.getCertificateExpiredException() != null) { ((TextView)mView.findViewById(R.id.reason_cert_expired)).setVisibility(View.VISIBLE); } - if (mException.getCertificateNotYetValidException() != null) { + if (exception.getCertificateNotYetValidException() != null) { ((TextView)mView.findViewById(R.id.reason_cert_not_yet_valid)).setVisibility(View.VISIBLE); } - if (mException.getSslPeerUnverifiedException() != null ) { + if (exception.getSslPeerUnverifiedException() != null) { ((TextView)mView.findViewById(R.id.reason_hostname_not_verified)).setVisibility(View.VISIBLE); } + } else if ( error != null) { + /// refresh + if (error.getPrimaryError() == SslError.SSL_UNTRUSTED) { + ((TextView)mView.findViewById(R.id.reason_cert_not_trusted)).setVisibility(View.VISIBLE); + + } else if (error.getPrimaryError() == SslError.SSL_EXPIRED) { + ((TextView)mView.findViewById(R.id.reason_cert_expired)).setVisibility(View.VISIBLE); + + } else if (error.getPrimaryError() == SslError.SSL_NOTYETVALID) { + ((TextView)mView.findViewById(R.id.reason_cert_not_yet_valid)).setVisibility(View.VISIBLE); + + } else if (error.getPrimaryError() == SslError.SSL_IDMISMATCH) { + ((TextView)mView.findViewById(R.id.reason_hostname_not_verified)).setVisibility(View.VISIBLE); + } } } diff --git a/src/com/owncloud/android/ui/dialog/SslUntrustedCertDialogForEmptySslError.java b/src/com/owncloud/android/ui/dialog/SslUntrustedCertDialogForEmptySslError.java index 7495ba5e..d9173bb0 100644 --- a/src/com/owncloud/android/ui/dialog/SslUntrustedCertDialogForEmptySslError.java +++ b/src/com/owncloud/android/ui/dialog/SslUntrustedCertDialogForEmptySslError.java @@ -114,6 +114,8 @@ public class SslUntrustedCertDialogForEmptySslError extends SslUntrustedCertDial ((ViewGroup)mView.getParent()).removeView(mView); } + showNoMessageError(); + Button ok = (Button) mView.findViewById(R.id.ok); ok.setOnClickListener(new OnClickListener() { @@ -247,4 +249,15 @@ public class SslUntrustedCertDialogForEmptySslError extends SslUntrustedCertDial ((TextView)mView.findViewById(R.id.value_signature)).setVisibility(View.GONE); } + private void showNoMessageError() { + /// clean + mView.findViewById(R.id.reason_cert_not_trusted).setVisibility(View.GONE); + mView.findViewById(R.id.reason_cert_expired).setVisibility(View.GONE); + mView.findViewById(R.id.reason_cert_not_yet_valid).setVisibility(View.GONE); + mView.findViewById(R.id.reason_hostname_not_verified).setVisibility(View.GONE); + mView.findViewById(R.id.details_scroll).setVisibility(View.GONE); + + mView.findViewById(R.id.reason_no_info_about_error).setVisibility(View.VISIBLE); + + } }