import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
+import android.content.SharedPreferences;
+import android.graphics.Bitmap;
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.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.preference.PreferenceManager;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
-import android.view.LayoutInflater;
import android.view.View;
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.fragments.WebViewTabFragment;
+import com.stoutner.privacybrowser.views.NestedScrollWebView;
+import com.stoutner.privacybrowser.views.WrapVerticalContentViewPager;
import com.stoutner.privacybrowser.helpers.DomainsDatabaseHelper;
import java.text.DateFormat;
+import java.util.ArrayList;
import java.util.Date;
-public class PinnedMismatchDialog extends AppCompatDialogFragment {
- // Instantiate the class variables.
+import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
+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 {
+ // The public interface is used to send information back to the parent activity.
+ public interface PinnedMismatchListener {
+ void pinnedErrorGoBack();
+ }
+
+ // Declare the class variables.
private PinnedMismatchListener pinnedMismatchListener;
- private LayoutInflater layoutInflater;
+ private NestedScrollWebView nestedScrollWebView;
private String currentSslIssuedToCName;
private String currentSslIssuedToOName;
private String currentSslIssuedToUName;
private String currentSslIssuedByUName;
private Date currentSslStartDate;
private Date currentSslEndDate;
- private boolean pinnedSslCertificate;
- private boolean pinnedIpAddresses;
-
- // The public interface is used to send information back to the parent activity.
- public interface PinnedMismatchListener {
- void onPinnedMismatchBack();
- void onPinnedMismatchProceed();
- }
-
- // Check to make sure that the parent activity implements the listener.
- public void onAttach(Context context) {
+ @Override
+ public void onAttach(@NonNull Context context) {
// Run the default commands.
super.onAttach(context);
- // Get a handle for `PinnedSslCertificateMismatchListener` from the launching context.
+ // Get a handle for the listener from the launching context.
pinnedMismatchListener = (PinnedMismatchListener) context;
}
- public static PinnedMismatchDialog displayDialog(boolean pinnedSslCertificate, boolean pinnedIpAddresses) {
+ public static PinnedMismatchDialog displayDialog(long webViewFragmentId) {
// 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);
+ // Store the WebView fragment ID in the bundle.
+ argumentsBundle.putLong("webview_fragment_id", webViewFragmentId);
+
+ // Create a new instance of the pinned mismatch dialog.
+ PinnedMismatchDialog pinnedMismatchDialog = new PinnedMismatchDialog();
+
+ // Add the arguments bundle to the new instance.
+ pinnedMismatchDialog.setArguments(argumentsBundle);
- // Add the arguments bundle to this instance of `PinnedMismatchDialog`.
- PinnedMismatchDialog thisPinnedMismatchDialog = new PinnedMismatchDialog();
- thisPinnedMismatchDialog.setArguments(argumentsBundle);
- return thisPinnedMismatchDialog;
+ // Make it so.
+ return pinnedMismatchDialog;
}
// `@SuppressLing("InflateParams")` removes the warning about using `null` as the parent view group when inflating the `AlertDialog`.
@Override
@NonNull
public Dialog onCreateDialog(Bundle savedInstanceState) {
- // Remove the incorrect lint warning that `getActivity()` might be null.
- assert getActivity() != null;
+ // Get the arguments.
+ Bundle arguments = getArguments();
+
+ // Remove the incorrect lint warning below that `.getArguments().getInt()` might be null.
+ assert arguments != null;
+
+ // Get the current position of this WebView fragment.
+ int webViewPosition = MainWebViewActivity.webViewPagerAdapter.getPositionForId(arguments.getLong("webview_fragment_id"));
+
+ // Get the WebView tab fragment.
+ WebViewTabFragment webViewTabFragment = MainWebViewActivity.webViewPagerAdapter.getPageFragment(webViewPosition);
- // Get the activity's layout inflater.
- layoutInflater = getActivity().getLayoutInflater();
+ // Get the fragment view.
+ View fragmentView = webViewTabFragment.getView();
+
+ // Remove the incorrect lint warning below that the fragment view might be null.
+ assert fragmentView != null;
+
+ // Get a handle for the current WebView.
+ nestedScrollWebView = fragmentView.findViewById(R.id.nestedscroll_webview);
// Use an alert dialog 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) {
// Set the dialog theme.
dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogDark);
} else {
dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogLight);
}
- // Remove the incorrect lint warning below that `.getArguments.getBoolean()` might be null.
- assert getArguments() != null;
+ // Get the context.
+ Context context = getContext();
+
+ // Remove the incorrect lint warning below that the context might be null.
+ assert context != null;
+
+ // Get the favorite icon.
+ Bitmap favoriteIconBitmap = nestedScrollWebView.getFavoriteOrDefaultIcon();
+
+ // Get the default favorite icon drawable. `ContextCompat` must be used until API >= 21.
+ Drawable defaultFavoriteIconDrawable = ContextCompat.getDrawable(context, R.drawable.world);
+
+ // Cast the favorite icon drawable to a bitmap drawable.
+ BitmapDrawable defaultFavoriteIconBitmapDrawable = (BitmapDrawable) defaultFavoriteIconDrawable;
+
+ // Remove the incorrect warning below that the favorite icon bitmap drawable might be null.
+ assert defaultFavoriteIconBitmapDrawable != null;
- // Get the variables from the bundle.
- pinnedSslCertificate = getArguments().getBoolean("Pinned_SSL_Certificate");
- pinnedIpAddresses = getArguments().getBoolean("Pinned_IP_Addresses");
+ // Store the default icon bitmap.
+ Bitmap defaultFavoriteIconBitmap = defaultFavoriteIconBitmapDrawable.getBitmap();
- if (MainWebViewActivity.favoriteIconBitmap.equals(MainWebViewActivity.favoriteIconDefaultBitmap)) {
+ // Set the favorite icon as the dialog icon if it exists.
+ if (favoriteIconBitmap.sameAs(defaultFavoriteIconBitmap)) { // There is no website favorite icon.
// Set the icon according to the theme.
- if (MainWebViewActivity.darkTheme) {
+ if (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);
+ Drawable favoriteIconDrawable = new BitmapDrawable(getResources(), favoriteIconBitmap);
// Set the icon.
dialogBuilder.setIcon(favoriteIconDrawable);
}
// Initialize the database handler. The `0` specifies the database version, but that is ignored and set instead using a constant in `DomainsDatabaseHelper`.
- DomainsDatabaseHelper domainsDatabaseHelper = new DomainsDatabaseHelper(getContext(), null, null, 0);
+ DomainsDatabaseHelper domainsDatabaseHelper = new DomainsDatabaseHelper(context, null, null, 0);
// Update the SSL certificate if it is pinned.
- if (pinnedSslCertificate) {
+ if (nestedScrollWebView.hasPinnedSslCertificate()) {
// Update the pinned SSL certificate in the domain database.
- domainsDatabaseHelper.updatePinnedSslCertificate(MainWebViewActivity.domainSettingsDatabaseId, currentSslIssuedToCName, currentSslIssuedToOName, currentSslIssuedToUName,
+ domainsDatabaseHelper.updatePinnedSslCertificate(nestedScrollWebView.getDomainSettingsDatabaseId(), 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.
- MainWebViewActivity.pinnedSslIssuedToCName = currentSslIssuedToCName;
- MainWebViewActivity.pinnedSslIssuedToOName = currentSslIssuedToOName;
- MainWebViewActivity.pinnedSslIssuedToUName = currentSslIssuedToUName;
- MainWebViewActivity.pinnedSslIssuedByCName = currentSslIssuedByCName;
- MainWebViewActivity.pinnedSslIssuedByOName = currentSslIssuedByOName;
- MainWebViewActivity.pinnedSslIssuedByUName = currentSslIssuedByUName;
- MainWebViewActivity.pinnedSslStartDate = currentSslStartDate;
- MainWebViewActivity.pinnedSslEndDate = currentSslEndDate;
+ // Update the pinned SSL certificate in the nested scroll WebView.
+ nestedScrollWebView.setPinnedSslCertificate(currentSslIssuedToCName, currentSslIssuedToOName, currentSslIssuedToUName, currentSslIssuedByCName, currentSslIssuedByOName, currentSslIssuedByUName,
+ currentSslStartDate, currentSslEndDate);
}
// Update the IP addresses if they are pinned.
- if (pinnedIpAddresses) {
+ if (nestedScrollWebView.hasPinnedIpAddresses()) {
// Update the pinned IP addresses in the domain database.
- domainsDatabaseHelper.updatePinnedIpAddresses(MainWebViewActivity.domainSettingsDatabaseId, MainWebViewActivity.currentHostIpAddresses);
+ domainsDatabaseHelper.updatePinnedIpAddresses(nestedScrollWebView.getDomainSettingsDatabaseId(), nestedScrollWebView.getCurrentIpAddresses());
- // Update the pinned IP addresses class variable to match the information that is now in the database.
- MainWebViewActivity.pinnedHostIpAddresses = MainWebViewActivity.currentHostIpAddresses;
+ // Update the pinned IP addresses in the nested scroll WebView.
+ nestedScrollWebView.setPinnedIpAddresses(nestedScrollWebView.getCurrentIpAddresses());
}
});
- // Setup the negative button.
+ // Setup the back button.
dialogBuilder.setNegativeButton(R.string.back, (DialogInterface dialog, int which) -> {
- // Call the `onSslMismatchBack` public interface to send the `WebView` back one page.
- pinnedMismatchListener.onPinnedMismatchBack();
+ if (nestedScrollWebView.canGoBack()) { // There is a back page in the history.
+ // Invoke the navigate history listener in the calling activity. These commands cannot be run here because they need access to `applyDomainSettings()`.
+ pinnedMismatchListener.pinnedErrorGoBack();
+ } else { // There are no pages to go back to.
+ // Load a blank page
+ nestedScrollWebView.loadUrl("");
+ }
});
- // Setup the positive button.
+ // Setup the proceed button.
dialogBuilder.setPositiveButton(R.string.proceed, (DialogInterface dialog, int which) -> {
- // Call the `onSslMismatchProceed` public interface.
- pinnedMismatchListener.onPinnedMismatchProceed();
+ // Do not check the pinned information for this domain again until the domain changes.
+ nestedScrollWebView.setIgnorePinnedDomainInformation(true);
});
// Set the title.
dialogBuilder.setTitle(R.string.pinned_mismatch);
+ // Remove the incorrect lint warning below that `getLayoutInflater()` might be null.
+ assert getActivity() != null;
+
// Set the layout. The parent view is `null` because it will be assigned by `AlertDialog`.
- dialogBuilder.setView(layoutInflater.inflate(R.layout.pinned_mismatch_linearlayout, null));
+ // For some reason, `getLayoutInflater()` without `getActivity()` produces an endless loop (probably a bug that will be fixed at some point in the future).
+ dialogBuilder.setView(getActivity().getLayoutInflater().inflate(R.layout.pinned_mismatch_linearlayout, null));
// Create an alert dialog from the alert dialog builder.
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;
@NonNull
public Object instantiateItem(@NonNull ViewGroup container, int position) {
// Inflate the scroll view for this tab.
- ViewGroup tabViewGroup = (ViewGroup) layoutInflater.inflate(R.layout.pinned_mismatch_scrollview, container, false);
+ ViewGroup tabViewGroup = (ViewGroup) getLayoutInflater().inflate(R.layout.pinned_mismatch_scrollview, container, false);
// Get handles for the `TextViews`.
TextView domainNameTextView = tabViewGroup.findViewById(R.id.domain_name);
String startDateLabel = getString(R.string.start_date) + " ";
String endDateLabel = getString(R.string.end_date) + " ";
- // Get a URI for the URL.
- Uri currentUri = Uri.parse(MainWebViewActivity.formattedUrlString);
+ // Convert the URL to a URI.
+ Uri currentUri = Uri.parse(nestedScrollWebView.getUrl());
// Get the current host from the URI.
String domainName = currentUri.getHost();
// Get the current website SSL certificate.
- SslCertificate sslCertificate = MainWebViewActivity.sslCertificate;
+ SslCertificate sslCertificate = nestedScrollWebView.getCertificate();
// Extract the individual pieces of information from the current website SSL certificate if it is not null.
if (sslCertificate != null) {
currentSslIssuedByUName = "";
}
+ // Get the pinned SSL certificate.
+ ArrayList<Object> pinnedSslCertificateArrayList = nestedScrollWebView.getPinnedSslCertificate();
+
+ // Extract the arrays from the array list.
+ String[] pinnedSslCertificateStringArray = (String[]) pinnedSslCertificateArrayList.get(0);
+ Date[] pinnedSslCertificateDateArray = (Date[]) pinnedSslCertificateArrayList.get(1);
+
// Setup the domain name spannable string builder.
SpannableStringBuilder domainNameStringBuilder = new SpannableStringBuilder(domainNameLabel + domainName);
// Setup the spannable string builders for each tab.
if (position == 0) { // Setup the current settings tab.
// Create the string builders.
- ipAddressesStringBuilder = new SpannableStringBuilder(ipAddressesLabel + MainWebViewActivity.currentHostIpAddresses);
+ ipAddressesStringBuilder = new SpannableStringBuilder(ipAddressesLabel + nestedScrollWebView.getCurrentIpAddresses());
issuedToCNameStringBuilder = new SpannableStringBuilder(cNameLabel + currentSslIssuedToCName);
issuedToONameStringBuilder = new SpannableStringBuilder(oNameLabel + currentSslIssuedToOName);
issuedToUNameStringBuilder = new SpannableStringBuilder(uNameLabel + currentSslIssuedToUName);
}
} else { // Setup the pinned settings tab.
// Create the string builders.
- ipAddressesStringBuilder = new SpannableStringBuilder(ipAddressesLabel + MainWebViewActivity.pinnedHostIpAddresses);
- issuedToCNameStringBuilder = new SpannableStringBuilder(cNameLabel + MainWebViewActivity.pinnedSslIssuedToCName);
- issuedToONameStringBuilder = new SpannableStringBuilder(oNameLabel + MainWebViewActivity.pinnedSslIssuedToOName);
- issuedToUNameStringBuilder = new SpannableStringBuilder(uNameLabel + MainWebViewActivity.pinnedSslIssuedToUName);
- issuedByCNameStringBuilder = new SpannableStringBuilder(cNameLabel + MainWebViewActivity.pinnedSslIssuedByCName);
- issuedByONameStringBuilder = new SpannableStringBuilder(oNameLabel + MainWebViewActivity.pinnedSslIssuedByOName);
- issuedByUNameStringBuilder = new SpannableStringBuilder(uNameLabel + MainWebViewActivity.pinnedSslIssuedByUName);
+ ipAddressesStringBuilder = new SpannableStringBuilder(ipAddressesLabel + nestedScrollWebView.getPinnedIpAddresses());
+ issuedToCNameStringBuilder = new SpannableStringBuilder(cNameLabel + pinnedSslCertificateStringArray[0]);
+ issuedToONameStringBuilder = new SpannableStringBuilder(oNameLabel + pinnedSslCertificateStringArray[1]);
+ issuedToUNameStringBuilder = new SpannableStringBuilder(uNameLabel + pinnedSslCertificateStringArray[2]);
+ issuedByCNameStringBuilder = new SpannableStringBuilder(cNameLabel + pinnedSslCertificateStringArray[3]);
+ issuedByONameStringBuilder = new SpannableStringBuilder(oNameLabel + pinnedSslCertificateStringArray[4]);
+ issuedByUNameStringBuilder = new SpannableStringBuilder(uNameLabel + pinnedSslCertificateStringArray[5]);
// Set the dates if they aren't `null`.
- if (MainWebViewActivity.pinnedSslStartDate == null) {
+ if (pinnedSslCertificateDateArray[0] == null) {
startDateStringBuilder = new SpannableStringBuilder(startDateLabel);
} else {
- startDateStringBuilder = new SpannableStringBuilder(startDateLabel + DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.LONG)
- .format(MainWebViewActivity.pinnedSslStartDate));
+ startDateStringBuilder = new SpannableStringBuilder(startDateLabel + DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.LONG).format(pinnedSslCertificateDateArray[0]));
}
- if (MainWebViewActivity.pinnedSslEndDate == null) {
+ if (pinnedSslCertificateDateArray[1] == null) {
endDateStringBuilder = new SpannableStringBuilder(endDateLabel);
} else {
- endDateStringBuilder = new SpannableStringBuilder(endDateLabel + DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.LONG).format(MainWebViewActivity.pinnedSslEndDate));
+ endDateStringBuilder = new SpannableStringBuilder(endDateLabel + DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.LONG).format(pinnedSslCertificateDateArray[1]));
}
}
+ // 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);
+
// Create a red foreground color span. The deprecated `getResources().getColor` must be used until the minimum API >= 23.
- @SuppressWarnings("deprecation") ForegroundColorSpan redColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.red_a700));
+ ForegroundColorSpan redColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.red_a700));
// Create a blue foreground color span.
ForegroundColorSpan blueColorSpan;
// Set the blue color span according to the theme. The deprecated `getResources().getColor` must be used until the minimum API >= 23.
- if (MainWebViewActivity.darkTheme) {
- //noinspection deprecation
+ if (darkTheme) {
blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.blue_400));
} else {
- //noinspection deprecation
blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.blue_700));
}
domainNameStringBuilder.setSpan(blueColorSpan, domainNameLabel.length(), domainNameStringBuilder.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
// Color coordinate the IP addresses if they are pinned.
- if (pinnedIpAddresses) {
- if (MainWebViewActivity.currentHostIpAddresses.equals(MainWebViewActivity.pinnedHostIpAddresses)) {
+ if (nestedScrollWebView.hasPinnedIpAddresses()) {
+ if (nestedScrollWebView.getCurrentIpAddresses().equals(nestedScrollWebView.getPinnedIpAddresses())) {
ipAddressesStringBuilder.setSpan(blueColorSpan, ipAddressesLabel.length(), ipAddressesStringBuilder.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
} else {
ipAddressesStringBuilder.setSpan(redColorSpan, ipAddressesLabel.length(), ipAddressesStringBuilder.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
}
// Color coordinate the SSL certificate fields if they are pinned.
- if (pinnedSslCertificate) {
- if (currentSslIssuedToCName.equals(MainWebViewActivity.pinnedSslIssuedToCName)) {
+ if (nestedScrollWebView.hasPinnedSslCertificate()) {
+ if (currentSslIssuedToCName.equals(pinnedSslCertificateStringArray[0])) {
issuedToCNameStringBuilder.setSpan(blueColorSpan, cNameLabel.length(), issuedToCNameStringBuilder.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
} else {
issuedToCNameStringBuilder.setSpan(redColorSpan, cNameLabel.length(), issuedToCNameStringBuilder.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
}
- if (currentSslIssuedToOName.equals(MainWebViewActivity.pinnedSslIssuedToOName)) {
+ if (currentSslIssuedToOName.equals(pinnedSslCertificateStringArray[1])) {
issuedToONameStringBuilder.setSpan(blueColorSpan, oNameLabel.length(), issuedToONameStringBuilder.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
} else {
issuedToONameStringBuilder.setSpan(redColorSpan, oNameLabel.length(), issuedToONameStringBuilder.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
}
- if (currentSslIssuedToUName.equals(MainWebViewActivity.pinnedSslIssuedToUName)) {
+ if (currentSslIssuedToUName.equals(pinnedSslCertificateStringArray[2])) {
issuedToUNameStringBuilder.setSpan(blueColorSpan, uNameLabel.length(), issuedToUNameStringBuilder.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
} else {
issuedToUNameStringBuilder.setSpan(redColorSpan, uNameLabel.length(), issuedToUNameStringBuilder.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
}
- if (currentSslIssuedByCName.equals(MainWebViewActivity.pinnedSslIssuedByCName)) {
+ if (currentSslIssuedByCName.equals(pinnedSslCertificateStringArray[3])) {
issuedByCNameStringBuilder.setSpan(blueColorSpan, cNameLabel.length(), issuedByCNameStringBuilder.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
} else {
issuedByCNameStringBuilder.setSpan(redColorSpan, cNameLabel.length(), issuedByCNameStringBuilder.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
}
- if (currentSslIssuedByOName.equals(MainWebViewActivity.pinnedSslIssuedByOName)) {
+ if (currentSslIssuedByOName.equals(pinnedSslCertificateStringArray[4])) {
issuedByONameStringBuilder.setSpan(blueColorSpan, oNameLabel.length(), issuedByONameStringBuilder.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
} else {
issuedByONameStringBuilder.setSpan(redColorSpan, oNameLabel.length(), issuedByONameStringBuilder.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
}
- if (currentSslIssuedByUName.equals(MainWebViewActivity.pinnedSslIssuedByUName)) {
+ if (currentSslIssuedByUName.equals(pinnedSslCertificateStringArray[5])) {
issuedByUNameStringBuilder.setSpan(blueColorSpan, uNameLabel.length(), issuedByUNameStringBuilder.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
} else {
issuedByUNameStringBuilder.setSpan(redColorSpan, uNameLabel.length(), issuedByUNameStringBuilder.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
}
- if ((currentSslStartDate != null) && currentSslStartDate.equals(MainWebViewActivity.pinnedSslStartDate)) {
+ if ((currentSslStartDate != null) && currentSslStartDate.equals(pinnedSslCertificateDateArray[0])) {
startDateStringBuilder.setSpan(blueColorSpan, startDateLabel.length(), startDateStringBuilder.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
} else {
startDateStringBuilder.setSpan(redColorSpan, startDateLabel.length(), startDateStringBuilder.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
}
- if ((currentSslEndDate != null) && currentSslEndDate.equals(MainWebViewActivity.pinnedSslEndDate)) {
+ if ((currentSslEndDate != null) && currentSslEndDate.equals(pinnedSslCertificateDateArray[1])) {
endDateStringBuilder.setSpan(blueColorSpan, endDateLabel.length(), endDateStringBuilder.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
} else {
endDateStringBuilder.setSpan(redColorSpan, endDateLabel.length(), endDateStringBuilder.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
return tabViewGroup;
}
}
-}
+}
\ No newline at end of file