Created
May 23, 2020 06:03
-
-
Save siisee11/299ccf69bb883b04a6e0591b50d3cbd7 to your computer and use it in GitHub Desktop.
Main activity google login
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
public class MainActivity extends AppCompatActivity implements View.OnClickListener { | |
private static final int RC_SIGN_IN = 9001; | |
private static final String TAG = "Oauth2Google"; | |
GoogleSignInClient mGoogleSignInClient; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
// 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() | |
.build(); | |
// Build a GoogleSignInClient with the options specified by gso. | |
mGoogleSignInClient = GoogleSignIn.getClient(this, gso); | |
findViewById(R.id.googleButton).setOnClickListener(this); | |
} | |
@Override | |
protected void onStart() | |
{ | |
super.onStart(); | |
// Check for existing Google Sign In account, if the user is already signed in | |
// the GoogleSignInAccount will be non-null. | |
GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this); | |
updateUI(account); | |
} | |
@Override | |
public void onActivityResult(int requestCode, int resultCode, Intent data) { | |
super.onActivityResult(requestCode, resultCode, data); | |
// Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...); | |
if (requestCode == RC_SIGN_IN) { | |
// The Task returned from this call is always completed, no need to attach | |
// a listener. | |
Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data); | |
handleSignInResult(task); | |
} | |
} | |
private void handleSignInResult(Task<GoogleSignInAccount> completedTask) { | |
try { | |
GoogleSignInAccount account = completedTask.getResult(ApiException.class); | |
// Signed in successfully, show authenticated UI. | |
updateUI(account); | |
} catch (ApiException e) { | |
// The ApiException status code indicates the detailed failure reason. | |
// Please refer to the GoogleSignInStatusCodes class reference for more information. | |
Log.w(TAG, "signInResult:failed code=" + e.getStatusCode()); | |
updateUI(null); | |
} | |
} | |
private void updateUI(GoogleSignInAccount account) { | |
} | |
@Override | |
public void onClick(View v) { | |
switch (v.getId()) { | |
case R.id.googleButton: | |
signIn(); | |
break; | |
// ... | |
} | |
} | |
private void signIn() { | |
Intent signInIntent = mGoogleSignInClient.getSignInIntent(); | |
startActivityForResult(signInIntent, RC_SIGN_IN); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment