summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarc Blank <mblank@google.com>2012-05-09 10:58:58 -0700
committerMarc Blank <mblank@google.com>2012-05-09 21:18:04 -0700
commit462631b616c762f4298ed9066e33512b9f47855d (patch)
tree6f87b2f5385c3d3074154afd390f862a7c5d265e /src
parent4443b4b5ed722c7afef6e9cd868a36218f23770e (diff)
downloadandroid_packages_apps_Email-462631b616c762f4298ed9066e33512b9f47855d.tar.gz
android_packages_apps_Email-462631b616c762f4298ed9066e33512b9f47855d.tar.bz2
android_packages_apps_Email-462631b616c762f4298ed9066e33512b9f47855d.zip
Support port selection for Exchange
* Support different client connection managers (by ssl/port pair) * Realistically, there will rarely be more than one Bug: 6469962 Change-Id: Ie4ee052442af70acf8b320122a5f048d22837901
Diffstat (limited to 'src')
-rw-r--r--src/com/android/email/activity/setup/AccountSetupExchangeFragment.java38
1 files changed, 37 insertions, 1 deletions
diff --git a/src/com/android/email/activity/setup/AccountSetupExchangeFragment.java b/src/com/android/email/activity/setup/AccountSetupExchangeFragment.java
index 1ff5bee73..24bd272c9 100644
--- a/src/com/android/email/activity/setup/AccountSetupExchangeFragment.java
+++ b/src/com/android/email/activity/setup/AccountSetupExchangeFragment.java
@@ -63,9 +63,13 @@ public class AccountSetupExchangeFragment extends AccountServerBaseFragment
private final static String STATE_KEY_CREDENTIAL = "AccountSetupExchangeFragment.credential";
private final static String STATE_KEY_LOADED = "AccountSetupExchangeFragment.loaded";
+ private static final int PORT_SSL = 443;
+ private static final int PORT_NORMAL = 80;
+
private EditText mUsernameView;
private EditText mPasswordView;
private EditText mServerView;
+ private EditText mPortView;
private CheckBox mSslSecurityView;
private CheckBox mTrustCertificatesView;
private CertificateSelector mClientCertificateSelector;
@@ -109,6 +113,7 @@ public class AccountSetupExchangeFragment extends AccountServerBaseFragment
mUsernameView = UiUtilities.getView(view, R.id.account_username);
mPasswordView = UiUtilities.getView(view, R.id.account_password);
mServerView = UiUtilities.getView(view, R.id.account_server);
+ mPortView = (EditText) UiUtilities.getView(view, R.id.account_port);
mSslSecurityView = UiUtilities.getView(view, R.id.account_ssl);
mSslSecurityView.setOnCheckedChangeListener(this);
mTrustCertificatesView = UiUtilities.getView(view, R.id.account_trust_certificates);
@@ -117,11 +122,14 @@ public class AccountSetupExchangeFragment extends AccountServerBaseFragment
// Calls validateFields() which enables or disables the Next button
// based on the fields' validity.
TextWatcher validationTextWatcher = new TextWatcher() {
+ @Override
public void afterTextChanged(Editable s) {
validateFields();
}
+ @Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
+ @Override
public void onTextChanged(CharSequence s, int start, int before, int count) { }
};
// We're editing an existing account; don't allow modification of the user name
@@ -132,6 +140,7 @@ public class AccountSetupExchangeFragment extends AccountServerBaseFragment
mUsernameView.addTextChangedListener(validationTextWatcher);
mPasswordView.addTextChangedListener(validationTextWatcher);
mServerView.addTextChangedListener(validationTextWatcher);
+ mPortView.addTextChangedListener(validationTextWatcher);
EditText lastView = mServerView;
lastView.setOnEditorActionListener(mDismissImeOnDoneListener);
@@ -247,6 +256,18 @@ public class AccountSetupExchangeFragment extends AccountServerBaseFragment
return loadSettings(account);
}
+
+ private int getPortFromSecurityType() {
+ boolean useSsl = mSslSecurityView.isChecked();
+ int port = useSsl ? PORT_SSL : PORT_NORMAL;
+ return port;
+ }
+
+ private void updatePortFromSecurityType() {
+ int port = getPortFromSecurityType();
+ mPortView.setText(Integer.toString(port));
+ }
+
/**
* Load the given account settings into the UI and then ensure the settings are valid.
* As an optimization, if the settings have already been loaded, the UI will not be
@@ -295,6 +316,12 @@ public class AccountSetupExchangeFragment extends AccountServerBaseFragment
}
onUseSslChanged(ssl);
+ int port = hostAuth.mPort;
+ if (port != HostAuth.PORT_UNKNOWN) {
+ mPortView.setText(Integer.toString(port));
+ } else {
+ updatePortFromSecurityType();
+ }
mLoadedRecvAuth = hostAuth;
mLoaded = true;
return validateFields();
@@ -418,7 +445,16 @@ public class AccountSetupExchangeFragment extends AccountServerBaseFragment
String certAlias = mClientCertificateSelector.getCertificate();
String serverAddress = mServerView.getText().toString().trim();
- int port = mSslSecurityView.isChecked() ? 443 : 80;
+ String portText = mPortView.getText().toString().trim();
+ int port;
+ try {
+ port = Integer.parseInt(portText);
+ } catch (NumberFormatException e) {
+ // Worst case, do something sensible
+ port = mSslSecurityView.isChecked() ? 443 : 80;
+ Log.d(Logging.LOG_TAG, "Non-integer server port; using '" + port + "'");
+ }
+
HostAuth sendAuth = account.getOrCreateHostAuthSend(mContext);
sendAuth.setLogin(userName, userPassword);
sendAuth.setConnection(mBaseScheme, serverAddress, port, flags, certAlias);