Merge "Use the AuthenticationView for outgoing" into ub-mail-master
This commit is contained in:
commit
78280d51db
|
@ -106,16 +106,9 @@
|
||||||
android:id="@+id/account_require_login_settings_2"
|
android:id="@+id/account_require_login_settings_2"
|
||||||
android:paddingTop="16dip"
|
android:paddingTop="16dip"
|
||||||
android:visibility="gone" >
|
android:visibility="gone" >
|
||||||
<TextView
|
<com.android.email.activity.setup.AuthenticationView
|
||||||
android:layout_height="wrap_content"
|
android:id="@+id/authentication_view"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_marginRight="16dip"
|
android:layout_height="wrap_content"/>
|
||||||
android:text="@string/account_setup_outgoing_password_label" />
|
|
||||||
<EditText
|
|
||||||
android:id="@+id/account_password"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:inputType="textPassword"
|
|
||||||
android:imeOptions="actionDone" />
|
|
||||||
</TableRow>
|
</TableRow>
|
||||||
</TableLayout>
|
</TableLayout>
|
||||||
|
|
|
@ -78,17 +78,9 @@
|
||||||
android:imeOptions="actionDone"
|
android:imeOptions="actionDone"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_width="match_parent" />
|
android:layout_width="match_parent" />
|
||||||
<TextView
|
<com.android.email.activity.setup.AuthenticationView
|
||||||
android:text="@string/account_setup_outgoing_password_label"
|
android:id="@+id/authentication_view"
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
android:layout_height="wrap_content"/>
|
||||||
android:textColor="?android:attr/textColorPrimary" />
|
|
||||||
<EditText
|
|
||||||
android:id="@+id/account_password"
|
|
||||||
android:inputType="textPassword"
|
|
||||||
android:imeOptions="actionDone"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_width="match_parent" />
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
|
@ -376,7 +376,7 @@ public class AccountSetupIncomingFragment extends AccountServerBaseFragment
|
||||||
final Account account = mSetupData.getAccount();
|
final Account account = mSetupData.getAccount();
|
||||||
final HostAuth recvAuth = account.getOrCreateHostAuthRecv(mContext);
|
final HostAuth recvAuth = account.getOrCreateHostAuthRecv(mContext);
|
||||||
mServiceInfo = EmailServiceUtils.getServiceInfo(mContext, recvAuth.mProtocol);
|
mServiceInfo = EmailServiceUtils.getServiceInfo(mContext, recvAuth.mProtocol);
|
||||||
mAuthenticationView.setAuthInfo(mServiceInfo, recvAuth);
|
mAuthenticationView.setAuthInfo(mServiceInfo.offerOAuth, mServiceInfo.offerCerts, recvAuth);
|
||||||
|
|
||||||
final String username = recvAuth.mLogin;
|
final String username = recvAuth.mLogin;
|
||||||
if (username != null) {
|
if (username != null) {
|
||||||
|
|
|
@ -36,7 +36,10 @@ import android.widget.Spinner;
|
||||||
|
|
||||||
import com.android.email.R;
|
import com.android.email.R;
|
||||||
import com.android.email.activity.UiUtilities;
|
import com.android.email.activity.UiUtilities;
|
||||||
|
import com.android.email.activity.setup.AuthenticationView.AuthenticationCallback;
|
||||||
import com.android.email.provider.AccountBackupRestore;
|
import com.android.email.provider.AccountBackupRestore;
|
||||||
|
import com.android.email.service.EmailServiceUtils;
|
||||||
|
import com.android.email.service.EmailServiceUtils.EmailServiceInfo;
|
||||||
import com.android.email2.ui.MailActivityEmail;
|
import com.android.email2.ui.MailActivityEmail;
|
||||||
import com.android.emailcommon.Logging;
|
import com.android.emailcommon.Logging;
|
||||||
import com.android.emailcommon.provider.Account;
|
import com.android.emailcommon.provider.Account;
|
||||||
|
@ -51,7 +54,7 @@ import com.android.mail.utils.LogUtils;
|
||||||
* (for editing existing accounts).
|
* (for editing existing accounts).
|
||||||
*/
|
*/
|
||||||
public class AccountSetupOutgoingFragment extends AccountServerBaseFragment
|
public class AccountSetupOutgoingFragment extends AccountServerBaseFragment
|
||||||
implements OnCheckedChangeListener {
|
implements OnCheckedChangeListener, AuthenticationCallback {
|
||||||
|
|
||||||
private final static String STATE_KEY_LOADED = "AccountSetupOutgoingFragment.loaded";
|
private final static String STATE_KEY_LOADED = "AccountSetupOutgoingFragment.loaded";
|
||||||
|
|
||||||
|
@ -59,7 +62,7 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment
|
||||||
private static final int SMTP_PORT_SSL = 465;
|
private static final int SMTP_PORT_SSL = 465;
|
||||||
|
|
||||||
private EditText mUsernameView;
|
private EditText mUsernameView;
|
||||||
private EditText mPasswordView;
|
private AuthenticationView mAuthenticationView;
|
||||||
private EditText mServerView;
|
private EditText mServerView;
|
||||||
private EditText mPortView;
|
private EditText mPortView;
|
||||||
private CheckBox mRequireLoginView;
|
private CheckBox mRequireLoginView;
|
||||||
|
@ -103,7 +106,7 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment
|
||||||
final Context context = getActivity();
|
final Context context = getActivity();
|
||||||
|
|
||||||
mUsernameView = UiUtilities.getView(view, R.id.account_username);
|
mUsernameView = UiUtilities.getView(view, R.id.account_username);
|
||||||
mPasswordView = UiUtilities.getView(view, R.id.account_password);
|
mAuthenticationView = UiUtilities.getView(view, R.id.authentication_view);
|
||||||
mServerView = UiUtilities.getView(view, R.id.account_server);
|
mServerView = UiUtilities.getView(view, R.id.account_server);
|
||||||
mPortView = UiUtilities.getView(view, R.id.account_port);
|
mPortView = UiUtilities.getView(view, R.id.account_port);
|
||||||
mRequireLoginView = UiUtilities.getView(view, R.id.account_require_login);
|
mRequireLoginView = UiUtilities.getView(view, R.id.account_require_login);
|
||||||
|
@ -162,7 +165,6 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment
|
||||||
public void onTextChanged(CharSequence s, int start, int before, int count) { }
|
public void onTextChanged(CharSequence s, int start, int before, int count) { }
|
||||||
};
|
};
|
||||||
mUsernameView.addTextChangedListener(validationTextWatcher);
|
mUsernameView.addTextChangedListener(validationTextWatcher);
|
||||||
mPasswordView.addTextChangedListener(validationTextWatcher);
|
|
||||||
mServerView.addTextChangedListener(validationTextWatcher);
|
mServerView.addTextChangedListener(validationTextWatcher);
|
||||||
mPortView.addTextChangedListener(validationTextWatcher);
|
mPortView.addTextChangedListener(validationTextWatcher);
|
||||||
|
|
||||||
|
@ -172,6 +174,8 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment
|
||||||
// Additional setup only used while in "settings" mode
|
// Additional setup only used while in "settings" mode
|
||||||
onCreateViewSettingsMode(view);
|
onCreateViewSettingsMode(view);
|
||||||
|
|
||||||
|
mAuthenticationView.setAuthenticationCallback(this);
|
||||||
|
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -274,10 +278,7 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment
|
||||||
mRequireLoginView.setChecked(true);
|
mRequireLoginView.setChecked(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
final String password = sendAuth.mPassword;
|
mAuthenticationView.setAuthInfo(true, false, sendAuth);
|
||||||
if (password != null) {
|
|
||||||
mPasswordView.setText(password);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
final int flags = sendAuth.mFlags & ~HostAuth.FLAG_AUTHENTICATE;
|
final int flags = sendAuth.mFlags & ~HostAuth.FLAG_AUTHENTICATE;
|
||||||
|
@ -310,11 +311,9 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment
|
||||||
|
|
||||||
if (enabled && mRequireLoginView.isChecked()) {
|
if (enabled && mRequireLoginView.isChecked()) {
|
||||||
enabled = !TextUtils.isEmpty(mUsernameView.getText())
|
enabled = !TextUtils.isEmpty(mUsernameView.getText())
|
||||||
&& !TextUtils.isEmpty(mPasswordView.getText());
|
&& mAuthenticationView.getAuthValid();
|
||||||
}
|
}
|
||||||
enableNextButton(enabled);
|
enableNextButton(enabled);
|
||||||
// Warn (but don't prevent) if password has leading/trailing spaces
|
|
||||||
AccountSettingsUtils.checkPasswordSpaces(mContext, mPasswordView);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -368,7 +367,7 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment
|
||||||
|
|
||||||
if (mRequireLoginView.isChecked()) {
|
if (mRequireLoginView.isChecked()) {
|
||||||
final String userName = mUsernameView.getText().toString().trim();
|
final String userName = mUsernameView.getText().toString().trim();
|
||||||
final String userPassword = mPasswordView.getText().toString();
|
final String userPassword = mAuthenticationView.getPassword().toString();
|
||||||
sendAuth.setLogin(userName, userPassword);
|
sendAuth.setLogin(userName, userPassword);
|
||||||
} else {
|
} else {
|
||||||
sendAuth.setLogin(null, null);
|
sendAuth.setLogin(null, null);
|
||||||
|
@ -390,4 +389,9 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment
|
||||||
mCallback.onProceedNext(SetupDataFragment.CHECK_OUTGOING, this);
|
mCallback.onProceedNext(SetupDataFragment.CHECK_OUTGOING, this);
|
||||||
clearButtonBounce();
|
clearButtonBounce();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onValidateStateChanged() {
|
||||||
|
validateFields();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
package com.android.email.activity.setup;
|
package com.android.email.activity.setup;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.Fragment;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
@ -15,25 +13,20 @@ import android.util.AttributeSet;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import com.android.email.R;
|
import com.android.email.R;
|
||||||
import com.android.email.activity.UiUtilities;
|
import com.android.email.activity.UiUtilities;
|
||||||
import com.android.email.service.EmailServiceUtils;
|
|
||||||
import com.android.email.service.EmailServiceUtils.EmailServiceInfo;
|
import com.android.email.service.EmailServiceUtils.EmailServiceInfo;
|
||||||
import com.android.email.view.CertificateSelector;
|
import com.android.email.view.CertificateSelector;
|
||||||
import com.android.email.view.CertificateSelector.HostCallback;
|
import com.android.email.view.CertificateSelector.HostCallback;
|
||||||
import com.android.email2.ui.MailActivityEmail;
|
|
||||||
import com.android.emailcommon.Device;
|
import com.android.emailcommon.Device;
|
||||||
import com.android.emailcommon.Logging;
|
|
||||||
import com.android.emailcommon.VendorPolicyLoader.OAuthProvider;
|
import com.android.emailcommon.VendorPolicyLoader.OAuthProvider;
|
||||||
import com.android.emailcommon.provider.Credential;
|
import com.android.emailcommon.provider.Credential;
|
||||||
import com.android.emailcommon.provider.HostAuth;
|
import com.android.emailcommon.provider.HostAuth;
|
||||||
import com.android.emailcommon.utility.CertificateRequestor;
|
import com.android.emailcommon.utility.CertificateRequestor;
|
||||||
import com.android.mail.utils.LogUtils;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
|
@ -184,9 +177,10 @@ public class AuthenticationView extends LinearLayout implements HostCallback, On
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAuthInfo(final EmailServiceInfo serviceInfo, final HostAuth hostAuth) {
|
public void setAuthInfo(final boolean offerOAuth, final boolean offerCerts,
|
||||||
mOfferOAuth = serviceInfo.offerOAuth;
|
final HostAuth hostAuth) {
|
||||||
mOfferCerts = serviceInfo.offerCerts;
|
mOfferOAuth = offerOAuth;
|
||||||
|
mOfferCerts = offerCerts;
|
||||||
|
|
||||||
if (mOfferOAuth) {
|
if (mOfferOAuth) {
|
||||||
final Credential cred = hostAuth.getCredential(getContext());
|
final Credential cred = hostAuth.getCredential(getContext());
|
||||||
|
|
Loading…
Reference in New Issue