Search in sources :

Example 1 with TwitterLoginButton

use of com.twitter.sdk.android.core.identity.TwitterLoginButton in project ServiceStack.Java by ServiceStack.

the class LoginButtonsActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Fabric.with(this, new Twitter(new TwitterAuthConfig(getString(R.string.twitter_key), getString(R.string.twitter_secret))));
    setContentView(R.layout.login_buttons);
    Toolbar toolbar = (Toolbar) findViewById(R.id.loginToolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setHomeButtonEnabled(true);
    getSupportActionBar().setDisplayShowTitleEnabled(true);
    progressBar = (ProgressBar) findViewById(R.id.progressBar);
    txtStatus = (TextView) findViewById(R.id.txtStatus);
    UiHelpers.setStatus(txtStatus, "");
    // see this max value coming back here, we animale towards that value
    animation = ObjectAnimator.ofInt(progressBar, "progress", 0, 500);
    animation.setRepeatMode(ValueAnimator.REVERSE);
    animation.setRepeatCount(100);
    animation.setDuration(1500);
    animation.setInterpolator(new FastOutLinearInInterpolator());
    LoginButtonsActivity activity = this;
    btnTwitterLogin = (TwitterLoginButton) findViewById(R.id.btnTwitterLogin);
    btnTwitterLogin.setCallback(new Callback<TwitterSession>() {

        @Override
        public void success(Result<TwitterSession> result) {
            startProgressBar();
            UiHelpers.setStatus(txtStatus, "Local twitter sign-in successful, signing into server...");
            TwitterSession session = result.data;
            App.get().getServiceClient().postAsync(new dtos.Authenticate().setProvider("twitter").setAccessToken(session.getAuthToken().token).setAccessTokenSecret(session.getAuthToken().secret).setRememberMe(true), r -> {
                UiHelpers.setStatus(txtStatus, "Server twitter sign-in successful, opening chat...");
                App.get().saveTwitterAccessToken(session.getAuthToken());
                Intent intent = new Intent(activity, MainActivity.class);
                stopProgressBar();
                startActivity(intent);
            }, error -> {
                UiHelpers.setStatusError(txtStatus, "Server twitter sign-in failed", error);
                stopProgressBar();
            });
        }

        @Override
        public void failure(TwitterException exception) {
            Log.e(exception);
            stopProgressBar();
        }
    });
    facebookCallback = CallbackManager.Factory.create();
    btnFacebookLogin = (LoginButton) findViewById(R.id.btnFacebookLogin);
    btnFacebookLogin.setReadPermissions("email");
    btnFacebookLogin.registerCallback(facebookCallback, new FacebookCallback<LoginResult>() {

        @Override
        public void onSuccess(LoginResult loginResult) {
            UiHelpers.setStatus(txtStatus, "Local facebook sign-in successful, signing into server...");
            App.get().getServiceClient().postAsync(new dtos.Authenticate().setProvider("facebook").setAccessToken(loginResult.getAccessToken().getToken()).setRememberMe(true), r -> {
                UiHelpers.setStatus(txtStatus, "Server facebook sign-in successful, opening chat...");
                Intent intent = new Intent(activity, MainActivity.class);
                stopProgressBar();
                startActivity(intent);
            }, error -> {
                UiHelpers.setStatusError(txtStatus, "Server facebook sign-in failed", error);
                stopProgressBar();
            });
        }

        @Override
        public void onCancel() {
            stopProgressBar();
        }

        @Override
        public void onError(FacebookException exception) {
            Log.e(exception);
            stopProgressBar();
        }
    });
    Button btnGuestLogin = (Button) findViewById(R.id.btnGuestLogin);
    btnGuestLogin.setOnClickListener(view -> {
        UiHelpers.setStatus(txtStatus, "Opening chat as guest...");
        startGuestChatActivity(App.get().getServiceClient());
    });
    dtos.Authenticate authDto = App.get().getSavedAccessToken();
    if (authDto != null) {
        UiHelpers.setStatus(txtStatus, "Signing in with saved " + authDto.getProvider() + " AccessToken...");
        App.get().getServiceClient().postAsync(authDto, r -> {
            Intent intent = new Intent(activity, MainActivity.class);
            stopProgressBar();
            startActivity(intent);
        }, error -> {
            UiHelpers.setStatusError(txtStatus, "Error logging into " + authDto.getProvider() + " using Saved AccessToken", error);
            stopProgressBar();
        });
    }
}
Also used : Result(com.twitter.sdk.android.core.Result) Bundle(android.os.Bundle) ProgressBar(android.widget.ProgressBar) Intent(android.content.Intent) Twitter(com.twitter.sdk.android.Twitter) TwitterAuthConfig(com.twitter.sdk.android.core.TwitterAuthConfig) TwitterException(com.twitter.sdk.android.core.TwitterException) View(android.view.View) Button(android.widget.Button) LoginButton(com.facebook.login.widget.LoginButton) AccessToken(com.facebook.AccessToken) FacebookException(com.facebook.FacebookException) ObjectAnimator(android.animation.ObjectAnimator) LoginResult(com.facebook.login.LoginResult) AppCompatActivity(android.support.v7.app.AppCompatActivity) FacebookCallback(com.facebook.FacebookCallback) CallbackManager(com.facebook.CallbackManager) TextView(android.widget.TextView) Callback(com.twitter.sdk.android.core.Callback) AndroidServiceClient(net.servicestack.android.AndroidServiceClient) FastOutLinearInInterpolator(android.support.v4.view.animation.FastOutLinearInInterpolator) Toolbar(android.support.v7.widget.Toolbar) TwitterLoginButton(com.twitter.sdk.android.core.identity.TwitterLoginButton) Fabric(io.fabric.sdk.android.Fabric) Log(net.servicestack.client.Log) Activity(android.app.Activity) ValueAnimator(android.animation.ValueAnimator) TwitterSession(com.twitter.sdk.android.core.TwitterSession) TwitterSession(com.twitter.sdk.android.core.TwitterSession) LoginResult(com.facebook.login.LoginResult) FastOutLinearInInterpolator(android.support.v4.view.animation.FastOutLinearInInterpolator) Twitter(com.twitter.sdk.android.Twitter) TwitterAuthConfig(com.twitter.sdk.android.core.TwitterAuthConfig) Intent(android.content.Intent) Button(android.widget.Button) LoginButton(com.facebook.login.widget.LoginButton) TwitterLoginButton(com.twitter.sdk.android.core.identity.TwitterLoginButton) FacebookException(com.facebook.FacebookException) TwitterException(com.twitter.sdk.android.core.TwitterException) Toolbar(android.support.v7.widget.Toolbar)

Aggregations

ObjectAnimator (android.animation.ObjectAnimator)1 ValueAnimator (android.animation.ValueAnimator)1 Activity (android.app.Activity)1 Intent (android.content.Intent)1 Bundle (android.os.Bundle)1 FastOutLinearInInterpolator (android.support.v4.view.animation.FastOutLinearInInterpolator)1 AppCompatActivity (android.support.v7.app.AppCompatActivity)1 Toolbar (android.support.v7.widget.Toolbar)1 View (android.view.View)1 Button (android.widget.Button)1 ProgressBar (android.widget.ProgressBar)1 TextView (android.widget.TextView)1 AccessToken (com.facebook.AccessToken)1 CallbackManager (com.facebook.CallbackManager)1 FacebookCallback (com.facebook.FacebookCallback)1 FacebookException (com.facebook.FacebookException)1 LoginResult (com.facebook.login.LoginResult)1 LoginButton (com.facebook.login.widget.LoginButton)1 Twitter (com.twitter.sdk.android.Twitter)1 Callback (com.twitter.sdk.android.core.Callback)1