From cb28b2cfe64bb1b8e1fe379aa59bf1b0e93ae790 Mon Sep 17 00:00:00 2001 From: John Reck Date: Fri, 26 Aug 2011 17:39:44 -0700 Subject: Security warning dialog update Bug: 5222843 Change-Id: I0d387a0564c82e1234ea14dee723a52e1ba9cade --- res/layout/ssl_warning.xml | 37 +++++--------- res/layout/ssl_warnings.xml | 50 ------------------ src/com/android/browser/PageDialogsHandler.java | 42 +++++++++------ src/com/android/browser/Tab.java | 68 +++++++------------------ 4 files changed, 59 insertions(+), 138 deletions(-) delete mode 100644 res/layout/ssl_warnings.xml diff --git a/res/layout/ssl_warning.xml b/res/layout/ssl_warning.xml index 749629d..a54dfb8 100644 --- a/res/layout/ssl_warning.xml +++ b/res/layout/ssl_warning.xml @@ -14,27 +14,18 @@ limitations under the License. --> - - - - - - - + - diff --git a/res/layout/ssl_warnings.xml b/res/layout/ssl_warnings.xml deleted file mode 100644 index 3fe73d3..0000000 --- a/res/layout/ssl_warnings.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/src/com/android/browser/PageDialogsHandler.java b/src/com/android/browser/PageDialogsHandler.java index 3f64758..14373cb 100644 --- a/src/com/android/browser/PageDialogsHandler.java +++ b/src/com/android/browser/PageDialogsHandler.java @@ -284,6 +284,13 @@ public class PageDialogsHandler { .show(); } + private void addError(LayoutInflater inflater, LinearLayout parent, int error) { + TextView textView = (TextView) inflater.inflate(R.layout.ssl_warning, + parent, false); + textView.setText(error); + parent.addView(textView); + } + /** * Displays the SSL error certificate dialog. * @param view The target web-view. @@ -306,23 +313,26 @@ public class PageDialogsHandler { final LinearLayout placeholder = (LinearLayout)certificateView.findViewById(com.android.internal.R.id.placeholder); - LinearLayout ll = (LinearLayout)factory.inflate(R.layout.ssl_warning, placeholder); - TextView textView = (TextView)ll.findViewById(R.id.warning); - if (error.hasError(SslError.SSL_UNTRUSTED)) { - textView.setText(R.string.ssl_untrusted); - } else if (error.hasError(SslError.SSL_IDMISMATCH)) { - textView.setText(R.string.ssl_mismatch); - } else if (error.hasError(SslError.SSL_EXPIRED)) { - textView.setText(R.string.ssl_expired); - } else if (error.hasError(SslError.SSL_NOTYETVALID)) { - textView.setText(R.string.ssl_not_yet_valid); - } else if (error.hasError(SslError.SSL_DATE_INVALID)) { - textView.setText(R.string.ssl_date_invalid); - } else if (error.hasError(SslError.SSL_INVALID)) { - textView.setText(R.string.ssl_invalid); - } else { - textView.setText(R.string.ssl_unknown); + addError(factory, placeholder, R.string.ssl_untrusted); + } + if (error.hasError(SslError.SSL_IDMISMATCH)) { + addError(factory, placeholder, R.string.ssl_mismatch); + } + if (error.hasError(SslError.SSL_EXPIRED) || true) { + addError(factory, placeholder, R.string.ssl_expired); + } + if (error.hasError(SslError.SSL_NOTYETVALID)) { + addError(factory, placeholder, R.string.ssl_not_yet_valid); + } + if (error.hasError(SslError.SSL_DATE_INVALID) || true) { + addError(factory, placeholder, R.string.ssl_date_invalid); + } + if (error.hasError(SslError.SSL_INVALID)) { + addError(factory, placeholder, R.string.ssl_invalid); + } + if (placeholder.getChildCount() == 0) { + addError(factory, placeholder, R.string.ssl_unknown); } mSSLCertificateOnErrorHandler = handler; diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java index d6106a5..c519c91 100644 --- a/src/com/android/browser/Tab.java +++ b/src/com/android/browser/Tab.java @@ -744,75 +744,45 @@ class Tab implements PictureListener { return; } if (mSettings.showSecurityWarnings()) { - final LayoutInflater factory = - LayoutInflater.from(mContext); - final View warningsView = - factory.inflate(R.layout.ssl_warnings, null); - final LinearLayout placeholder = - (LinearLayout)warningsView.findViewById(R.id.placeholder); - - if (error.hasError(SslError.SSL_UNTRUSTED)) { - LinearLayout ll = (LinearLayout)factory - .inflate(R.layout.ssl_warning, null); - ((TextView)ll.findViewById(R.id.warning)) - .setText(R.string.ssl_untrusted); - placeholder.addView(ll); - } - - if (error.hasError(SslError.SSL_IDMISMATCH)) { - LinearLayout ll = (LinearLayout)factory - .inflate(R.layout.ssl_warning, null); - ((TextView)ll.findViewById(R.id.warning)) - .setText(R.string.ssl_mismatch); - placeholder.addView(ll); - } - - if (error.hasError(SslError.SSL_EXPIRED)) { - LinearLayout ll = (LinearLayout)factory - .inflate(R.layout.ssl_warning, null); - ((TextView)ll.findViewById(R.id.warning)) - .setText(R.string.ssl_expired); - placeholder.addView(ll); - } - - if (error.hasError(SslError.SSL_NOTYETVALID)) { - LinearLayout ll = (LinearLayout)factory - .inflate(R.layout.ssl_warning, null); - ((TextView)ll.findViewById(R.id.warning)) - .setText(R.string.ssl_not_yet_valid); - placeholder.addView(ll); - } - - new AlertDialog.Builder(mContext).setTitle( - R.string.security_warning).setIcon( - android.R.drawable.ic_dialog_alert).setView( - warningsView).setPositiveButton(R.string.ssl_continue, + new AlertDialog.Builder(mContext) + .setTitle(R.string.security_warning) + .setMessage(R.string.ssl_warnings_header) + .setIcon(android.R.drawable.ic_dialog_alert) + .setPositiveButton(R.string.ssl_continue, new DialogInterface.OnClickListener() { + @Override public void onClick(DialogInterface dialog, int whichButton) { handler.proceed(); } - }).setNeutralButton(R.string.view_certificate, + }) + .setNeutralButton(R.string.view_certificate, new DialogInterface.OnClickListener() { + @Override public void onClick(DialogInterface dialog, int whichButton) { - mWebViewController.showSslCertificateOnError(view, - handler, error); + mWebViewController.showSslCertificateOnError( + view, handler, error); } - }).setNegativeButton(R.string.ssl_go_back, + }) + .setNegativeButton(R.string.ssl_go_back, new DialogInterface.OnClickListener() { + @Override public void onClick(DialogInterface dialog, int whichButton) { dialog.cancel(); } - }).setOnCancelListener( + }) + .setOnCancelListener( new DialogInterface.OnCancelListener() { + @Override public void onCancel(DialogInterface dialog) { handler.cancel(); setLockIconType(LockIcon.LOCK_ICON_UNSECURE); mWebViewController.onUserCanceledSsl(Tab.this); } - }).show(); + }) + .show(); } else { handler.proceed(); } -- cgit v1.1