Created
May 19, 2016 07:45
-
-
Save mohitmamoria/90eed823c2e3dfbbcd18b5bab427dc56 to your computer and use it in GitHub Desktop.
The sample (read: crude) implementation of the New Google Sign In API
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.horntell.pendulum; | |
import android.content.Intent; | |
import android.support.annotation.NonNull; | |
import android.support.v7.app.AppCompatActivity; | |
import android.os.Bundle; | |
import android.util.Log; | |
import android.view.View; | |
import com.google.android.gms.auth.api.Auth; | |
import com.google.android.gms.auth.api.signin.GoogleSignInOptions; | |
import com.google.android.gms.auth.api.signin.GoogleSignInResult; | |
import com.google.android.gms.common.ConnectionResult; | |
import com.google.android.gms.common.api.GoogleApiClient; | |
public class GoogleSignInActivity extends AppCompatActivity | |
implements GoogleApiClient.OnConnectionFailedListener, | |
View.OnClickListener { | |
private static final String TAG = "NewGoogleSignInActivity"; | |
private static final int RC_SIGN_IN = 9001; | |
private GoogleApiClient mGoogleApiClient; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_new_google_sign_in); | |
// Configure sign-in to request the user's ID, email address, and basic | |
// profile. ID and basic profile are included in DEFAULT_SIGN_IN. | |
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) | |
.requestEmail() | |
.requestIdToken("463286871841-4cjcbqdihgqv8dlk6mm70v45a0l8usue.apps.googleusercontent.com") | |
.build(); | |
mGoogleApiClient = new GoogleApiClient.Builder(this) | |
.enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */) | |
.addApi(Auth.GOOGLE_SIGN_IN_API, gso) | |
.build(); | |
findViewById(R.id.sign_in_button).setOnClickListener(this); | |
} | |
@Override | |
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { | |
Log.i(TAG, "onConnectionFailed: " + connectionResult.toString()); | |
} | |
@Override | |
public void onClick(View v) { | |
if (v.getId() == R.id.sign_in_button) { | |
signIn(); | |
} | |
} | |
private void signIn() { | |
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient); | |
startActivityForResult(signInIntent, RC_SIGN_IN); | |
} | |
@Override | |
public void onActivityResult(int requestCode, int resultCode, Intent data) { | |
super.onActivityResult(requestCode, resultCode, data); | |
// Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...); | |
if (requestCode == RC_SIGN_IN) { | |
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); | |
if(result.getSignInAccount() == null) { | |
Log.i(TAG, "onActivityResult: RESULT: NULL"); | |
} else { | |
Log.i(TAG, "onActivityResult: " + result.getStatus()); | |
Log.i(TAG, "onActivityResult: EMAIL: " + result.getSignInAccount().getEmail()); | |
Log.i(TAG, "onActivityResult: ID_TOKEN: " + result.getSignInAccount().getIdToken()); | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment