diff --git a/app/src/main/java/com/nova/brain/glass/MyApplication.java b/app/src/main/java/com/nova/brain/glass/MyApplication.java index 7c8a659..4ae100d 100644 --- a/app/src/main/java/com/nova/brain/glass/MyApplication.java +++ b/app/src/main/java/com/nova/brain/glass/MyApplication.java @@ -1,6 +1,10 @@ package com.nova.brain.glass; +import com.blankj.utilcode.util.Utils; +import com.nova.brain.glass.helper.OfflineCmdServiceHelper; import com.nova.brain.glass.repository.HeaderInterceptor; +import com.rokid.security.glass3.open.sdk.GlassSdk; +import com.rokid.security.glass3.open.sdk.client.IServiceConnectionCallback; import com.xuqm.base.App; import com.xuqm.base.di.manager.HttpManager; @@ -16,6 +20,7 @@ public class MyApplication extends App { super.onCreate(); appComponent = HttpManager.getAppComponent(baseUrl, new HeaderInterceptor(getApplicationContext())); + initSdk(); } @@ -23,4 +28,30 @@ public class MyApplication extends App { public boolean showLog() { return super.showLog(); } + + + + void initSdk() { + // 如果SDK已经初始化了,则直接返回 + if (GlassSdk.isReady()) { + return; + } + GlassSdk.bindSecurityService(Utils.getApp(), new IServiceConnectionCallback() { + @Override + public void onServiceConnected() { + OfflineCmdServiceHelper.INSTANCE.init(); + } + + @Override + public void onServiceDisconnected() { + + } + + @Override + public void onBindingDied() { + + } + }); + } + } diff --git a/app/src/main/java/com/nova/brain/glass/helper/OfflineCmdListener.kt b/app/src/main/java/com/nova/brain/glass/helper/OfflineCmdListener.kt new file mode 100644 index 0000000..20eb430 --- /dev/null +++ b/app/src/main/java/com/nova/brain/glass/helper/OfflineCmdListener.kt @@ -0,0 +1,5 @@ +package com.nova.brain.glass.helper + +interface OfflineCmdListener { + fun onOfflineCmd(cmd: String) +} \ No newline at end of file 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 new file mode 100644 index 0000000..adf8090 --- /dev/null +++ b/app/src/main/java/com/nova/brain/glass/helper/OfflineCmdServiceHelper.kt @@ -0,0 +1,46 @@ +package com.nova.brain.glass.helper + +import com.luck.picture.lib.config.PictureSelectionConfig.listener +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.common.LogHelper +import com.xuqm.base.common.ToolsHelper +import com.xuqm.sdhbwfu.core.extensions.isNull + +data class OfflineCmdBean(val text: String, val pinyin: String) + +object OfflineCmdServiceHelper { + private var listener: OfflineCmdListener? = null + + private val list = mutableListOf().apply { + add(OfflineCmdBean("任务列表", "ren wu lie biao")) + add(OfflineCmdBean("查看任务", "cha kan ren wu")) + add(OfflineCmdBean("查看任务列表", "cha kan ren wu lie biao")) + add(OfflineCmdBean("下一页", "xia yi ye")) + add(OfflineCmdBean("翻页", "fan ye")) + add(OfflineCmdBean("查看下一页", "cha kan xia yi ye")) + add(OfflineCmdBean("继续翻页", "ji xu fan ye")) + add(OfflineCmdBean("继续下一页", "ji xu xia yi ye")) + } + fun init(){ + val service = GlassSdk.getGlassOfflineCmdService() + if (service == null){ + LogHelper.e("OfflineCmdServiceHelper","service is null") + return + } + LogHelper.e("OfflineCmdServiceHelper","service 存在") + for (bean in list) { + GlassSdk.getGlassOfflineCmdService()?.add(VoiceAction(bean.text, bean.pinyin, object : IVoiceCallback.Stub() { + override fun onVoiceTriggered() { + listener?.onOfflineCmd(bean.text) + } + })) + } + } + fun setOnLineListener(listener: OfflineCmdListener){ + this.listener = listener + } + + +} \ No newline at end of file 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 80ecc57..188207d 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 @@ -1,14 +1,15 @@ package com.nova.brain.glass.ui -import android.view.View +import android.content.Intent import com.nova.brain.glass.R import com.nova.brain.glass.databinding.ActivityTaskListBinding +import com.nova.brain.glass.helper.OfflineCmdListener +import com.nova.brain.glass.helper.OfflineCmdServiceHelper import com.nova.brain.glass.model.TaskItem import com.nova.brain.glass.viewmodel.TaskListVM import com.xuqm.base.adapter.BasePagedAdapter import com.xuqm.base.adapter.CommonPagedAdapter import com.xuqm.base.adapter.ViewHolder -import com.xuqm.base.adapter.callback.AdapterClickListener import com.xuqm.base.common.ToolsHelper import com.xuqm.base.ui.BaseListFormLayoutActivity @@ -16,6 +17,18 @@ class TaskListActivity : BaseListFormLayoutActivity() { override fun getLayoutId(): Int = R.layout.activity_task_list override fun fullscreen(): Boolean = true + + override fun initData() { + super.initData() + OfflineCmdServiceHelper.setOnLineListener(object : OfflineCmdListener { + override fun onOfflineCmd(cmd: String) { + when (cmd) { + "下一页", "翻页", "查看下一页", "继续翻页", "继续下一页" -> { + binding.baseRecyclerView + } + } + } + }) } private val adapter = object : CommonPagedAdapter(R.layout.item_task_list) { override fun convert(holder: ViewHolder, item: TaskItem, position: Int) { holder 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 4e86424..25f8ae0 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 @@ -2,8 +2,14 @@ package com.nova.brain.glass.ui import android.content.Intent import android.os.Bundle +import android.util.Log import com.nova.brain.glass.R import com.nova.brain.glass.databinding.ActivityWelcomeBinding +import com.nova.brain.glass.helper.OfflineCmdListener +import com.nova.brain.glass.helper.OfflineCmdServiceHelper +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 class WelcomeActivity : BaseActivity() { @@ -13,7 +19,33 @@ class WelcomeActivity : BaseActivity() { override fun initView(savedInstanceState: Bundle?) { super.initView(savedInstanceState) - startActivity(Intent(this, TaskListActivity::class.java)) +// + + 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) { + "任务列表", "查看任务", "查看任务列表" -> { + startActivity(Intent(this@WelcomeActivity, TaskListActivity::class.java)) + } + } + } + }) }