Android Open Source - xing-android-sdk Auth Handler






From Project

Back to project page xing-android-sdk.

License

The source code is released under:

Apache License

If you think the Android project xing-android-sdk listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package de.hdodenhof.xingapi.internal;
//w  w w  . j a v  a 2s.  com
import org.scribe.model.Token;
import org.scribe.model.Verifier;
import org.scribe.oauth.OAuthService;

import android.content.Context;
import android.os.AsyncTask;

import de.hdodenhof.xingapi.internal.widget.AuthWebDialog;

public class AuthHandler {

    private OAuthService mOAuthService;
    private Callback mCallback;

    public interface Callback {
        public void onSuccess(String token, String secret);
        public void onCancel();
        public void onFailure();
    }

    public AuthHandler(OAuthService oAuthService) {
        mOAuthService = oAuthService;
    }

    public void authenticate(final Context context, Callback callback) {
        mCallback = callback;

        new AsyncTask<Void, Void, Token>() {
            @Override
            protected Token doInBackground(Void... params) {
                try {
                    return mOAuthService.getRequestToken();
                } catch (Exception e) {
                    return null;
                }
            }

            @Override
            protected void onPostExecute(Token requestToken) {
                if (requestToken != null) {
                    showAuthDialog(context, requestToken);
                } else {
                    sendErrorToAuthListener();
                }
            }
        }.execute();
    }

    private void showAuthDialog(Context context, final Token requestToken) {
        new AuthWebDialog(context, mOAuthService.getAuthorizationUrl(requestToken), new AuthWebDialog.OnCompleteListener() {
            @Override
            public void onComplete(String verifier) {
                finishAuth(requestToken, new Verifier(verifier));
            }

            @Override
            public void onAbort() {
                sendCancelToAuthListener();
            }

            @Override
            public void onError() {
                sendErrorToAuthListener();
            }
        }).show();
    }

    private void finishAuth(final Token requestToken, final Verifier verifier) {
        new AsyncTask<Void, Void, Token>() {
            @Override
            protected Token doInBackground(Void... params) {
                try {
                    return mOAuthService.getAccessToken(requestToken, verifier);
                } catch (Exception e) {
                    return null;
                }
            }

            @Override
            protected void onPostExecute(Token accessToken) {
                if (accessToken != null && !accessToken.isEmpty()) {
                    sendSuccessToAuthListener(accessToken);
                } else {
                    sendErrorToAuthListener();
                }
            }
        }.execute();
    }

    private void sendSuccessToAuthListener(Token token) {
        if (mCallback != null) {
            mCallback.onSuccess(token.getToken(), token.getSecret());
        }
    }

    private void sendErrorToAuthListener() {
        if (mCallback != null) {
            mCallback.onFailure();
        }
    }

    private void sendCancelToAuthListener() {
        if (mCallback != null) {
            mCallback.onCancel();
        }
    }
}




Java Source Code List

