+ } else { // The website is not encrypted.
+ // Set the title.
+ dialogBuilder.setTitle(R.string.unencrypted_website)
+
+ // Set the Layout. The parent view is `null` because it will be assigned by the alert dialog.
+ dialogBuilder.setView(layoutInflater.inflate(R.layout.unencrypted_website_dialog, null))
+
+ // Create an alert dialog from the builder.
+ val alertDialog = dialogBuilder.create()
+
+ // Disable screenshots if not allowed.
+ if (!allowScreenshots) {
+ // Disable screenshots.
+ alertDialog.window!!.addFlags(WindowManager.LayoutParams.FLAG_SECURE)
+ }
+
+ // Return the alert dialog.
+ return alertDialog
+ }
+ }
+
+ override fun onSaveInstanceState(savedInstanceState: Bundle) {
+ // Run the default commands.
+ super.onSaveInstanceState(savedInstanceState)
+
+ // Get the favorite icon bitmap drawable.
+ val favoriteIconBitmapDrawable = favoriteIconDrawable as BitmapDrawable
+
+ // Get the favorite icon bitmap.
+ val favoriteIconBitmap = favoriteIconBitmapDrawable.bitmap
+
+ // Create a favorite icon byte array output stream.
+ val favoriteIconByteArrayOutputStream = ByteArrayOutputStream()
+
+ // Convert the bitmap to a PNG and place it in the byte array output stream. `0` is for lossless compression (the only option for a PNG).
+ favoriteIconBitmap.compress(Bitmap.CompressFormat.PNG, 0, favoriteIconByteArrayOutputStream)
+
+ // Convert the favorite icon byte array output stream to a byte array.
+ val favoriteIconByteArray = favoriteIconByteArrayOutputStream.toByteArray()
+
+ // Save the common class variables.
+ savedInstanceState.putBoolean(HAS_SSL_CERTIFICATE, hasSslCertificate)
+ savedInstanceState.putByteArray(FAVORITE_ICON, favoriteIconByteArray)
+
+ // Save the SSL certificate strings if they exist.
+ if (hasSslCertificate) {
+ savedInstanceState.putString(DOMAIN, domainString)
+ savedInstanceState.putString(IP_ADDRESSES, ipAddresses)
+ savedInstanceState.putString(ISSUED_TO_CNAME, issuedToCName)
+ savedInstanceState.putString(ISSUED_TO_ONAME, issuedToOName)
+ savedInstanceState.putString(ISSUED_TO_UNAME, issuedToUName)
+ savedInstanceState.putString(ISSUED_BY_CNAME, issuedByCName)
+ savedInstanceState.putString(ISSUED_BY_ONAME, issuedByOName)
+ savedInstanceState.putString(ISSUED_BY_UNAME, issuedByUName)
+ savedInstanceState.putLong(START_DATE, startDate.time)
+ savedInstanceState.putLong(END_DATE, endDate.time)