am 9c0463e6
: Don\'t offer oauth unless we have at least one provider
* commit '9c0463e6b485b3b50d9c6f110a9ece650cd4a692': Don't offer oauth unless we have at least one provider
This commit is contained in:
commit
b63b39d03e
@ -79,6 +79,7 @@ public class AccountSetupCredentialsFragment extends AccountSetupFragment
|
|||||||
private boolean mOfferOAuth;
|
private boolean mOfferOAuth;
|
||||||
private boolean mOfferCerts;
|
private boolean mOfferCerts;
|
||||||
private String mProviderId;
|
private String mProviderId;
|
||||||
|
List<OAuthProvider> mOauthProviders;
|
||||||
|
|
||||||
private Context mAppContext;
|
private Context mAppContext;
|
||||||
|
|
||||||
@ -168,16 +169,22 @@ public class AccountSetupCredentialsFragment extends AccountSetupFragment
|
|||||||
mAppContext = getActivity().getApplicationContext();
|
mAppContext = getActivity().getApplicationContext();
|
||||||
mEmailAddress = getArguments().getString(EXTRA_EMAIL);
|
mEmailAddress = getArguments().getString(EXTRA_EMAIL);
|
||||||
final String protocol = getArguments().getString(EXTRA_PROTOCOL);
|
final String protocol = getArguments().getString(EXTRA_PROTOCOL);
|
||||||
// TODO: for now, we might not know what protocol we're using, so just default to
|
mOauthProviders = AccountSettingsUtils.getAllOAuthProviders(mAppContext);
|
||||||
// offering oauth
|
|
||||||
mOfferOAuth = true;
|
|
||||||
mOfferCerts = true;
|
mOfferCerts = true;
|
||||||
if (protocol != null) {
|
if (protocol != null) {
|
||||||
final EmailServiceInfo info = EmailServiceUtils.getServiceInfo(mAppContext, protocol);
|
final EmailServiceInfo info = EmailServiceUtils.getServiceInfo(mAppContext, protocol);
|
||||||
if (info != null) {
|
if (info != null) {
|
||||||
mOfferOAuth = info.offerOAuth;
|
if (mOauthProviders.size() > 0) {
|
||||||
|
mOfferOAuth = info.offerOAuth;
|
||||||
|
}
|
||||||
mOfferCerts = info.offerCerts;
|
mOfferCerts = info.offerCerts;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// For now, we might not know what protocol we're using, so just default to
|
||||||
|
// offering oauth
|
||||||
|
if (mOauthProviders.size() > 0) {
|
||||||
|
mOfferOAuth = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
mOAuthGroup.setVisibility(mOfferOAuth ? View.VISIBLE : View.GONE);
|
mOAuthGroup.setVisibility(mOfferOAuth ? View.VISIBLE : View.GONE);
|
||||||
mRegularPasswordText.setVisibility(mOfferOAuth ? View.GONE : View.VISIBLE);
|
mRegularPasswordText.setVisibility(mOfferOAuth ? View.GONE : View.VISIBLE);
|
||||||
@ -279,13 +286,11 @@ public class AccountSetupCredentialsFragment extends AccountSetupFragment
|
|||||||
public void onClick(final View view) {
|
public void onClick(final View view) {
|
||||||
final int viewId = view.getId();
|
final int viewId = view.getId();
|
||||||
if (viewId == R.id.sign_in_with_oauth) {
|
if (viewId == R.id.sign_in_with_oauth) {
|
||||||
List<OAuthProvider> oauthProviders = AccountSettingsUtils.getAllOAuthProviders(
|
|
||||||
mAppContext);
|
|
||||||
// TODO currently the only oauth provider we support is google.
|
// TODO currently the only oauth provider we support is google.
|
||||||
// If we ever have more than 1 oauth provider, then we need to implement some sort
|
// If we ever have more than 1 oauth provider, then we need to implement some sort
|
||||||
// of picker UI. For now, just always take the first oauth provider.
|
// of picker UI. For now, just always take the first oauth provider.
|
||||||
if (oauthProviders.size() > 0) {
|
if (mOauthProviders.size() > 0) {
|
||||||
mProviderId = oauthProviders.get(0).id;
|
mProviderId = mOauthProviders.get(0).id;
|
||||||
final Intent i = new Intent(getActivity(), OAuthAuthenticationActivity.class);
|
final Intent i = new Intent(getActivity(), OAuthAuthenticationActivity.class);
|
||||||
i.putExtra(OAuthAuthenticationActivity.EXTRA_EMAIL_ADDRESS, mEmailAddress);
|
i.putExtra(OAuthAuthenticationActivity.EXTRA_EMAIL_ADDRESS, mEmailAddress);
|
||||||
i.putExtra(OAuthAuthenticationActivity.EXTRA_PROVIDER, mProviderId);
|
i.putExtra(OAuthAuthenticationActivity.EXTRA_PROVIDER, mProviderId);
|
||||||
|
@ -44,6 +44,7 @@ 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.emailcommon.Device;
|
import com.android.emailcommon.Device;
|
||||||
|
import com.android.emailcommon.VendorPolicyLoader;
|
||||||
import com.android.emailcommon.provider.Account;
|
import com.android.emailcommon.provider.Account;
|
||||||
import com.android.emailcommon.provider.Credential;
|
import com.android.emailcommon.provider.Credential;
|
||||||
import com.android.emailcommon.provider.HostAuth;
|
import com.android.emailcommon.provider.HostAuth;
|
||||||
@ -54,6 +55,7 @@ import com.android.mail.utils.LogUtils;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides UI for IMAP/POP account settings.
|
* Provides UI for IMAP/POP account settings.
|
||||||
@ -83,6 +85,7 @@ public class AccountSetupIncomingFragment extends AccountServerBaseFragment
|
|||||||
private View mDeviceIdSection;
|
private View mDeviceIdSection;
|
||||||
private View mImapPathPrefixSectionView;
|
private View mImapPathPrefixSectionView;
|
||||||
private EditText mImapPathPrefixView;
|
private EditText mImapPathPrefixView;
|
||||||
|
private boolean mOAuthProviderPresent;
|
||||||
// Delete policy as loaded from the device
|
// Delete policy as loaded from the device
|
||||||
private int mLoadedDeletePolicy;
|
private int mLoadedDeletePolicy;
|
||||||
|
|
||||||
@ -337,9 +340,13 @@ public class AccountSetupIncomingFragment extends AccountServerBaseFragment
|
|||||||
final Account account = mSetupData.getAccount();
|
final Account account = mSetupData.getAccount();
|
||||||
final HostAuth recvAuth = account.getOrCreateHostAuthRecv(mAppContext);
|
final HostAuth recvAuth = account.getOrCreateHostAuthRecv(mAppContext);
|
||||||
mServiceInfo = mSetupData.getIncomingServiceInfo(getActivity());
|
mServiceInfo = mSetupData.getIncomingServiceInfo(getActivity());
|
||||||
mAuthenticationView.setAuthInfo(mServiceInfo.offerOAuth, recvAuth);
|
final List<VendorPolicyLoader.OAuthProvider> oauthProviders =
|
||||||
|
AccountSettingsUtils.getAllOAuthProviders(getActivity());
|
||||||
|
final boolean offerOAuth = (mServiceInfo.offerOAuth && oauthProviders.size() > 0);
|
||||||
|
|
||||||
|
mAuthenticationView.setAuthInfo(offerOAuth, recvAuth);
|
||||||
if (mAuthenticationLabel != null) {
|
if (mAuthenticationLabel != null) {
|
||||||
if (mServiceInfo.offerOAuth) {
|
if (offerOAuth) {
|
||||||
mAuthenticationLabel.setText(R.string.authentication_label);
|
mAuthenticationLabel.setText(R.string.authentication_label);
|
||||||
} else {
|
} else {
|
||||||
mAuthenticationLabel.setText(R.string.account_setup_basics_password_label);
|
mAuthenticationLabel.setText(R.string.account_setup_basics_password_label);
|
||||||
|
@ -42,6 +42,7 @@ 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.activity.setup.AuthenticationView.AuthenticationCallback;
|
||||||
import com.android.email.provider.AccountBackupRestore;
|
import com.android.email.provider.AccountBackupRestore;
|
||||||
|
import com.android.emailcommon.VendorPolicyLoader;
|
||||||
import com.android.emailcommon.provider.Account;
|
import com.android.emailcommon.provider.Account;
|
||||||
import com.android.emailcommon.provider.Credential;
|
import com.android.emailcommon.provider.Credential;
|
||||||
import com.android.emailcommon.provider.HostAuth;
|
import com.android.emailcommon.provider.HostAuth;
|
||||||
@ -49,6 +50,8 @@ import com.android.emailcommon.utility.Utility;
|
|||||||
import com.android.mail.ui.MailAsyncTaskLoader;
|
import com.android.mail.ui.MailAsyncTaskLoader;
|
||||||
import com.android.mail.utils.LogUtils;
|
import com.android.mail.utils.LogUtils;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides UI for SMTP account settings (for IMAP/POP accounts).
|
* Provides UI for SMTP account settings (for IMAP/POP accounts).
|
||||||
*
|
*
|
||||||
@ -236,7 +239,9 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment
|
|||||||
mRequireLoginView.setChecked(true);
|
mRequireLoginView.setChecked(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
mAuthenticationView.setAuthInfo(true, sendAuth);
|
final List<VendorPolicyLoader.OAuthProvider> oauthProviders =
|
||||||
|
AccountSettingsUtils.getAllOAuthProviders(getActivity());
|
||||||
|
mAuthenticationView.setAuthInfo(oauthProviders.size() > 0, sendAuth);
|
||||||
if (mAuthenticationLabel != null) {
|
if (mAuthenticationLabel != null) {
|
||||||
mAuthenticationLabel.setText(R.string.authentication_label);
|
mAuthenticationLabel.setText(R.string.authentication_label);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user