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 c7bda4b..f139143 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 @@ -11,9 +11,11 @@ object OfflineCmdServiceHelper { private var listenerList = mutableListOf() 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")) @@ -22,14 +24,85 @@ object OfflineCmdServiceHelper { add(OfflineCmdBean("上一页", "shang yi ye")) add(OfflineCmdBean("查看上一页", "cha kan shang yi ye")) add(OfflineCmdBean("继续上一页", "ji xu shang yi ye")) + add(OfflineCmdBean("退出", "tui chu")) add(OfflineCmdBean("返回", "fan hui")) add(OfflineCmdBean("退回", "tui hui")) + add(OfflineCmdBean("同意", "tong yi")) add(OfflineCmdBean("驳回", "bo hui")) add(OfflineCmdBean("不同意", "bu tong yi")) add(OfflineCmdBean("拒绝", "ju jue")) add(OfflineCmdBean("通过", "tong guo")) + + add(OfflineCmdBean("查看第一条任务", "cha kan di yi tiao ren wu")) + add(OfflineCmdBean("查看第一项任务", "cha kan di yi xiang ren wu")) + add(OfflineCmdBean("打开第一条任务", "da kai di yi tiao ren wu")) + add(OfflineCmdBean("打开第一项任务", "da kai di yi xiang ren wu")) + add(OfflineCmdBean("处理第一条任务", "chu li di yi tiao ren wu")) + add(OfflineCmdBean("处理第一项任务", "chu li di yi xiang ren wu")) + add(OfflineCmdBean("查看第二条任务", "cha kan di er tiao ren wu")) + add(OfflineCmdBean("查看第二项任务", "cha kan di er xiang ren wu")) + add(OfflineCmdBean("打开第二条任务", "da kai di er tiao ren wu")) + add(OfflineCmdBean("打开第二项任务", "da kai di er xiang ren wu")) + add(OfflineCmdBean("处理第二条任务", "chu li di er tiao ren wu")) + add(OfflineCmdBean("处理第二项任务", "chu li di er xiang ren wu")) + + add(OfflineCmdBean("查看第三条任务", "cha kan di san tiao ren wu")) + add(OfflineCmdBean("查看第三项任务", "cha kan di san xiang ren wu")) + add(OfflineCmdBean("打开第三条任务", "da kai di san tiao ren wu")) + add(OfflineCmdBean("打开第三项任务", "da kai di san xiang ren wu")) + add(OfflineCmdBean("处理第三条任务", "chu li di san tiao ren wu")) + add(OfflineCmdBean("处理第三项任务", "chu li di san xiang ren wu")) + + add(OfflineCmdBean("查看第四条任务", "cha kan di si tiao ren wu")) + add(OfflineCmdBean("查看第四项任务", "cha kan di si xiang ren wu")) + add(OfflineCmdBean("打开第四条任务", "da kai di si tiao ren wu")) + add(OfflineCmdBean("打开第四项任务", "da kai di si xiang ren wu")) + add(OfflineCmdBean("处理第四条任务", "chu li di si tiao ren wu")) + add(OfflineCmdBean("处理第四项任务", "chu li di si xiang ren wu")) + + add(OfflineCmdBean("查看第五条任务", "cha kan di wu tiao ren wu")) + add(OfflineCmdBean("查看第五项任务", "cha kan di wu xiang ren wu")) + add(OfflineCmdBean("打开第五条任务", "da kai di wu tiao ren wu")) + add(OfflineCmdBean("打开第五项任务", "da kai di wu xiang ren wu")) + add(OfflineCmdBean("处理第五条任务", "chu li di wu tiao ren wu")) + add(OfflineCmdBean("处理第五项任务", "chu li di wu xiang ren wu")) + + add(OfflineCmdBean("查看第六条任务", "cha kan di liu tiao ren wu")) + add(OfflineCmdBean("查看第六项任务", "cha kan di liu xiang ren wu")) + add(OfflineCmdBean("打开第六条任务", "da kai di liu tiao ren wu")) + add(OfflineCmdBean("打开第六项任务", "da kai di liu xiang ren wu")) + add(OfflineCmdBean("处理第六条任务", "chu li di liu tiao ren wu")) + add(OfflineCmdBean("处理第六项任务", "chu li di liu xiang ren wu")) + + add(OfflineCmdBean("查看第七条任务", "cha kan di qi tiao ren wu")) + add(OfflineCmdBean("查看第七项任务", "cha kan di qi xiang ren wu")) + add(OfflineCmdBean("打开第七条任务", "da kai di qi tiao ren wu")) + add(OfflineCmdBean("打开第七项任务", "da kai di qi xiang ren wu")) + add(OfflineCmdBean("处理第七条任务", "chu li di qi tiao ren wu")) + add(OfflineCmdBean("处理第七项任务", "chu li di qi xiang ren wu")) + + add(OfflineCmdBean("查看第八条任务", "cha kan di ba tiao ren wu")) + add(OfflineCmdBean("查看第八项任务", "cha kan di ba xiang ren wu")) + add(OfflineCmdBean("打开第八条任务", "da kai di ba tiao ren wu")) + add(OfflineCmdBean("打开第八项任务", "da kai di ba xiang ren wu")) + add(OfflineCmdBean("处理第八条任务", "chu li di ba tiao ren wu")) + add(OfflineCmdBean("处理第八项任务", "chu li di ba xiang ren wu")) + + add(OfflineCmdBean("查看第九条任务", "cha kan di jiu tiao ren wu")) + add(OfflineCmdBean("查看第九项任务", "cha kan di jiu xiang ren wu")) + add(OfflineCmdBean("打开第九条任务", "da kai di jiu tiao ren wu")) + add(OfflineCmdBean("打开第九项任务", "da kai di jiu xiang ren wu")) + add(OfflineCmdBean("处理第九条任务", "chu li di jiu tiao ren wu")) + add(OfflineCmdBean("处理第九项任务", "chu li di jiu xiang ren wu")) + + add(OfflineCmdBean("查看第十条任务", "cha kan di shi tiao ren wu")) + add(OfflineCmdBean("查看第十项任务", "cha kan di shi xiang ren wu")) + add(OfflineCmdBean("打开第十条任务", "da kai di shi tiao ren wu")) + add(OfflineCmdBean("打开第十项任务", "da kai di shi xiang ren wu")) + add(OfflineCmdBean("处理第十条任务", "chu li di shi tiao ren wu")) + add(OfflineCmdBean("处理第十项任务", "chu li di shi xiang ren wu")) } fun init(){ val service = GlassSdk.getGlassOfflineCmdService() 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 928e1ae..8be87af 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 @@ -2,6 +2,7 @@ package com.nova.brain.glass.ui import android.content.Intent import android.os.Bundle +import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.LinearLayoutManager import com.nova.brain.glass.R import com.nova.brain.glass.databinding.ActivityTaskListBinding @@ -21,10 +22,21 @@ class TaskListActivity : BaseListFormLayoutActivity() { override fun getLayoutId(): Int = R.layout.activity_task_list override fun fullscreen(): Boolean = true + private var pageStartPosition = 0 override fun initView(savedInstanceState: Bundle?) { super.initView(savedInstanceState) window.addFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) + binding.baseRecyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() { + override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) { + if (newState == RecyclerView.SCROLL_STATE_IDLE) { + refreshVisibleOrder() + } + } + }) + binding.baseRecyclerView.post { + refreshVisibleOrder() + } binding.xia.setOnClickListener { toNext() @@ -45,6 +57,9 @@ class TaskListActivity : "上一页", "查看上一页", "继续上一页" -> { toPre() } + "查看第一条任务", "查看第一项任务", "打开第一条任务","打开第一项任务", "处理第一条任务", "处理第一项任务" -> { + toPre() + } } } } @@ -59,6 +74,7 @@ class TaskListActivity : val pageSize = (lastVisible - firstVisible).coerceAtLeast(1) val previousPosition = (firstVisible - pageSize).coerceAtLeast(0) layoutManager.scrollToPositionWithOffset(previousPosition, 0) + binding.baseRecyclerView.post { refreshVisibleOrder() } } else { ToolsHelper.showMessage("没有上一页了") } @@ -72,12 +88,23 @@ class TaskListActivity : val nextPosition = lastVisible + 1 if (nextPosition < adapter.itemCount) { layoutManager.scrollToPositionWithOffset(nextPosition, 0) + binding.baseRecyclerView.post { refreshVisibleOrder() } } else { ToolsHelper.showMessage("没有下一页了") } } } + private fun refreshVisibleOrder() { + val layoutManager = binding.baseRecyclerView.layoutManager as? LinearLayoutManager ?: return + val firstVisible = layoutManager.findFirstVisibleItemPosition() + if (firstVisible == RecyclerView.NO_POSITION || firstVisible == pageStartPosition) { + return + } + pageStartPosition = firstVisible + adapter.notifyDataSetChanged() + } + override fun onResume() { super.onResume() OfflineCmdServiceHelper.addOnLineListener(offlineCmdListener) @@ -90,8 +117,9 @@ class TaskListActivity : private val adapter = object : CommonPagedAdapter(R.layout.item_task_list) { override fun convert(holder: ViewHolder, item: TaskItem, position: Int) { + val displayPosition = (position - pageStartPosition + 1).coerceAtLeast(1) holder - .setText(R.id.tv_title, "${position}.张三提交的出差预算申请审核任务,从上海到北京,3月23开始3月24结束,预算金额¥1800元。【已逾期】") + .setText(R.id.tv_title, "${displayPosition}.张三提交的出差预算申请审核任务,从上海到北京,3月23开始3月24结束,预算金额¥1800元。【已逾期】") .setClickListener(R.id.tv_title ) { when(position%4){