feat(glass): 添加语音控制翻页功能和页面跳转定时器
- 在 OfflineCmdServiceHelper 中添加上一页、查看上一页、继续上一页语音命令 - 优化语音回调逻辑,使用服务实例避免空指针并添加调试日志 - 在 TaskListActivity 中实现上下翻页的滚动定位功能 - 添加 LinearLayoutManager 导入和 LogHelper 导入 - 在 WelcomeActivity 中移除硬编码语音命令,使用帮助类统一管理 - 添加 3 秒后自动跳转到 MainActivity 的定时器功能
这个提交包含在:
父节点
07019fc00d
当前提交
23d51ec89d
@ -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)
|
||||
}
|
||||
}))
|
||||
|
||||
@ -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("没有下一页了")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
正在加载...
在新工单中引用
屏蔽一个用户