X-Git-Url: https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fcom%2Fstoutner%2Fprivacybrowser%2Fdialogs%2FPinnedMismatchDialog.java;h=7e86bbdb740589a78c182ab1c0c2710313b6e013;hp=2d506dc4c304eca6bcb3f4076f45ac2548f33cb8;hb=0cc9b798d6daa99959e33ff94a707516d6db8122;hpb=6b4312dc0c2d6cb059a0fbe6d4e7cd9317db34b6 diff --git a/app/src/main/java/com/stoutner/privacybrowser/dialogs/PinnedMismatchDialog.java b/app/src/main/java/com/stoutner/privacybrowser/dialogs/PinnedMismatchDialog.java index 2d506dc4..7e86bbdb 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/dialogs/PinnedMismatchDialog.java +++ b/app/src/main/java/com/stoutner/privacybrowser/dialogs/PinnedMismatchDialog.java @@ -29,11 +29,6 @@ import android.graphics.drawable.Drawable; import android.net.Uri; import android.net.http.SslCertificate; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.design.widget.TabLayout; -import android.support.v4.view.PagerAdapter; -// `AppCompatDialogFragment` is used instead of `DialogFragment` to avoid an error on API <=22. -import android.support.v7.app.AppCompatDialogFragment; import android.text.SpannableStringBuilder; import android.text.Spanned; import android.text.style.ForegroundColorSpan; @@ -43,15 +38,21 @@ import android.view.ViewGroup; import android.view.WindowManager; import android.widget.TextView; +import com.google.android.material.tabs.TabLayout; + import com.stoutner.privacybrowser.R; import com.stoutner.privacybrowser.activities.MainWebViewActivity; -import com.stoutner.privacybrowser.definitions.WrapVerticalContentViewPager; +import com.stoutner.privacybrowser.views.WrapVerticalContentViewPager; import com.stoutner.privacybrowser.helpers.DomainsDatabaseHelper; import java.text.DateFormat; import java.util.Date; -public class PinnedMismatchDialog extends AppCompatDialogFragment { +import androidx.annotation.NonNull; +import androidx.fragment.app.DialogFragment; // The AndroidX dialog fragment must be used or an error is produced on API <=22. +import androidx.viewpager.widget.PagerAdapter; + +public class PinnedMismatchDialog extends DialogFragment { // Instantiate the class variables. private PinnedMismatchListener pinnedMismatchListener; private LayoutInflater layoutInflater; @@ -82,13 +83,14 @@ public class PinnedMismatchDialog extends AppCompatDialogFragment { pinnedMismatchListener = (PinnedMismatchListener) context; } - public static PinnedMismatchDialog displayDialog(boolean pinnedSslCertificate, boolean pinnedIpAddresses) { + public static PinnedMismatchDialog displayDialog(int domainSettingsDatabaseId, boolean pinnedSslCertificate, boolean pinnedIpAddresses) { // Create an arguments bundle. Bundle argumentsBundle = new Bundle(); // Store the variables in the bundle. - argumentsBundle.putBoolean("Pinned_SSL_Certificate", pinnedSslCertificate); - argumentsBundle.putBoolean("Pinned_IP_Addresses", pinnedIpAddresses); + argumentsBundle.putInt("domain_settings_database_id", domainSettingsDatabaseId); + argumentsBundle.putBoolean("pinned_sss_certificate", pinnedSslCertificate); + argumentsBundle.putBoolean("pinned_ip_addresses", pinnedIpAddresses); // Add the arguments bundle to this instance of `PinnedMismatchDialog`. PinnedMismatchDialog thisPinnedMismatchDialog = new PinnedMismatchDialog(); @@ -123,17 +125,19 @@ public class PinnedMismatchDialog extends AppCompatDialogFragment { assert getArguments() != null; // Get the variables from the bundle. - pinnedSslCertificate = getArguments().getBoolean("Pinned_SSL_Certificate"); - pinnedIpAddresses = getArguments().getBoolean("Pinned_IP_Addresses"); + int domainSettingsDatabaseId = getArguments().getInt("domain_settings_database_id"); + pinnedSslCertificate = getArguments().getBoolean("pinned_ssl_certificate"); + pinnedIpAddresses = getArguments().getBoolean("pinned_ip_addresses"); - if (MainWebViewActivity.favoriteIconBitmap.equals(MainWebViewActivity.favoriteIconDefaultBitmap)) { + // Set the favorite icon as the dialog icon if it exists. + if (MainWebViewActivity.favoriteIconBitmap.equals(MainWebViewActivity.favoriteIconDefaultBitmap)) { // There is no favorite icon. // Set the icon according to the theme. if (MainWebViewActivity.darkTheme) { dialogBuilder.setIcon(R.drawable.ssl_certificate_enabled_dark); } else { dialogBuilder.setIcon(R.drawable.ssl_certificate_enabled_light); } - } else { + } else { // There is a favorite icon. // Create a drawable version of the favorite icon. Drawable favoriteIconDrawable = new BitmapDrawable(getResources(), MainWebViewActivity.favoriteIconBitmap); @@ -162,7 +166,7 @@ public class PinnedMismatchDialog extends AppCompatDialogFragment { // Update the SSL certificate if it is pinned. if (pinnedSslCertificate) { // Update the pinned SSL certificate in the domain database. - domainsDatabaseHelper.updatePinnedSslCertificate(MainWebViewActivity.domainSettingsDatabaseId, currentSslIssuedToCName, currentSslIssuedToOName, currentSslIssuedToUName, + domainsDatabaseHelper.updatePinnedSslCertificate(domainSettingsDatabaseId, currentSslIssuedToCName, currentSslIssuedToOName, currentSslIssuedToUName, currentSslIssuedByCName, currentSslIssuedByOName, currentSslIssuedByUName, currentSslStartDateLong, currentSslEndDateLong); // Update the pinned SSL certificate class variables to match the information that is now in the database. @@ -179,7 +183,7 @@ public class PinnedMismatchDialog extends AppCompatDialogFragment { // Update the IP addresses if they are pinned. if (pinnedIpAddresses) { // Update the pinned IP addresses in the domain database. - domainsDatabaseHelper.updatePinnedIpAddresses(MainWebViewActivity.domainSettingsDatabaseId, MainWebViewActivity.currentHostIpAddresses); + domainsDatabaseHelper.updatePinnedIpAddresses(domainSettingsDatabaseId, MainWebViewActivity.currentHostIpAddresses); // Update the pinned IP addresses class variable to match the information that is now in the database. MainWebViewActivity.pinnedHostIpAddresses = MainWebViewActivity.currentHostIpAddresses;