From 23d51ec89dbd295d65b7e2da015ee0fec3b463d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E5=8B=A4=E6=B0=91?= Date: Tue, 14 Apr 2026 14:12:02 +0800 Subject: [PATCH] =?UTF-8?q?feat(glass):=20=E6=B7=BB=E5=8A=A0=E8=AF=AD?= =?UTF-8?q?=E9=9F=B3=E6=8E=A7=E5=88=B6=E7=BF=BB=E9=A1=B5=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=92=8C=E9=A1=B5=E9=9D=A2=E8=B7=B3=E8=BD=AC=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 OfflineCmdServiceHelper 中添加上一页、查看上一页、继续上一页语音命令 - 优化语音回调逻辑,使用服务实例避免空指针并添加调试日志 - 在 TaskListActivity 中实现上下翻页的滚动定位功能 - 添加 LinearLayoutManager 导入和 LogHelper 导入 - 在 WelcomeActivity 中移除硬编码语音命令,使用帮助类统一管理 - 添加 3 秒后自动跳转到 MainActivity 的定时器功能 --- .../glass/helper/OfflineCmdServiceHelper.kt | 6 ++++- .../nova/brain/glass/ui/TaskListActivity.kt | 25 ++++++++++++++++++- .../nova/brain/glass/ui/WelcomeActivity.kt | 23 ++++------------- 3 files changed, 34 insertions(+), 20 deletions(-) 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 adf8090..b1f0101 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 @@ -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) } })) diff --git a/app/src/main/java/com/nova/brain/glass/ui/TaskListActivity.kt b/app/src/main/java/com/nova/brain/glass/ui/TaskListActivity.kt index 188207d..6cec739 100644 --- a/app/src/main/java/com/nova/brain/glass/ui/TaskListActivity.kt +++ b/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("没有下一页了") + } + } } } } 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 25f8ae0..50df6af 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 @@ -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() { @@ -19,24 +21,6 @@ class WelcomeActivity : BaseActivity() { 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() { } } }) + Timer().schedule(3000) { + startActivity(Intent(this@WelcomeActivity, MainActivity::class.java)) + } }