diff --git a/email2/emailcommon/src/com/android/emailcommon/mail/MeetingInfo.java b/email2/emailcommon/src/com/android/emailcommon/mail/MeetingInfo.java index 1489a5597..87637f7a1 100644 --- a/email2/emailcommon/src/com/android/emailcommon/mail/MeetingInfo.java +++ b/email2/emailcommon/src/com/android/emailcommon/mail/MeetingInfo.java @@ -26,4 +26,5 @@ public class MeetingInfo { public static final String MEETING_TITLE = "TITLE"; public static final String MEETING_LOCATION = "LOC"; public static final String MEETING_RESPONSE_REQUESTED = "RESPONSE"; + public static final String MEETING_ALL_DAY = "ALLDAY"; } diff --git a/email2/emailcommon/src/com/android/emailcommon/utility/EmailClientConnectionManager.java b/email2/emailcommon/src/com/android/emailcommon/utility/EmailClientConnectionManager.java index 36ece4261..2f34ba9d3 100644 --- a/email2/emailcommon/src/com/android/emailcommon/utility/EmailClientConnectionManager.java +++ b/email2/emailcommon/src/com/android/emailcommon/utility/EmailClientConnectionManager.java @@ -22,6 +22,7 @@ import android.net.SSLCertificateSocketFactory; import android.util.Log; import com.android.emailcommon.Logging; +import com.android.emailcommon.provider.HostAuth; import com.android.emailcommon.utility.SSLUtils.KeyChainKeyManager; import com.android.emailcommon.utility.SSLUtils.TrackingKeyManager; @@ -42,7 +43,6 @@ import javax.net.ssl.KeyManager; public class EmailClientConnectionManager extends ThreadSafeClientConnManager { private static final boolean LOG_ENABLED = false; - /** * A {@link KeyManager} to track client certificate requests from servers. */ @@ -57,19 +57,22 @@ public class EmailClientConnectionManager extends ThreadSafeClientConnManager { mTrackingKeyManager = keyManager; } - public static EmailClientConnectionManager newInstance(HttpParams params) { + public static EmailClientConnectionManager newInstance(HttpParams params, boolean ssl, + int port) { TrackingKeyManager keyManager = new TrackingKeyManager(); // Create a registry for our three schemes; http and https will use built-in factories SchemeRegistry registry = new SchemeRegistry(); - registry.register(new Scheme("http", - PlainSocketFactory.getSocketFactory(), 80)); - registry.register(new Scheme("https", - SSLUtils.getHttpSocketFactory(false, keyManager), 443)); - - // Register the httpts scheme with our insecure factory - registry.register(new Scheme("httpts", - SSLUtils.getHttpSocketFactory(true /*insecure*/, keyManager), 443)); + if (!ssl) { + registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), port)); + } else { + // Register https with the secure factory + registry.register(new Scheme("https", + SSLUtils.getHttpSocketFactory(false, keyManager), port)); + // Register the httpts scheme with our insecure factory + registry.register(new Scheme("httpts", + SSLUtils.getHttpSocketFactory(true /*insecure*/, keyManager), port)); + } return new EmailClientConnectionManager(params, registry, keyManager); } @@ -81,22 +84,24 @@ public class EmailClientConnectionManager extends ThreadSafeClientConnManager { * connection, so clients of this connection manager should use * {@link #makeSchemeForClientCert(String, boolean)}. */ - public synchronized void registerClientCert( - Context context, String clientCertAlias, boolean trustAllServerCerts) + public synchronized void registerClientCert(Context context, HostAuth hostAuth) throws CertificateException { SchemeRegistry registry = getSchemeRegistry(); - String schemeName = makeSchemeForClientCert(clientCertAlias, trustAllServerCerts); + String schemeName = makeSchemeForClientCert(hostAuth.mClientCertAlias, + hostAuth.shouldTrustAllServerCerts()); Scheme existing = registry.get(schemeName); if (existing == null) { if (LOG_ENABLED) { Log.i(Logging.LOG_TAG, "Registering socket factory for certificate alias [" - + clientCertAlias + "]"); + + hostAuth.mClientCertAlias + "]"); } - KeyManager keyManager = KeyChainKeyManager.fromAlias(context, clientCertAlias); + KeyManager keyManager = + KeyChainKeyManager.fromAlias(context, hostAuth.mClientCertAlias); SSLCertificateSocketFactory underlying = SSLUtils.getSSLSocketFactory( - trustAllServerCerts); + hostAuth.shouldTrustAllServerCerts()); underlying.setKeyManagers(new KeyManager[] { keyManager }); - registry.register(new Scheme(schemeName, new SSLSocketFactory(underlying), 443)); + registry.register( + new Scheme(schemeName, new SSLSocketFactory(underlying), hostAuth.mPort)); } }