Jason Inbody
08/21/2021, 6:59 PMJason Inbody
08/21/2021, 7:00 PMvar loginIntent = Intent(user.context, FacebookLoginActivity::class.java)
val fbLoginInLauncher = rememberLauncherForActivityResult(
contract = ActivityResultContracts.StartActivityForResult()
){ result: ActivityResult ->
print("hello") // this never hits
}
...
Button(
onClick = { launchSignIn(fbLoginInLauncher, loginIntent) },
modifier = Modifier
.padding(start = 40.dp, end = 40.dp, top = 10.dp, bottom = 10.dp)
.fillMaxWidth()
) {
Text("Login with facebook")
}
...
fun launchSignIn(launcher: ManagedActivityResultLauncher<Intent, ActivityResult>, intent: Intent){
launcher.launch(intent)
}
and in android activity land I have
class FacebookLoginActivity() : Activity() {
lateinit var callbackManager: CallbackManager
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
callbackManager = CallbackManager.Factory.create()
var loginManager = LoginManager.getInstance()
loginManager.registerCallback(callbackManager,
object : FacebookCallback<LoginResult?> {
override fun onSuccess(loginResult: LoginResult?) {
val token = loginResult?.accessToken?.token
// user.createFacebook(user, token)
}
override fun onCancel() {
// App code
}
override fun onError(exception: FacebookException) {
// App code
}
})
loginManager.logInWithReadPermissions(this, listOf("email"))
}
override public fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
callbackManager.onActivityResult(requestCode, resultCode, data)
}
}
Jason Inbody
08/21/2021, 7:01 PM