/**
- * Copyright 2015-2016 Soren Stoutner <soren@stoutner.com>.
+ * Copyright 2016 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
package com.stoutner.privacybrowser;
-import android.app.Activity;
+import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.app.Dialog;
-import android.app.DialogFragment;
+import android.content.Context;
import android.content.DialogInterface;
import android.net.http.SslCertificate;
import android.net.http.SslError;
import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.v7.app.AppCompatDialogFragment;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
import java.util.Date;
-public class SslCertificateError extends DialogFragment{
+public class SslCertificateError extends AppCompatDialogFragment {
+
private String primaryError;
private String urlWithError;
private String issuedToCName;
argumentsBundle.putString("StartDate", startDateForBundle.toString());
argumentsBundle.putString("EndDate", endDateForBundle.toString());
- // Add the `Bundle` to this instance of `SslCertificateError`.
+ // Add `argumentsBundle` to this instance of `SslCertificateError`.
SslCertificateError thisSslCertificateErrorDialog = new SslCertificateError();
thisSslCertificateErrorDialog.setArguments(argumentsBundle);
return thisSslCertificateErrorDialog;
}
+ @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
private SslCertificateErrorListener sslCertificateErrorListener;
// Check to make sure that the parent activity implements the listener.
- public void onAttach(Activity parentActivity) {
- super.onAttach(parentActivity);
+ public void onAttach(Context context) {
+ super.onAttach(context);
try {
- sslCertificateErrorListener = (SslCertificateErrorListener) parentActivity;
+ sslCertificateErrorListener = (SslCertificateErrorListener) context;
} catch(ClassCastException exception) {
- throw new ClassCastException(parentActivity.toString() + " must implement SslCertificateErrorListener");
+ throw new ClassCastException(context.toString() + " must implement SslCertificateErrorListener");
}
}
+ // `@SuppressLing("InflateParams")` removes the warning about using `null` as the parent view group when inflating the `AlertDialog`.
+ @SuppressLint("InflateParams")
@Override
+ @NonNull
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Get the activity's layout inflater.
LayoutInflater layoutInflater = getActivity().getLayoutInflater();
SpannableStringBuilder endDateStringBuilder = new SpannableStringBuilder((endDateLabel + endDate));
// Create a blue `ForegroundColorSpan`. We have to use the deprecated `getColor` until API >= 23.
- ForegroundColorSpan blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.blue));
+ @SuppressWarnings("deprecation") ForegroundColorSpan blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.blue_700));
// Setup the spans to display the certificate information in blue. `SPAN_INCLUSIVE_INCLUSIVE` allows the span to grow in either direction.
urlStringBuilder.setSpan(blueColorSpan, urlLabel.length(), urlStringBuilder.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);