/**
  * This function will install a trust manager that will blindly trust all SSL certificates. The
  * reason this code is being added is to enable developers to do development using self signed SSL
  * certificates on their web server.
  *
  * <p>The standard HttpsURLConnection class will throw an exception on self signed certificates if
  * this code is not run.
  */
 private static SSLSocketFactory trustAllHosts(HttpsURLConnection connection) {
   // Install the all-trusting trust manager
   SSLSocketFactory oldFactory = connection.getSSLSocketFactory();
   try {
     // Install our all trusting manager
     SSLContext sc = SSLContext.getInstance("TLS");
     sc.init(null, trustAllCerts, new java.security.SecureRandom());
     SSLSocketFactory newFactory = sc.getSocketFactory();
     connection.setSSLSocketFactory(newFactory);
   } catch (Exception e) {
     Log.e(LOG_TAG, e.getMessage(), e);
   }
   return oldFactory;
 }
 @Override
 protected URLConnection openConnection(URL url) throws IOException {
   URLConnection connection = super.openConnection(url);
   if (connection instanceof HttpsURLConnection) {
     HttpsURLConnection urlConnection = (HttpsURLConnection) connection;
     HostnameVerifier hostnameVerifier = urlConnection.getHostnameVerifier();
     if (hostnameVerifier != kindHostnameVerifier) {
       urlConnection.setHostnameVerifier(kindHostnameVerifier);
     }
     if (urlConnection.getSSLSocketFactory() != trustedSslSocketFactory
         && trustedSslSocketFactory != null) {
       urlConnection.setSSLSocketFactory(trustedSslSocketFactory);
     }
   }
   return connection;
 }