diff --git a/app/src/main/java/org/linphone/ui/assistant/SingleSignOnActivity.kt b/app/src/main/java/org/linphone/ui/assistant/SingleSignOnActivity.kt
index e77f6ef3b..39a5e3c70 100644
--- a/app/src/main/java/org/linphone/ui/assistant/SingleSignOnActivity.kt
+++ b/app/src/main/java/org/linphone/ui/assistant/SingleSignOnActivity.kt
@@ -19,10 +19,13 @@
*/
package org.linphone.ui.assistant
+import android.content.Intent
import android.os.Bundle
import androidx.annotation.UiThread
import androidx.databinding.DataBindingUtil
import androidx.lifecycle.ViewModelProvider
+import net.openid.appauth.AuthorizationException
+import net.openid.appauth.AuthorizationResponse
import org.linphone.R
import org.linphone.core.tools.Log
import org.linphone.databinding.AssistantSingleSignOnActivityBinding
@@ -33,6 +36,8 @@ import org.linphone.ui.assistant.viewmodel.SingleSignOnViewModel
class SingleSignOnActivity : GenericActivity() {
companion object {
private const val TAG = "[Single Sign On Activity]"
+
+ private const val ACTIVITY_RESULT_ID = 666
}
private lateinit var binding: AssistantSingleSignOnActivityBinding
@@ -42,13 +47,12 @@ class SingleSignOnActivity : GenericActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- viewModel = run {
- ViewModelProvider(this)[SingleSignOnViewModel::class.java]
- }
-
binding = DataBindingUtil.setContentView(this, R.layout.assistant_single_sign_on_activity)
binding.lifecycleOwner = this
+ viewModel = ViewModelProvider(this)[SingleSignOnViewModel::class.java]
+ binding.viewModel = viewModel
+
setUpToastsArea(binding.toastsArea)
if (intent != null) {
@@ -62,5 +66,44 @@ class SingleSignOnActivity : GenericActivity() {
viewModel.singleSignOnUrl.value = ssoUrl
}
}
+
+ viewModel.singleSignOnUrl.observe(this) { url ->
+ Log.i("$TAG SSO URL found [$url], setting it up")
+ viewModel.setUp()
+ }
+
+ viewModel.singleSignOnProcessCompletedEvent.observe(this) {
+ it.consume {
+ Log.i("$TAG Process complete, leaving assistant")
+ finish()
+ }
+ }
+
+ viewModel.startAuthIntentEvent.observe(this) {
+ it.consume { intent ->
+ Log.i("$TAG Starting auth intent activity")
+ startActivityForResult(intent, ACTIVITY_RESULT_ID)
+ }
+ }
+
+ viewModel.onErrorEvent.observe(this) {
+ it.consume { errorMessage ->
+ showRedToast(
+ errorMessage,
+ R.drawable.warning_circle
+ )
+ }
+ }
+ }
+
+ @Deprecated("Deprecated in Java")
+ override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+ if (requestCode == ACTIVITY_RESULT_ID && data != null) {
+ val resp = AuthorizationResponse.fromIntent(data)
+ val ex = AuthorizationException.fromIntent(data)
+ viewModel.processAuthIntentResponse(resp, ex)
+ }
+
+ super.onActivityResult(requestCode, resultCode, data)
}
}
diff --git a/app/src/main/java/org/linphone/ui/assistant/fragment/LandingFragment.kt b/app/src/main/java/org/linphone/ui/assistant/fragment/LandingFragment.kt
index ce0af01f3..f41b2bcae 100644
--- a/app/src/main/java/org/linphone/ui/assistant/fragment/LandingFragment.kt
+++ b/app/src/main/java/org/linphone/ui/assistant/fragment/LandingFragment.kt
@@ -138,34 +138,8 @@ class LandingFragment : Fragment() {
)
}
}
-
- /*viewModel.redirectToDigestAuthEvent.observe(viewLifecycleOwner) {
- it.consume { address ->
- goToLoginFragment(address)
- }
- }
-
- viewModel.redirectToSingleSignOnEvent.observe(viewLifecycleOwner) {
- it.consume { address ->
- goToSingleSignOnFragment(address)
- }
- }*/
}
- /*private fun goToLoginFragment(identity: String) {
- Log.i(
- "$TAG Going to Linphone credentials based authentication fragment for SIP account [$identity]"
- )
- val action = LandingFragmentDirections.actionLandingFragmentToLoginFragment(identity)
- findNavController().navigate(action)
- }
-
- private fun goToSingleSignOnFragment(identity: String) {
- Log.i("$TAG Going to Single Sign On fragment for SIP account [$identity]")
- val action = LandingFragmentDirections.actionLandingFragmentToSingleSignOnFragment()
- findNavController().navigate(action)
- }*/
-
private fun goToRegisterFragment() {
val action = LandingFragmentDirections.actionLandingFragmentToRegisterFragment()
findNavController().navigate(action)
diff --git a/app/src/main/java/org/linphone/ui/assistant/fragment/SingleSignOnFragment.kt b/app/src/main/java/org/linphone/ui/assistant/fragment/SingleSignOnFragment.kt
deleted file mode 100644
index cde2f5ebe..000000000
--- a/app/src/main/java/org/linphone/ui/assistant/fragment/SingleSignOnFragment.kt
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (c) 2010-2023 Belledonne Communications SARL.
- *
- * This file is part of linphone-android
- * (see https://www.linphone.org).
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package org.linphone.ui.assistant.fragment
-
-import android.content.Intent
-import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import androidx.annotation.UiThread
-import androidx.fragment.app.Fragment
-import androidx.lifecycle.ViewModelProvider
-import androidx.navigation.fragment.findNavController
-import net.openid.appauth.AuthorizationException
-import net.openid.appauth.AuthorizationResponse
-import org.linphone.R
-import org.linphone.core.tools.Log
-import org.linphone.databinding.AssistantSingleSignOnFragmentBinding
-import org.linphone.ui.GenericActivity
-import org.linphone.ui.assistant.viewmodel.SingleSignOnViewModel
-
-@UiThread
-class SingleSignOnFragment : Fragment() {
- companion object {
- private const val TAG = "[Single Sign On Fragment]"
-
- private const val ACTIVITY_RESULT_ID = 666
- }
-
- private lateinit var binding: AssistantSingleSignOnFragmentBinding
-
- private lateinit var viewModel: SingleSignOnViewModel
-
- override fun onCreateView(
- inflater: LayoutInflater,
- container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View {
- binding = AssistantSingleSignOnFragmentBinding.inflate(layoutInflater)
- return binding.root
- }
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
-
- binding.lifecycleOwner = viewLifecycleOwner
-
- viewModel = requireActivity().run {
- ViewModelProvider(this)[SingleSignOnViewModel::class.java]
- }
- binding.viewModel = viewModel
-
- viewModel.singleSignOnUrl.observe(viewLifecycleOwner) { url ->
- Log.i("$TAG SSO URL found [$url], setting it up")
- viewModel.setUp()
- }
-
- viewModel.singleSignOnProcessCompletedEvent.observe(viewLifecycleOwner) {
- it.consume {
- Log.i("$TAG Process complete, leaving assistant")
- requireActivity().finish()
- }
- }
-
- viewModel.startAuthIntentEvent.observe(viewLifecycleOwner) {
- it.consume { intent ->
- Log.i("$TAG Starting auth intent activity")
- startActivityForResult(intent, ACTIVITY_RESULT_ID)
- }
- }
-
- viewModel.onErrorEvent.observe(viewLifecycleOwner) {
- it.consume { errorMessage ->
- (requireActivity() as GenericActivity).showRedToast(
- errorMessage,
- R.drawable.warning_circle
- )
- try {
- findNavController().popBackStack()
- } catch (ise: IllegalStateException) {
- // Excepted in SingleSignOnActivity as no NavController is set
- }
- }
- }
- }
-
- @Deprecated("Deprecated in Java")
- override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
- if (requestCode == ACTIVITY_RESULT_ID && data != null) {
- val resp = AuthorizationResponse.fromIntent(data)
- val ex = AuthorizationException.fromIntent(data)
- viewModel.processAuthIntentResponse(resp, ex)
- }
-
- super.onActivityResult(requestCode, resultCode, data)
- }
-}
diff --git a/app/src/main/java/org/linphone/ui/assistant/viewmodel/LandingViewModel.kt b/app/src/main/java/org/linphone/ui/assistant/viewmodel/LandingViewModel.kt
index 63cdb6b42..ad9a2569c 100644
--- a/app/src/main/java/org/linphone/ui/assistant/viewmodel/LandingViewModel.kt
+++ b/app/src/main/java/org/linphone/ui/assistant/viewmodel/LandingViewModel.kt
@@ -37,14 +37,6 @@ class LandingViewModel @UiThread constructor() : AccountLoginViewModel() {
val hideThirdPartyAccount = MutableLiveData()
- /*val redirectToDigestAuthEvent: MutableLiveData> by lazy {
- MutableLiveData>()
- }
-
- val redirectToSingleSignOnEvent: MutableLiveData> by lazy {
- MutableLiveData>()
- }*/
-
var conditionsAndPrivacyPolicyAccepted = false
init {
diff --git a/app/src/main/res/layout/assistant_single_sign_on_activity.xml b/app/src/main/res/layout/assistant_single_sign_on_activity.xml
index 14a09bc53..83f105e40 100644
--- a/app/src/main/res/layout/assistant_single_sign_on_activity.xml
+++ b/app/src/main/res/layout/assistant_single_sign_on_activity.xml
@@ -1,45 +1,105 @@
+
+
+ android:background="?attr/color_main2_000">
-
+
+
+
+
-
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintBottom_toTopOf="@id/message"/>
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/assistant_single_sign_on_fragment.xml b/app/src/main/res/layout/assistant_single_sign_on_fragment.xml
deleted file mode 100644
index 58cab4405..000000000
--- a/app/src/main/res/layout/assistant_single_sign_on_fragment.xml
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/navigation/assistant_nav_graph.xml b/app/src/main/res/navigation/assistant_nav_graph.xml
index 6ab4de177..c5c79e34e 100644
--- a/app/src/main/res/navigation/assistant_nav_graph.xml
+++ b/app/src/main/res/navigation/assistant_nav_graph.xml
@@ -136,15 +136,6 @@
android:label="LandingFragment"
tools:layout="@layout/assistant_landing_fragment" >
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index d35a3e4b4..7515dcd14 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -150,7 +150,7 @@
- 14sp
- @color/in_call_label_color
- center
- - 1
+ - 1
- end