X-Git-Url: https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fcom%2Fstoutner%2Fprivacybrowser%2Fdialogs%2FViewSslCertificateDialog.java;h=a24dedd1021a15da9fb07508f12fbdcd9920ea00;hp=5004f2314596b210acd850de64ec92d7d469e505;hb=f0393ca22075be3e5fe9199c7db87381256236fa;hpb=ff636c77836983a078f33e60616204518dab61d1 diff --git a/app/src/main/java/com/stoutner/privacybrowser/dialogs/ViewSslCertificateDialog.java b/app/src/main/java/com/stoutner/privacybrowser/dialogs/ViewSslCertificateDialog.java index 5004f231..a24dedd1 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/dialogs/ViewSslCertificateDialog.java +++ b/app/src/main/java/com/stoutner/privacybrowser/dialogs/ViewSslCertificateDialog.java @@ -22,13 +22,13 @@ package com.stoutner.privacybrowser.dialogs; import android.annotation.SuppressLint; import android.app.AlertDialog; import android.app.Dialog; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; +import android.content.SharedPreferences; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.net.Uri; import android.net.http.SslCertificate; import android.os.Bundle; +import android.preference.PreferenceManager; import android.text.SpannableStringBuilder; import android.text.Spanned; import android.text.style.ForegroundColorSpan; @@ -45,7 +45,6 @@ import com.stoutner.privacybrowser.R; import com.stoutner.privacybrowser.fragments.WebViewTabFragment; import com.stoutner.privacybrowser.views.NestedScrollWebView; -import java.io.ByteArrayOutputStream; import java.text.DateFormat; import java.util.Calendar; import java.util.Date; @@ -53,22 +52,12 @@ import java.util.Date; // `@SuppressLing("InflateParams")` removes the warning about using `null` as the parent view group when inflating the `AlertDialog`. @SuppressLint("InflateParams") public class ViewSslCertificateDialog extends DialogFragment { - public static ViewSslCertificateDialog displayDialog(long webViewFragmentId, Bitmap favoriteIconBitmap) { - // Create a favorite icon byte array output stream. - ByteArrayOutputStream favoriteIconByteArrayOutputStream = new ByteArrayOutputStream(); - - // Convert the favorite icon 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 byte array output stream to a byte array. - byte[] favoriteIconByteArray = favoriteIconByteArrayOutputStream.toByteArray(); - + public static ViewSslCertificateDialog displayDialog(long webViewFragmentId) { // Create an arguments bundle. Bundle argumentsBundle = new Bundle(); - // Store the variables in the bundle. + // Store the WebView fragment ID in the bundle. argumentsBundle.putLong("webview_fragment_id", webViewFragmentId); - argumentsBundle.putByteArray("favorite_icon_byte_array", favoriteIconByteArray); // Create a new instance of the dialog. ViewSslCertificateDialog viewSslCertificateDialog = new ViewSslCertificateDialog(); @@ -94,15 +83,6 @@ public class ViewSslCertificateDialog extends DialogFragment { // Remove the incorrect lint warning below that `getArguments().getLong()` might be null. assert arguments != null; - // Get the favorite icon byte array. - byte[] favoriteIconByteArray = arguments.getByteArray("favorite_icon_byte_array"); - - // Remove the incorrect lint warning below that the favorite icon byte array might be null. - assert favoriteIconByteArray != null; - - // Convert the favorite icon byte array to a bitmap. - Bitmap favoriteIconBitmap = BitmapFactory.decodeByteArray(favoriteIconByteArray, 0, favoriteIconByteArray.length); - // Get the current position of this WebView fragment. int webViewPosition = MainWebViewActivity.webViewPagerAdapter.getPositionForId(arguments.getLong("webview_fragment_id")); @@ -121,15 +101,22 @@ public class ViewSslCertificateDialog extends DialogFragment { // Use a builder to create the alert dialog. AlertDialog.Builder dialogBuilder; + // Get a handle for the shared preferences. + SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext()); + + // Get the screenshot and theme preferences. + boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false); + boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false); + // Set the style according to the theme. - if (MainWebViewActivity.darkTheme) { + if (darkTheme) { dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogDark); } else { dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogLight); } // Create a drawable version of the favorite icon. - Drawable favoriteIconDrawable = new BitmapDrawable(getResources(), favoriteIconBitmap); + Drawable favoriteIconDrawable = new BitmapDrawable(getResources(), nestedScrollWebView.getFavoriteOrDefaultIcon()); // Set the icon. dialogBuilder.setIcon(favoriteIconDrawable); @@ -152,7 +139,7 @@ public class ViewSslCertificateDialog extends DialogFragment { final AlertDialog alertDialog = dialogBuilder.create(); // Disable screenshots if not allowed. - if (!MainWebViewActivity.allowScreenshots) { + if (!allowScreenshots) { // Remove the warning below that `getWindow()` might be null. assert alertDialog.getWindow() != null; @@ -174,7 +161,7 @@ public class ViewSslCertificateDialog extends DialogFragment { final AlertDialog alertDialog = dialogBuilder.create(); // Disable screenshots if not allowed. - if (!MainWebViewActivity.allowScreenshots) { + if (!allowScreenshots) { // Remove the warning below that `getWindow()` might be null. assert alertDialog.getWindow() != null; @@ -207,7 +194,7 @@ public class ViewSslCertificateDialog extends DialogFragment { String endDateLabel = getString(R.string.end_date) + " "; // Convert the formatted URL string to a URI. - Uri uri = Uri.parse(MainWebViewActivity.formattedUrlString); + Uri uri = Uri.parse(nestedScrollWebView.getUrl()); // Extract the domain name from the URI. String domainString = uri.getHost(); @@ -241,7 +228,7 @@ public class ViewSslCertificateDialog extends DialogFragment { ForegroundColorSpan blueColorSpan; // Set the blue color span according to the theme. The deprecated `getColor()` must be used until the minimum API >= 23. - if (MainWebViewActivity.darkTheme) { + if (darkTheme) { //noinspection deprecation blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.blue_400)); } else {