Sfoglia il codice sorgente

feat(glass): 添加语音控制翻页功能和页面跳转定时器

- 在 OfflineCmdServiceHelper 中添加上一页、查看上一页、继续上一页语音命令
- 优化语音回调逻辑,使用服务实例避免空指针并添加调试日志
- 在 TaskListActivity 中实现上下翻页的滚动定位功能
- 添加 LinearLayoutManager 导入和 LogHelper 导入
- 在 WelcomeActivity 中移除硬编码语音命令,使用帮助类统一管理
- 添加 3 秒后自动跳转到 MainActivity 的定时器功能
徐勤民 3 giorni fa
parent
commit
23d51ec89d

+ 5 - 1
app/src/main/java/com/nova/brain/glass/helper/OfflineCmdServiceHelper.kt

@@ -22,6 +22,9 @@ object OfflineCmdServiceHelper {
         add(OfflineCmdBean("查看下一页", "cha kan xia yi ye"))
         add(OfflineCmdBean("继续翻页", "ji xu fan ye"))
         add(OfflineCmdBean("继续下一页", "ji xu xia yi ye"))
+        add(OfflineCmdBean("上一页", "shang yi ye"))
+        add(OfflineCmdBean("查看上一页", "cha kan shang yi ye"))
+        add(OfflineCmdBean("继续上一页", "ji xu shang yi ye"))
     }
     fun init(){
         val service = GlassSdk.getGlassOfflineCmdService()
@@ -31,8 +34,9 @@ object OfflineCmdServiceHelper {
         }
         LogHelper.e("OfflineCmdServiceHelper","service 存在")
         for (bean in list) {
-            GlassSdk.getGlassOfflineCmdService()?.add(VoiceAction(bean.text, bean.pinyin, object : IVoiceCallback.Stub() {
+            service.add(VoiceAction(bean.text, bean.pinyin, object : IVoiceCallback.Stub() {
                 override fun onVoiceTriggered() {
+                    LogHelper.d("onOfflineCmd: ${bean.text}")
                     listener?.onOfflineCmd(bean.text)
                 }
             }))

+ 24 - 1
app/src/main/java/com/nova/brain/glass/ui/TaskListActivity.kt

@@ -11,6 +11,8 @@ import com.xuqm.base.adapter.BasePagedAdapter
 import com.xuqm.base.adapter.CommonPagedAdapter
 import com.xuqm.base.adapter.ViewHolder
 import com.xuqm.base.common.ToolsHelper
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.xuqm.base.common.LogHelper
 import com.xuqm.base.ui.BaseListFormLayoutActivity
 
 class TaskListActivity :
@@ -24,7 +26,28 @@ class TaskListActivity :
             override fun onOfflineCmd(cmd: String) {
                 when (cmd) {
                     "下一页", "翻页", "查看下一页", "继续翻页", "继续下一页" -> {
-                        binding.baseRecyclerView
+                        val layoutManager = binding.baseRecyclerView.layoutManager as? LinearLayoutManager
+                        if (layoutManager != null) {
+                            val lastVisible = layoutManager.findLastVisibleItemPosition()
+                            val nextPosition = lastVisible + 1
+                            if (nextPosition < adapter.itemCount) {
+                                layoutManager.scrollToPositionWithOffset(nextPosition, 0)
+                            } else {
+                                ToolsHelper.showMessage("没有下一页了")
+                            }
+                        }
+                    }
+                    "上一页", "查看上一页", "继续上一页" -> {
+                        val layoutManager = binding.baseRecyclerView.layoutManager as? LinearLayoutManager
+                        if (layoutManager != null) {
+                            val lastVisible = layoutManager.findLastVisibleItemPosition()
+                            val nextPosition = lastVisible + 1
+                            if (nextPosition < adapter.itemCount) {
+                                layoutManager.scrollToPositionWithOffset(nextPosition, 0)
+                            } else {
+                                ToolsHelper.showMessage("没有下一页了")
+                            }
+                        }
                     }
                 }
             }

+ 5 - 18
app/src/main/java/com/nova/brain/glass/ui/WelcomeActivity.kt

@@ -11,6 +11,8 @@ import com.rokid.security.glass3.open.sdk.GlassSdk
 import com.rokid.security.glass3.sdk.base.data.offlineCmd.bean.VoiceAction
 import com.rokid.security.glass3.sdk.base.data.offlineCmd.listener.IVoiceCallback
 import com.xuqm.base.ui.BaseActivity
+import java.util.Timer
+import kotlin.concurrent.schedule
 
 class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
 
@@ -19,24 +21,6 @@ class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
 
     override fun initView(savedInstanceState: Bundle?) {
         super.initView(savedInstanceState)
-//
-
-        val qtVoiceAction = VoiceAction("任务列表", "ren wu lie biao", object : IVoiceCallback.Stub() {
-            override fun onVoiceTriggered() {
-                startActivity(Intent(this@WelcomeActivity, TaskListActivity::class.java))
-            }
-        })
-        val qtVoiceAction1 = VoiceAction("查看任务", "cha kan ren wu", object : IVoiceCallback.Stub() {
-            override fun onVoiceTriggered() {
-                startActivity(Intent(this@WelcomeActivity, TaskListActivity::class.java))
-            }
-        })
-        val qtVoiceAction2 = VoiceAction("查看任务列表", "cha kan ren wu lie biao", object : IVoiceCallback.Stub() {
-            override fun onVoiceTriggered() {
-                startActivity(Intent(this@WelcomeActivity, TaskListActivity::class.java))
-            }
-        })
-        GlassSdk.getGlassOfflineCmdService()?.addAll(listOf(qtVoiceAction, qtVoiceAction1, qtVoiceAction2))
         OfflineCmdServiceHelper.setOnLineListener(object : OfflineCmdListener {
             override fun onOfflineCmd(cmd: String) {
                 when (cmd) {
@@ -46,6 +30,9 @@ class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
                  }
             }
         })
+        Timer().schedule(3000) {
+            startActivity(Intent(this@WelcomeActivity, MainActivity::class.java))
+        }
     }