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("查看下一页", "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)
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
|
|||||||
@ -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("没有下一页了")
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
正在加载...
在新工单中引用
屏蔽一个用户