From 5d14d8bb7b5382bc47499728061849705bb680e1 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 11 Mar 2025 14:21:29 +0100 Subject: [PATCH] Fixed SSO login from QRcode --- .../fragment/QrCodeScannerFragment.kt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/app/src/main/java/org/linphone/ui/assistant/fragment/QrCodeScannerFragment.kt b/app/src/main/java/org/linphone/ui/assistant/fragment/QrCodeScannerFragment.kt index 3bca100db..555ed81c1 100644 --- a/app/src/main/java/org/linphone/ui/assistant/fragment/QrCodeScannerFragment.kt +++ b/app/src/main/java/org/linphone/ui/assistant/fragment/QrCodeScannerFragment.kt @@ -38,6 +38,7 @@ import org.linphone.databinding.AssistantQrCodeScannerFragmentBinding import org.linphone.ui.GenericActivity import org.linphone.ui.GenericFragment import org.linphone.ui.assistant.viewmodel.QrCodeViewModel +import org.linphone.ui.main.sso.fragment.SingleSignOnFragmentDirections @UiThread class QrCodeScannerFragment : GenericFragment() { @@ -98,6 +99,24 @@ class QrCodeScannerFragment : GenericFragment() { } } + coreContext.bearerAuthenticationRequestedEvent.observe(viewLifecycleOwner) { + it.consume { pair -> + val serverUrl = pair.first + val username = pair.second + + Log.i( + "$TAG Navigating to Single Sign On Fragment with server URL [$serverUrl] and username [$username]" + ) + if (findNavController().currentDestination?.id == R.id.qrCodeScannerFragment) { + val action = SingleSignOnFragmentDirections.actionGlobalSingleSignOnFragment( + serverUrl, + username + ) + findNavController().navigate(action) + } + } + } + if (!isCameraPermissionGranted()) { if (ActivityCompat.shouldShowRequestPermissionRationale(requireActivity(), Manifest.permission.CAMERA)) { Log.w("$TAG CAMERA permission wasn't granted yet, asking for it now")