13326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana/*
23326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana * Copyright (C) 2009 The Android Open Source Project
33326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana *
43326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana * Licensed under the Apache License, Version 2.0 (the "License");
53326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana * you may not use this file except in compliance with the License.
63326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana * You may obtain a copy of the License at
73326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana *
83326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana *      http://www.apache.org/licenses/LICENSE-2.0
93326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana *
103326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana * Unless required by applicable law or agreed to in writing, software
113326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana * distributed under the License is distributed on an "AS IS" BASIS,
123326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
133326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana * See the License for the specific language governing permissions and
143326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana * limitations under the License.
153326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana */
163326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana
173326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintanapackage android.accounts;
183326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana
193326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintanaimport android.os.Bundle;
203326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintanaimport android.os.Parcel;
213326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintanaimport android.os.Parcelable;
223326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintanaimport android.os.RemoteException;
233326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana
243326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana/**
255994cd2898ad3c76d1f5068137a884024f521163Fred Quintana * Used to return a response to the AccountManager.
265994cd2898ad3c76d1f5068137a884024f521163Fred Quintana * @hide
273326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana */
283326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintanapublic class AccountManagerResponse implements Parcelable {
293326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana    private IAccountManagerResponse mResponse;
303326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana
319efe265f086d482802c236ae1a4ef75507efa76dFred Quintana    /** @hide */
323326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana    public AccountManagerResponse(IAccountManagerResponse response) {
333326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana        mResponse = response;
343326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana    }
353326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana
369efe265f086d482802c236ae1a4ef75507efa76dFred Quintana    /** @hide */
373326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana    public AccountManagerResponse(Parcel parcel) {
383326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana        mResponse =
393326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana                IAccountManagerResponse.Stub.asInterface(parcel.readStrongBinder());
403326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana    }
413326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana
423326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana    public void onResult(Bundle result) {
433326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana        try {
443326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana            mResponse.onResult(result);
453326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana        } catch (RemoteException e) {
463326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana            // this should never happen
473326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana        }
483326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana    }
493326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana
503326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana    public void onError(int errorCode, String errorMessage) {
513326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana        try {
523326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana            mResponse.onError(errorCode, errorMessage);
533326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana        } catch (RemoteException e) {
543326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana            // this should never happen
553326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana        }
563326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana    }
573326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana
589efe265f086d482802c236ae1a4ef75507efa76dFred Quintana    /** @hide */
593326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana    public int describeContents() {
603326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana        return 0;
613326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana    }
623326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana
639efe265f086d482802c236ae1a4ef75507efa76dFred Quintana    /** @hide */
643326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana    public void writeToParcel(Parcel dest, int flags) {
653326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana        dest.writeStrongBinder(mResponse.asBinder());
663326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana    }
673326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana
689efe265f086d482802c236ae1a4ef75507efa76dFred Quintana    /** @hide */
693326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana    public static final Creator<AccountManagerResponse> CREATOR =
703326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana            new Creator<AccountManagerResponse>() {
713326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana        public AccountManagerResponse createFromParcel(Parcel source) {
723326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana            return new AccountManagerResponse(source);
733326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana        }
743326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana
753326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana        public AccountManagerResponse[] newArray(int size) {
763326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana            return new AccountManagerResponse[size];
773326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana        }
783326920329cecb57c7ff1fc5c6add5c98aab9ed9Fred Quintana    };
799efe265f086d482802c236ae1a4ef75507efa76dFred Quintana}
80