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")
}
}
},
)
}
}