فهرست منبع

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

- 在 OfflineCmdServiceHelper 中添加上一页、查看上一页、继续上一页语音命令
- 优化语音回调逻辑,使用服务实例避免空指针并添加调试日志
- 在 TaskListActivity 中实现上下翻页的滚动定位功能
- 添加 LinearLayoutManager 导入和 LogHelper 导入
- 在 WelcomeActivity 中移除硬编码语音命令,使用帮助类统一管理
- 添加 3 秒后自动跳转到 MainActivity 的定时器功能
徐勤民 3 روز پیش
والد
کامیت
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("查看下一页", "cha kan xia yi ye"))
         add(OfflineCmdBean("继续翻页", "ji xu fan ye"))
         add(OfflineCmdBean("继续翻页", "ji xu fan ye"))
         add(OfflineCmdBean("继续下一页", "ji xu xia yi 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(){
     fun init(){
         val service = GlassSdk.getGlassOfflineCmdService()
         val service = GlassSdk.getGlassOfflineCmdService()
@@ -31,8 +34,9 @@ object OfflineCmdServiceHelper {
         }
         }
         LogHelper.e("OfflineCmdServiceHelper","service 存在")
         LogHelper.e("OfflineCmdServiceHelper","service 存在")
         for (bean in list) {
         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() {
                 override fun onVoiceTriggered() {
+                    LogHelper.d("onOfflineCmd: ${bean.text}")
                     listener?.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.CommonPagedAdapter
 import com.xuqm.base.adapter.ViewHolder
 import com.xuqm.base.adapter.ViewHolder
 import com.xuqm.base.common.ToolsHelper
 import com.xuqm.base.common.ToolsHelper
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.xuqm.base.common.LogHelper
 import com.xuqm.base.ui.BaseListFormLayoutActivity
 import com.xuqm.base.ui.BaseListFormLayoutActivity
 
 
 class TaskListActivity :
 class TaskListActivity :
@@ -24,7 +26,28 @@ class TaskListActivity :
             override fun onOfflineCmd(cmd: String) {
             override fun onOfflineCmd(cmd: String) {
                 when (cmd) {
                 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.bean.VoiceAction
 import com.rokid.security.glass3.sdk.base.data.offlineCmd.listener.IVoiceCallback
 import com.rokid.security.glass3.sdk.base.data.offlineCmd.listener.IVoiceCallback
 import com.xuqm.base.ui.BaseActivity
 import com.xuqm.base.ui.BaseActivity
+import java.util.Timer
+import kotlin.concurrent.schedule
 
 
 class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
 class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
 
 
@@ -19,24 +21,6 @@ class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
 
 
     override fun initView(savedInstanceState: Bundle?) {
     override fun initView(savedInstanceState: Bundle?) {
         super.initView(savedInstanceState)
         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 {
         OfflineCmdServiceHelper.setOnLineListener(object : OfflineCmdListener {
             override fun onOfflineCmd(cmd: String) {
             override fun onOfflineCmd(cmd: String) {
                 when (cmd) {
                 when (cmd) {
@@ -46,6 +30,9 @@ class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
                  }
                  }
             }
             }
         })
         })
+        Timer().schedule(3000) {
+            startActivity(Intent(this@WelcomeActivity, MainActivity::class.java))
+        }
     }
     }