override fun onCreate()

in WearStandaloneGoogleSignIn/app/src/main/java/com/example/android/wearable/wear/wearstandalonegooglesignin/GoogleSignInActivity.kt [68:113]


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        setContent {
            var googleSignInAccount by remember {
                mutableStateOf(GoogleSignIn.getLastSignedInAccount(this))
            }

            val signInRequestLauncher = rememberLauncherForActivityResult(
                contract = GoogleSignInContract(googleSignInClient)
            ) {
                googleSignInAccount = it
                if (googleSignInAccount != null) {
                    Toast.makeText(
                        this,
                        R.string.google_signin_successful,
                        Toast.LENGTH_SHORT
                    ).show()
                }
            }

            val coroutineScope = rememberCoroutineScope()

            GoogleSignInScreen(
                googleSignInAccount = googleSignInAccount,
                onSignInClicked = { signInRequestLauncher.launch(Unit) },
                onSignOutClicked = {
                    coroutineScope.launch {
                        try {
                            googleSignInClient.signOut().await()

                            googleSignInAccount = null

                            Toast.makeText(
                                this@GoogleSignInActivity,
                                R.string.signout_successful,
                                Toast.LENGTH_SHORT
                            ).show()
                        } catch (apiException: ApiException) {
                            Log.w("GoogleSignInActivity", "Sign out failed: $apiException")
                        }
                    }
                },
            )
        }
    }