de.hdodenhof.xingapi.BaseAPI.java
de.hdodenhof.xingapi.ContactsAPI.java
de.hdodenhof.xingapi.MessagesAPI.java
de.hdodenhof.xingapi.NetworkFeedAPI.java
de.hdodenhof.xingapi.ProfileVisitsAPI.java
de.hdodenhof.xingapi.UserProfilesAPI.java
de.hdodenhof.xingapi.XingApiClient.java
de.hdodenhof.xingapi.enums.ActivityAction.java
de.hdodenhof.xingapi.enums.ActivityAggregator.java
de.hdodenhof.xingapi.enums.ActivityObjectType.java
de.hdodenhof.xingapi.enums.ActivityVerb.java
de.hdodenhof.xingapi.enums.Badge.java
de.hdodenhof.xingapi.enums.CarrerLevel.java
de.hdodenhof.xingapi.enums.CompanyIndustry.java
de.hdodenhof.xingapi.enums.CompanySize.java
de.hdodenhof.xingapi.enums.EmploymentStatus.java
de.hdodenhof.xingapi.enums.ErrorName.java
de.hdodenhof.xingapi.enums.FormOfEmployment.java
de.hdodenhof.xingapi.enums.IMAccount.java
de.hdodenhof.xingapi.enums.LanguageSkill.java
de.hdodenhof.xingapi.enums.Language.java
de.hdodenhof.xingapi.enums.PremiumService.java
de.hdodenhof.xingapi.enums.Reason.java
de.hdodenhof.xingapi.enums.UserField.java
de.hdodenhof.xingapi.enums.WebProfile.java
de.hdodenhof.xingapi.exceptions.ApiException.java
de.hdodenhof.xingapi.exceptions.BaseException.java
de.hdodenhof.xingapi.exceptions.ConversionException.java
de.hdodenhof.xingapi.exceptions.NetworkException.java
de.hdodenhof.xingapi.internal.AuthHandler.java
de.hdodenhof.xingapi.internal.OAuthConstants.java
de.hdodenhof.xingapi.internal.communication.ErrorHandler.java
de.hdodenhof.xingapi.internal.communication.SigningOkClient.java
de.hdodenhof.xingapi.internal.communication.XingApiInterface.java
de.hdodenhof.xingapi.internal.response.ActivityWrapper.java
de.hdodenhof.xingapi.internal.response.CommentsWrapper.java
de.hdodenhof.xingapi.internal.response.ContactsWrapper.java
de.hdodenhof.xingapi.internal.response.ConversationWrapper.java
de.hdodenhof.xingapi.internal.response.ConversationsWrapper.java
de.hdodenhof.xingapi.internal.response.IdCardWrapper.java
de.hdodenhof.xingapi.internal.response.LikesWrapper.java
de.hdodenhof.xingapi.internal.response.MessageWrapper.java
de.hdodenhof.xingapi.internal.response.MessagesWrapper.java
de.hdodenhof.xingapi.internal.response.NetworkActivityWrapper.java
de.hdodenhof.xingapi.internal.response.ProfileMessageWrapper.java
de.hdodenhof.xingapi.internal.response.ResponseWrapper.java
de.hdodenhof.xingapi.internal.response.ResultWrapper.java
de.hdodenhof.xingapi.internal.response.SharedContactsWrapper.java
de.hdodenhof.xingapi.internal.response.TagsWrapper.java
de.hdodenhof.xingapi.internal.response.UserWrapper.java
de.hdodenhof.xingapi.internal.response.VisitsWrapper.java
de.hdodenhof.xingapi.internal.util.HTTPUtils.java
de.hdodenhof.xingapi.internal.util.URLUtils.java
de.hdodenhof.xingapi.internal.widget.AuthWebDialog.java
de.hdodenhof.xingapi.models.ActivityObject.java
de.hdodenhof.xingapi.models.Address.java
de.hdodenhof.xingapi.models.ApiError.java
de.hdodenhof.xingapi.models.Award.java
de.hdodenhof.xingapi.models.BirthDate.java
de.hdodenhof.xingapi.models.Bookmark.java
de.hdodenhof.xingapi.models.Comment.java
de.hdodenhof.xingapi.models.CompanyProfileUpdate.java
de.hdodenhof.xingapi.models.CompanyProfile.java
de.hdodenhof.xingapi.models.Company.java
de.hdodenhof.xingapi.models.Contacts.java
de.hdodenhof.xingapi.models.Conversation.java
de.hdodenhof.xingapi.models.Conversations.java
de.hdodenhof.xingapi.models.EducationalBackground.java
de.hdodenhof.xingapi.models.ErrorResponse.java
de.hdodenhof.xingapi.models.Event.java
de.hdodenhof.xingapi.models.FindByEmailsResult.java
de.hdodenhof.xingapi.models.Group.java
de.hdodenhof.xingapi.models.IdCard.java
de.hdodenhof.xingapi.models.JobPosting.java
de.hdodenhof.xingapi.models.Message.java
de.hdodenhof.xingapi.models.Messages.java
de.hdodenhof.xingapi.models.MetaComment.java
de.hdodenhof.xingapi.models.MetaLike.java
de.hdodenhof.xingapi.models.NetworkActivity.java
de.hdodenhof.xingapi.models.PhotoUrls.java
de.hdodenhof.xingapi.models.ProfessionalExperience.java
de.hdodenhof.xingapi.models.ProfileMessage.java
de.hdodenhof.xingapi.models.Results.java
de.hdodenhof.xingapi.models.School.java
de.hdodenhof.xingapi.models.Status.java
de.hdodenhof.xingapi.models.Tag.java
de.hdodenhof.xingapi.models.Tags.java
de.hdodenhof.xingapi.models.Thread.java
de.hdodenhof.xingapi.models.TimeZone.java
de.hdodenhof.xingapi.models.User.java
de.hdodenhof.xingapi.models.Visit.java
de.hdodenhof.xingapi.sample.MainActivity.java
de.hdodenhof.xingapi.sample.OAuthFragment.java
de.hdodenhof.xingapi.sample.ProfileFragment.java
de.hdodenhof.xingapi.typeadapter.ActivityObjectTypeAdapter.java