refactor: 电报解析列表整卡点击跳转及调试菜单切换至国际进港
- 电报解析列表项整个卡片可点击跳转详情,勾选框除外 - 开发调试自动跳转目标从国际出港改为国际进港 - 重构调试开关为通用配置,支持一键关闭和切换目标菜单 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -50,7 +50,8 @@ class HomeFragment : Fragment() {
|
|||||||
* TODO: 正式发布前务必设置为 false
|
* TODO: 正式发布前务必设置为 false
|
||||||
*/
|
*/
|
||||||
companion object {
|
companion object {
|
||||||
private const val DEV_AUTO_SELECT_INT_EXP = true // 自动选择国际出港开关
|
private const val DEV_AUTO_SELECT_MENU = true // 开发调试:自动选择菜单开关,正式发布前设为 false
|
||||||
|
private const val DEV_AUTO_SELECT_MENU_ID = Constant.AuthName.IntImp // 自动选择的目标菜单
|
||||||
}
|
}
|
||||||
|
|
||||||
private var rvLeft: RecyclerView by Delegates.notNull()
|
private var rvLeft: RecyclerView by Delegates.notNull()
|
||||||
@@ -73,9 +74,8 @@ class HomeFragment : Fragment() {
|
|||||||
rvLeft.adapter = HomeLeftAdapt(leftMenuList)
|
rvLeft.adapter = HomeLeftAdapt(leftMenuList)
|
||||||
rvRight.adapter = HomeRightAdapt(getRightMenu4Id(leftMenuList.first().id))
|
rvRight.adapter = HomeRightAdapt(getRightMenu4Id(leftMenuList.first().id))
|
||||||
|
|
||||||
// ========== 开发调试:自动选择"国际出港"菜单 ==========
|
// ========== 开发调试:自动选择指定菜单 ==========
|
||||||
// TODO: 正式发布前删除此行
|
autoSelectMenuForDev()
|
||||||
autoSelectIntExpForDev()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////// 左边的list循环
|
/////////// 左边的list循环
|
||||||
@@ -933,24 +933,20 @@ class HomeFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 开发调试:自动选择"国际出港"菜单
|
* 开发调试:自动选择指定菜单
|
||||||
* TODO: 正式发布前删除此方法或将 DEV_AUTO_SELECT_INT_EXP 设置为 false
|
* 正式发布前将 DEV_AUTO_SELECT_MENU 设置为 false 即可关闭
|
||||||
*/
|
*/
|
||||||
private fun autoSelectIntExpForDev() {
|
private fun autoSelectMenuForDev() {
|
||||||
if (!DEV_AUTO_SELECT_INT_EXP) return
|
if (!DEV_AUTO_SELECT_MENU) return
|
||||||
|
|
||||||
// 延迟执行,确保适配器已初始化
|
|
||||||
rvLeft.postDelayed({
|
rvLeft.postDelayed({
|
||||||
val leftAdapter = rvLeft.adapter as? HomeLeftAdapt ?: return@postDelayed
|
val leftAdapter = rvLeft.adapter as? HomeLeftAdapt ?: return@postDelayed
|
||||||
|
|
||||||
// 查找"国际出港"在左侧菜单的位置
|
|
||||||
val leftMenuList = initLeftMenuData()
|
val leftMenuList = initLeftMenuData()
|
||||||
val intExpIndex = leftMenuList.indexOfFirst { it.id == Constant.AuthName.IntExp }
|
val targetIndex = leftMenuList.indexOfFirst { it.id == DEV_AUTO_SELECT_MENU_ID }
|
||||||
|
|
||||||
if (intExpIndex >= 0) {
|
if (targetIndex >= 0) {
|
||||||
// 模拟点击左侧"国际出港"菜单项
|
leftAdapter.simulateClick(targetIndex)
|
||||||
leftAdapter.simulateClick(intExpIndex)
|
|
||||||
}
|
}
|
||||||
}, 300) // 延迟300ms确保适配器已绑定数据
|
}, 300)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -14,10 +14,10 @@ class IntImpMsgParseViewHolder(view: View) :
|
|||||||
binding.position = position
|
binding.position = position
|
||||||
binding.executePendingBindings()
|
binding.executePendingBindings()
|
||||||
|
|
||||||
// 卡片点击 - 查看详情
|
// 整个卡片点击 - 查看详情
|
||||||
notifyItemClick(position, binding.llContent)
|
notifyItemClick(position, itemView)
|
||||||
|
|
||||||
// 选择框点击 - 切换选择状态
|
// 选择框点击 - 切换选择状态(拦截,不触发卡片点击)
|
||||||
binding.ivCheck.setOnClickListener {
|
binding.ivCheck.setOnClickListener {
|
||||||
bean.checked.set(!bean.checked.get())
|
bean.checked.set(!bean.checked.get())
|
||||||
binding.executePendingBindings()
|
binding.executePendingBindings()
|
||||||
|
|||||||
Reference in New Issue
Block a user