That's good.
What exactly is the question? You want to handle the case where SignedIn is not raised because the user cancelled the log in?
You will need to use Sleep for this.
Not exactly (meanwhile I decided to use only a custom registration, but I need anyway to solve, for future apps).
In the Resume I call a routine which sets the visibility of some views (to select the type of registration or login, edittexts for nick, pw, email, confirmations...) based on the "state of the activity":
Sub Activity_Resume
If mRegisState = REGIS_STATE_G_SIGNIN Then
If mFireBaseAuth.CurrentUser.IsInitialized = False Then
mRegisState = REGIS_STATE_FIRST_SEL
End If
End If
SetViews
End Sub
If user choses to sign in with Google, there are two possible cases: he selects a google account or "aborts", touching on the screen.
mFireBaseAuth.CurrentUser.IsInitialized will be false in both cases, because the SignedIn event will raise only after.