| package com.android.emailcommon.service; |
| |
| import android.os.Parcel; |
| import android.os.Parcelable; |
| import android.text.TextUtils; |
| |
| import com.android.emailcommon.provider.Credential; |
| import com.android.emailcommon.provider.HostAuth; |
| import com.google.common.base.Objects; |
| |
| /* |
| * This class is explicitly for communicating HostAuth information to different implementations of |
| * IEmailService. We do not want to use the regular HostAuth class because it's used in many ways |
| * and could need to change at some point, which could break Exchange. |
| */ |
| public class HostAuthCompat implements Parcelable { |
| private String mProtocol; |
| private String mAddress; |
| private int mPort; |
| private int mFlags; |
| private String mLogin; |
| private String mPassword; |
| private String mDomain; |
| private String mClientCertAlias; |
| private byte[] mServerCert; |
| private String mProviderId; |
| private String mAccessToken; |
| private String mRefreshToken; |
| private long mExpiration; |
| |
| public HostAuthCompat(HostAuth hostAuth) { |
| mProtocol = hostAuth.mProtocol; |
| mAddress = hostAuth.mAddress; |
| mPort = hostAuth.mPort; |
| mFlags = hostAuth.mFlags; |
| mLogin = hostAuth.mLogin; |
| mPassword = hostAuth.mPassword; |
| mDomain = hostAuth.mDomain; |
| mClientCertAlias = hostAuth.mClientCertAlias; |
| mServerCert = hostAuth.mServerCert; |
| if (hostAuth.mCredential != null) { |
| mProviderId = hostAuth.mCredential.mProviderId; |
| mAccessToken = hostAuth.mCredential.mAccessToken; |
| mRefreshToken = hostAuth.mCredential.mRefreshToken; |
| mExpiration = hostAuth.mCredential.mExpiration; |
| } |
| } |
| |
| public HostAuth toHostAuth() { |
| HostAuth hostAuth = new HostAuth(); |
| hostAuth.mProtocol = mProtocol; |
| hostAuth.mAddress = mAddress; |
| hostAuth.mPort = mPort; |
| hostAuth.mFlags = mFlags; |
| hostAuth.mLogin = mLogin; |
| hostAuth.mPassword = mPassword; |
| hostAuth.mDomain = mDomain; |
| hostAuth.mClientCertAlias = mClientCertAlias; |
| hostAuth.mServerCert = mServerCert; |
| if (!TextUtils.isEmpty(mProviderId)) { |
| hostAuth.mCredential = new Credential(); |
| hostAuth.mCredential.mProviderId = mProviderId; |
| hostAuth.mCredential.mAccessToken = mAccessToken; |
| hostAuth.mCredential.mRefreshToken = mRefreshToken; |
| hostAuth.mCredential.mExpiration = mExpiration; |
| } |
| return hostAuth; |
| } |
| |
| @Override |
| public int describeContents() { |
| return 0; |
| } |
| |
| @Override |
| public String toString() { |
| return "[protocol " + mProtocol + "]"; |
| } |
| |
| @Override |
| public void writeToParcel(Parcel parcel, int i) { |
| parcel.writeString(mProtocol); |
| parcel.writeString(mAddress); |
| parcel.writeInt(mPort); |
| parcel.writeInt(mFlags); |
| parcel.writeString(mLogin); |
| parcel.writeString(mPassword); |
| parcel.writeString(mDomain); |
| parcel.writeString(mClientCertAlias); |
| parcel.writeByteArray(mServerCert); |
| parcel.writeString(mProviderId); |
| parcel.writeString(mAccessToken); |
| parcel.writeString(mRefreshToken); |
| parcel.writeLong(mExpiration); |
| } |
| |
| /** |
| * Supports Parcelable |
| */ |
| public HostAuthCompat(Parcel in) { |
| mProtocol = in.readString(); |
| mAddress = in.readString(); |
| mPort = in.readInt(); |
| mFlags = in.readInt(); |
| mLogin = in.readString(); |
| mPassword = in.readString(); |
| mDomain = in.readString(); |
| mClientCertAlias = in.readString(); |
| mServerCert = in.createByteArray(); |
| mProviderId = in.readString(); |
| mAccessToken = in.readString(); |
| mRefreshToken = in.readString(); |
| mExpiration = in.readLong(); |
| } |
| |
| /** |
| * Supports Parcelable |
| */ |
| public static final Parcelable.Creator<HostAuthCompat> CREATOR |
| = new Parcelable.Creator<HostAuthCompat>() { |
| @Override |
| public HostAuthCompat createFromParcel(Parcel in) { |
| return new HostAuthCompat(in); |
| } |
| |
| @Override |
| public HostAuthCompat[] newArray(int size) { |
| return new HostAuthCompat[size]; |
| } |
| }; |
| |
| } |