Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.appdev.ngoapp;
- import android.app.Activity;
- import android.app.ProgressDialog;
- import android.content.Intent;
- import android.content.IntentSender;
- import android.os.Bundle;
- import android.view.View;
- import com.google.android.gms.common.ConnectionResult;
- import com.google.android.gms.common.GooglePlayServicesUtil;
- import com.google.android.gms.common.SignInButton;
- import com.google.android.gms.common.api.GoogleApiClient;
- import com.google.android.gms.plus.Plus;
- /**
- * Created by Adarsh on 01-02-2015.
- */
- public class LoginActivity extends Activity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
- private GoogleApiClient googleApiClient;
- boolean intentInProgress;
- boolean signInClicked;
- private ConnectionResult connectionResult;
- private SignInButton signInButton;
- private ProgressDialog progressDialog;
- boolean dialogFlag=false;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.login_layout);
- signInButton = (SignInButton) findViewById(R.id.signin);
- signInButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- progressDialog = ProgressDialog.show(LoginActivity.this, "Please Wait", "Logging In", true);
- progressDialog.setCancelable(false);
- dialogFlag=true;
- signInWithGplus();
- }
- });
- googleApiClient = new GoogleApiClient.Builder(this).addConnectionCallbacks(this).addOnConnectionFailedListener(this).addApi(Plus.API).addScope(Plus.SCOPE_PLUS_LOGIN).build();
- }
- protected void onStart() {
- super.onStart();
- googleApiClient.connect();
- }
- protected void onStop() {
- super.onStop();
- if(googleApiClient.isConnected()) {
- googleApiClient.disconnect();
- }
- }
- @Override
- public void onConnectionFailed(ConnectionResult result) {
- if (!result.hasResolution()) {
- GooglePlayServicesUtil.getErrorDialog(result.getErrorCode(), this,
- 0).show();
- return;
- }
- if (!intentInProgress) {
- // Store the ConnectionResult for later usage
- connectionResult = result;
- if (signInClicked) {
- // The user has already clicked 'sign-in' so we attempt to
- // resolve all
- // errors until the user is signed in, or they cancel.
- resolveSignInError();
- }
- }
- }
- @Override
- protected void onActivityResult(int requestCode, int responseCode, Intent intent) {
- if (requestCode == 0) {
- if (responseCode != RESULT_OK) {
- signInClicked = false;
- }
- intentInProgress = false;
- if (!googleApiClient.isConnecting()) {
- googleApiClient.connect();
- }
- }
- }
- @Override
- public void onConnected(Bundle arg0) {
- if(dialogFlag) {
- progressDialog.dismiss();
- }
- signInClicked = false;
- String email = Plus.AccountApi.getAccountName(googleApiClient);
- Intent mainActivity = new Intent(this,MainActivity.class);
- mainActivity.putExtra("email",email);
- mainActivity.putExtra("code",1);
- startActivity(mainActivity);
- }
- @Override
- public void onConnectionSuspended(int arg0) {
- googleApiClient.connect();
- }
- private void signInWithGplus() {
- if (!googleApiClient.isConnecting()) {
- signInClicked = true;
- resolveSignInError();
- }
- }
- private void resolveSignInError() {
- if (connectionResult.hasResolution()) {
- try {
- intentInProgress = true;
- connectionResult.startResolutionForResult(this, 0);
- } catch (IntentSender.SendIntentException e) {
- intentInProgress = false;
- googleApiClient.connect();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement