Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package id.seedgrow.notes
- import android.content.Intent
- import androidx.appcompat.app.AppCompatActivity
- import android.os.Bundle
- import android.widget.Toast
- import com.google.android.gms.auth.api.signin.GoogleSignIn
- import com.google.android.gms.auth.api.signin.GoogleSignInAccount
- import com.google.android.gms.auth.api.signin.GoogleSignInClient
- import com.google.android.gms.auth.api.signin.GoogleSignInOptions
- import com.google.android.gms.common.api.ApiException
- import com.google.android.gms.tasks.Task
- import com.google.firebase.auth.FirebaseAuth
- import com.google.firebase.auth.GoogleAuthProvider
- import kotlinx.android.synthetic.main.activity_login.*
- class LoginActivity : AppCompatActivity() {
- val RC_SIGN_IN: Int = 1
- lateinit var mGoogleSignInClient: GoogleSignInClient
- lateinit var mGoogleSignInOptions: GoogleSignInOptions
- private lateinit var firebaseAuth: FirebaseAuth
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_login)
- configureGoogleSignIn()
- setupUI()
- firebaseAuth = FirebaseAuth.getInstance()
- }
- private fun setupUI() {
- btn_signin.setOnClickListener {
- signIn()
- }
- }
- private fun signIn() {
- val signInIntent: Intent = mGoogleSignInClient.signInIntent
- startActivityForResult(signInIntent, RC_SIGN_IN)
- }
- private fun configureGoogleSignIn() {
- mGoogleSignInOptions = GoogleSignInOptions
- .Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
- .requestIdToken(getString(R.string.default_web_client_id))
- .requestEmail()
- .build()
- mGoogleSignInClient = GoogleSignIn.getClient(this, mGoogleSignInOptions)
- }
- override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
- super.onActivityResult(requestCode, resultCode, data)
- val task: Task<GoogleSignInAccount> = GoogleSignIn.
- getSignedInAccountFromIntent(data)
- try {
- val account = task.getResult(ApiException::class.java)
- if(account != null){
- firebaseAuthWithGoogle(account)
- }
- }catch (e: ApiException){
- Toast.makeText(applicationContext, "Sign in Failed", Toast.LENGTH_LONG).show()
- }
- }
- private fun firebaseAuthWithGoogle(account: GoogleSignInAccount) {
- val credential = GoogleAuthProvider
- .getCredential(account.idToken, null)
- firebaseAuth.signInWithCredential(credential)
- .addOnCompleteListener {
- if (it.isSuccessful){
- val intent = Intent(this, MainActivity::class.java)
- startActivity(intent)
- }else {
- Toast.makeText(applicationContext, "Sign in Failed",
- Toast.LENGTH_LONG).show()
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement