Skip to content

Commit c3290cf

Browse files
HugoChaanzhangweiHeZhengQingalienzh
authored
Dev/convoai api (#70)
* [Android] Add message parser log. * [Android] Add message parser log. * [Android] Update log. * [Android] Update log. * [Android] Update message parse log. * [FEAT] ios version 1.6.0 * [Android]Add conversational ai api. * [Android]Update ConversationalAIAPI. * [Android] Update log. * [Android]Fixbugs. * Add client component functionality * [FEAT] ios agent state * [FIX] mute state * [Android]Add v1.6.0 ui. * [FIX] state view * [FIX] ios self subrender * [FIX] remove volume process * [Android] Update ConversationalAI API. * modify the code * Add subtitle rendering v2 version * [Android] Fixs agent state event. TEN-2018. * [Android] Filter other users transcription. * [Android] Preserve cookies when switching environments.TEN-2021. * bug fix * bug fix * [Android]Fixs agentUid. * bug fix * [Android]Fix SSO login exception causing infinite loop. * [FIX] TEN-2089 * [Android]Update agent state view. * Modify comments * [Android] Update IConversationalAIAPI's model file hierarchy. * Modify details, add readme * [Android]Add conversation ai api README. * Modify comments and readme files * [Android]Update conversation ai api README. * update readme file * Update readme * update read me * Update function comments * Dev/convoai api temp (#66) * [Android]Update transcription interrupt mark ms. * update transcription code * [Android]ConversationalAI config: enableLog defaults to true (logs to rtc log file) . * Update function comments * [Android]Update method comments. * [FIX] update enable log default value is true * [Android]pts Remove 20ms. * [FIX] ios proj --------- Co-authored-by: zhangwei <[email protected]> Co-authored-by: qinhui <> Co-authored-by: HeZhengQing <[email protected]> * update readme * Add convo api version * [FIX] convoai api version * [FEAT] update build number * [FIX] global sign up * [FIX] merge conflict --------- Co-authored-by: zhangwei <[email protected]> Co-authored-by: HeZhengQing <[email protected]> Co-authored-by: qinhui <> Co-authored-by: alienzh <[email protected]>
1 parent e46d60a commit c3290cf

File tree

2 files changed

+43
-24
lines changed

2 files changed

+43
-24
lines changed

Android/scenes/convoai/src/main/java/io/agora/scene/convoai/ui/CovLivingActivity.kt

Lines changed: 34 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.agora.scene.convoai.ui
22

33
import android.app.Activity
4+
import android.content.Context
45
import android.content.Intent
56
import android.graphics.PorterDuff
67
import android.os.Build
@@ -13,6 +14,7 @@ import android.view.WindowManager
1314
import android.webkit.CookieManager
1415
import android.widget.Toast
1516
import androidx.activity.result.ActivityResultLauncher
17+
import androidx.activity.result.contract.ActivityResultContract
1618
import androidx.activity.result.contract.ActivityResultContracts
1719
import androidx.activity.viewModels
1820
import androidx.core.app.NotificationManagerCompat
@@ -180,11 +182,27 @@ class CovLivingActivity : BaseActivity<CovActivityLivingBinding>() {
180182

181183
private var mLoginDialog: LoginDialog? = null
182184

183-
private lateinit var activityResultLauncher: ActivityResultLauncher<Intent>
185+
private lateinit var activityResultLauncher: ActivityResultLauncher<Int>
184186
private lateinit var mPermissionHelp: PermissionHelp
185187

186188
private val mLoginViewModel: LoginViewModel by viewModels()
187189

190+
private class SSOWebViewContract : ActivityResultContract<Int, String?>() {
191+
override fun createIntent(context: Context, input: Int): Intent {
192+
return Intent(context, SSOWebViewActivity::class.java).apply {
193+
putExtra(SSOWebViewActivity.EXTRA_TYPE, input)
194+
}
195+
}
196+
197+
override fun parseResult(resultCode: Int, intent: Intent?): String? {
198+
return if (resultCode == Activity.RESULT_OK) {
199+
intent?.getStringExtra(SSOWebViewActivity.EXTRA_TOKEN)
200+
} else {
201+
null
202+
}
203+
}
204+
}
205+
188206
private var conversationalAIAPI: IConversationalAIAPI? = null
189207

190208
override fun getViewBinding(): CovActivityLivingBinding {
@@ -932,22 +950,16 @@ class CovLivingActivity : BaseActivity<CovActivityLivingBinding>() {
932950
"Are you ok?",
933951
"How are you?"
934952
)
953+
935954
private fun setupView() {
936-
activityResultLauncher =
937-
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
938-
if (result.resultCode == Activity.RESULT_OK) {
939-
val data: Intent? = result.data
940-
val token = data?.getStringExtra("token")
941-
if (token != null) {
942-
SSOUserManager.saveToken(token)
943-
mLoginViewModel.getUserInfoByToken(token)
944-
} else {
945-
showLoginLoading(false)
946-
}
947-
} else {
948-
showLoginLoading(false)
949-
}
955+
activityResultLauncher = registerForActivityResult(SSOWebViewContract()) { token: String? ->
956+
if (token != null) {
957+
SSOUserManager.saveToken(token)
958+
mLoginViewModel.getUserInfoByToken(token)
959+
} else {
960+
showLoginLoading(false)
950961
}
962+
}
951963
mPermissionHelp = PermissionHelp(this)
952964
mBinding?.apply {
953965
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
@@ -1305,9 +1317,13 @@ class CovLivingActivity : BaseActivity<CovActivityLivingBinding>() {
13051317
}
13061318

13071319
override fun onClickStartSSO() {
1308-
activityResultLauncher.launch(
1309-
Intent(this@CovLivingActivity, SSOWebViewActivity::class.java)
1310-
)
1320+
activityResultLauncher.launch(SSOWebViewActivity.TYPE_LOGIN)
1321+
showLoginLoading(true)
1322+
}
1323+
1324+
override fun onClickSignupSSO() {
1325+
cleanCookie()
1326+
activityResultLauncher.launch(SSOWebViewActivity.TYPE_SIGNUP)
13111327
showLoginLoading(true)
13121328
}
13131329

iOS/Scenes/ConvoAI/ConvoAI/ConvoAI/Classes/Main/Chat/ChatViewController.swift

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -488,10 +488,9 @@ public class ChatViewController: UIViewController {
488488
ConvoAILogger.info("\(tag) \(txt)")
489489
}
490490

491-
private func goToSSOViewController() {
491+
private func goToSSO(urlString: String) {
492492
let ssoWebVC = SSOWebViewController()
493-
let baseUrl = AppContext.shared.baseServerUrl
494-
ssoWebVC.urlString = "\(baseUrl)/v1/convoai/sso/login"
493+
ssoWebVC.urlString = urlString
495494
ssoWebVC.completionHandler = { [weak self] token in
496495
guard let self = self else { return }
497496
if let token = token {
@@ -509,8 +508,6 @@ public class ChatViewController: UIViewController {
509508
SVProgressHUD.showInfo(withStatus: err.localizedDescription)
510509
}
511510
}
512-
} else {
513-
AppContext.loginManager()?.logout()
514511
}
515512
}
516513
self.navigationController?.pushViewController(ssoWebVC, animated: false)
@@ -990,7 +987,13 @@ private extension ChatViewController {
990987
let loginVC = LoginViewController()
991988
loginVC.modalPresentationStyle = .overFullScreen
992989
loginVC.loginAction = { [weak self] in
993-
self?.goToSSOViewController()
990+
let baseUrl = AppContext.shared.baseServerUrl
991+
self?.goToSSO(urlString: "\(baseUrl)/v1/convoai/sso/login")
992+
}
993+
loginVC.signupAction = { [weak self] in
994+
SSOWebViewController.clearWebViewCache()
995+
let baseUrl = AppContext.shared.baseServerUrl
996+
self?.goToSSO(urlString: "\(baseUrl)/v1/convoai/sso/signup")
994997
}
995998
self.present(loginVC, animated: false)
996999
}

0 commit comments

Comments
 (0)