diff --git a/app/src/main/java/com/nova/brain/glass/MyApplication.java b/app/src/main/java/com/nova/brain/glass/MyApplication.java index 2bd8313..0ada3d6 100644 --- a/app/src/main/java/com/nova/brain/glass/MyApplication.java +++ b/app/src/main/java/com/nova/brain/glass/MyApplication.java @@ -14,8 +14,8 @@ import com.xuqm.base.di.manager.HttpManager; */ public class MyApplication extends App { - public static String baseUrl = "http://192.168.6.20"; -// public static String baseUrl = "http://22fs132201.imwork.net"; +// public static String baseUrl = "http://192.168.6.20"; + public static String baseUrl = "http://22fs132201.imwork.net"; @Override public void onCreate() { diff --git a/app/src/main/java/com/nova/brain/glass/helper/IntentRecognizeHelper.kt b/app/src/main/java/com/nova/brain/glass/helper/IntentRecognizeHelper.kt index dbfcfd8..cbc481f 100644 --- a/app/src/main/java/com/nova/brain/glass/helper/IntentRecognizeHelper.kt +++ b/app/src/main/java/com/nova/brain/glass/helper/IntentRecognizeHelper.kt @@ -31,8 +31,8 @@ object IntentRecognizeHelper { private var questionIndex = 0 private var disposable: Disposable? = null -// private val baseUrl: String = "https://22v1322u01.vicp.fun" - private val baseUrl: String = "http://192.168.6.20:12119" + private val baseUrl: String = "https://22v1322u01.vicp.fun" +// private val baseUrl: String = "http://192.168.6.20:12119" /** * @param context 用于显示 Toast diff --git a/app/src/main/java/com/nova/brain/glass/helper/OfflineCmdServiceHelper.kt b/app/src/main/java/com/nova/brain/glass/helper/OfflineCmdServiceHelper.kt index 17cb4a3..7baedd1 100644 --- a/app/src/main/java/com/nova/brain/glass/helper/OfflineCmdServiceHelper.kt +++ b/app/src/main/java/com/nova/brain/glass/helper/OfflineCmdServiceHelper.kt @@ -16,6 +16,7 @@ object OfflineCmdServiceHelper { // 所有页面通用关键词(常量,只分配一次) private val COMMON_CMDS = listOf( OfflineCmdBean("继续", "ji xu"), + OfflineCmdBean("下一个", "xia yi ge"), OfflineCmdBean("退出", "tui chu"), OfflineCmdBean("返回", "fan hui") ) @@ -76,6 +77,11 @@ object OfflineCmdServiceHelper { private val CMDS_INSPECTION_COMPLETE = listOf( OfflineCmdBean("完成任务", "wan cheng ren wu") ) + private val CMDS_WELCOME = listOf( + OfflineCmdBean("决策中心", "jue ce zhong xin"), + OfflineCmdBean("紧急任务", "jin ji ren wu"), + OfflineCmdBean("当前任务", "dang qian ren wu") + ) private var service: IOfflineCmdService? = null @@ -176,4 +182,8 @@ object OfflineCmdServiceHelper { fun removeListenerInspectionComplete() = removeBeans(CMDS_INSPECTION_COMPLETE) + fun addListenerWelcome() = registerBeans(CMDS_WELCOME) + + fun removeListenerWelcome() = removeBeans(CMDS_WELCOME) + } diff --git a/app/src/main/java/com/nova/brain/glass/ui/ChatActivity.kt b/app/src/main/java/com/nova/brain/glass/ui/ChatActivity.kt index d8b62f9..ac32eca 100644 --- a/app/src/main/java/com/nova/brain/glass/ui/ChatActivity.kt +++ b/app/src/main/java/com/nova/brain/glass/ui/ChatActivity.kt @@ -26,7 +26,7 @@ class ChatActivity : BaseListFormLayoutNormalActivity finish() - "继续" -> recognizeAndChat() + "继续","下一个" -> recognizeAndChat() } } } diff --git a/app/src/main/java/com/nova/brain/glass/ui/WelcomeActivity.kt b/app/src/main/java/com/nova/brain/glass/ui/WelcomeActivity.kt index 7ec51f3..a846f9c 100644 --- a/app/src/main/java/com/nova/brain/glass/ui/WelcomeActivity.kt +++ b/app/src/main/java/com/nova/brain/glass/ui/WelcomeActivity.kt @@ -2,6 +2,8 @@ package com.nova.brain.glass.ui import android.content.Intent import android.os.Bundle +import android.os.Handler +import android.os.Looper import androidx.lifecycle.ViewModelProvider import com.nova.brain.glass.R import com.nova.brain.glass.databinding.ActivityWelcomeBinding @@ -10,7 +12,6 @@ import com.nova.brain.glass.helper.OfflineCmdListener import com.nova.brain.glass.helper.OfflineCmdServiceHelper import com.nova.brain.glass.viewmodel.WelcomeVM import com.xuqm.base.ui.BaseActivity -import kotlin.jvm.java class WelcomeActivity : BaseActivity() { @@ -19,42 +20,59 @@ class WelcomeActivity : BaseActivity() { private lateinit var vm: WelcomeVM + // 点动画 + private val tvOriginalText = "您可以说:Nova,我的任务有哪些?" + private val dotsHandler = Handler(Looper.getMainLooper()) + private var dotCount = 0 + private val dotsRunnable = object : Runnable { + override fun run() { + dotCount = (dotCount % 3) + 1 + binding.tv.text = "正在识别中${"·".repeat(dotCount)}" + dotsHandler.postDelayed(this, 500) + } + } + + private fun startDotsAnim() { + dotCount = 0 + dotsHandler.removeCallbacks(dotsRunnable) + dotsHandler.post(dotsRunnable) + } + + private fun stopDotsAnim() { + dotsHandler.removeCallbacks(dotsRunnable) + binding.tv.text = tvOriginalText + } + override fun initView(savedInstanceState: Bundle?) { super.initView(savedInstanceState) - vm = ViewModelProvider(this).get(WelcomeVM::class.java) + vm = ViewModelProvider(this)[WelcomeVM::class.java] window.addFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) binding.tv.setOnClickListener { startActivity(Intent(this@WelcomeActivity, TaskListActivity::class.java)) } - binding.btnGet.setOnClickListener { vm.demoGet() } - binding.btnPost.setOnClickListener { vm.demoPost() } - binding.md.setOnClickListener { - binding.md.text = "请求中" - binding.md.isClickable = false - IntentRecognizeHelper.recognize( - context = this, - text = "当前阶段,最紧急的任务是什么?", - onSuccess = { action -> - if (action.name == "goToDecisionCenter") { - startActivity( - Intent(this, ChatActivity::class.java) - .putExtra("question", action.params.question) - ) - } - }, - onComplete = { - binding.md.text = "决策中心" - binding.md.isClickable = true - } - ) - } } override fun initData() { super.initData() - vm.result.observe(this) { text -> - binding.tvResult.text = text - } + } + + private fun triggerRecognize() { + startDotsAnim() + IntentRecognizeHelper.recognize( + context = this, + text = "当前阶段,最紧急的任务是什么?", + onSuccess = { action -> + if (action.name == "goToDecisionCenter") { + startActivity( + Intent(this, ChatActivity::class.java) + .putExtra("question", action.params.question) + ) + } + }, + onComplete = { + stopDotsAnim() + } + ) } private val offlineCmdListener = object : OfflineCmdListener { @@ -64,6 +82,9 @@ class WelcomeActivity : BaseActivity() { "任务列表", "查看任务", "查看任务列表" -> { startActivity(Intent(this@WelcomeActivity, TaskListActivity::class.java)) } + "决策中心", "紧急任务", "当前任务" -> { + triggerRecognize() + } } } } @@ -72,13 +93,15 @@ class WelcomeActivity : BaseActivity() { override fun onResume() { super.onResume() OfflineCmdServiceHelper.addOnLineListener(offlineCmdListener) - binding.md.text = "决策中心" - binding.md.isClickable = true + OfflineCmdServiceHelper.addListenerWelcome() + stopDotsAnim() // 从 ChatActivity 返回时恢复原文 } override fun onPause() { super.onPause() OfflineCmdServiceHelper.removeOnLineListener(offlineCmdListener) + OfflineCmdServiceHelper.removeListenerWelcome() + dotsHandler.removeCallbacks(dotsRunnable) } override fun onDestroy() { diff --git a/app/src/main/res/layout/activity_welcome.xml b/app/src/main/res/layout/activity_welcome.xml index c52c31d..d8fa1a4 100644 --- a/app/src/main/res/layout/activity_welcome.xml +++ b/app/src/main/res/layout/activity_welcome.xml @@ -14,102 +14,10 @@ android:text="您可以说:Nova,我的任务有哪些?" app:layout_constraintTop_toTopOf="parent" app:layout_constraintEnd_toEndOf="parent" + android:layout_marginBottom="100dp" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintBottom_toTopOf="@id/btnRow" /> + app:layout_constraintBottom_toBottomOf="parent" /> - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/base/src/main/java/com/xuqm/base/ui/BaseActivity.java b/base/src/main/java/com/xuqm/base/ui/BaseActivity.java index 85cf07e..c594b2b 100644 --- a/base/src/main/java/com/xuqm/base/ui/BaseActivity.java +++ b/base/src/main/java/com/xuqm/base/ui/BaseActivity.java @@ -43,6 +43,7 @@ public abstract class BaseActivity extends AppCompatA super.onCreate(savedInstanceState); AppManager.getInstance().pushActivity(this); getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); + getWindow().addFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); mContext = this; editText.clear(); views.clear();