ワンクリックで
compose-reuse-checker
分析 Compose 界面是否使用了项目中可复用的组件和主题系统。适用于检查 Compose 屏幕是否符合项目规范或需要重构以使用共享组件。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
分析 Compose 界面是否使用了项目中可复用的组件和主题系统。适用于检查 Compose 屏幕是否符合项目规范或需要重构以使用共享组件。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | compose-reuse-checker |
| description | 分析 Compose 界面是否使用了项目中可复用的组件和主题系统。适用于检查 Compose 屏幕是否符合项目规范或需要重构以使用共享组件。 |
分析 Compose UI 文件,判断其是否正确使用了项目的可复用组件和主题系统。
接受以下任一形式:
@Composable 函数的 .kt 文件的完整路径在文件中查找以下导入和使用:
必要的主题导入:
import io.legado.app.ui.theme.LegadoTheme
import io.legado.app.ui.theme.*
必要的颜色函数(应替代硬编码颜色使用):
// 来自 CommonPageColors.kt - 页面级颜色
pageTopBarContainerColor() // TopBar/Header 背景色
pageCardContainerColor() // 卡片容器背景色
pageCardElevatedContainerColor() // 悬浮卡片背景色
pageHeaderContainerColor() // Header 背景色
pageSecondaryTextColor() // 次要文字颜色
pageAccentColor() // 强调/高亮颜色
pageSurfaceVariantColor() // Surface 变体颜色
pageMutedIconTint() // 弱化图标色调
// 来自 LegadoTheme.kt - 应包装内容
LegadoTheme { content() }
查找以下组件的导入和使用:
卡片组件:
import io.legado.app.ui.widget.components.card.GlassCard
import io.legado.app.ui.widget.components.card.TextCard
// 使用方式
GlassCard(modifier, containerColor, cornerRadius) { ... }
TextCard(text, backgroundColor, contentColor)
模态组件:
import io.legado.app.ui.widget.components.modalBottomSheet.AppModalBottomSheet
// 使用方式
AppModalBottomSheet(show, onDismissRequest, title) { ... }
列表组件:
import io.legado.app.ui.widget.components.list.TopFloatingStickyItem
// 使用方式
TopFloatingStickyItem(item) { item -> ... }
复选框组件:
import io.legado.app.ui.widget.components.checkBox.CheckboxItem
// 使用方式
CheckboxItem(title, checked, onCheckedChange)
查找以下用法:
MaterialTheme.colorScheme.primary
MaterialTheme.colorScheme.surface
MaterialTheme.colorScheme.onSurface
MaterialTheme.typography.bodyMedium
这些应该尽可能替代原始的 Color 对象使用。
分析完成后,提供:
## 分析结果
### ✅ 已正确使用
- [正确使用的组件/函数列表]
### ❌ 未使用/可优化
- [缺失的可复用组件或硬编码值列表]
### 🔧 建议修改
针对每个发现的问题,提供:
如果需要修改,提供具体的迁移计划:
## 迁移计划
### 1. 添加必要的导入
```kotlin
import io.legado.app.ui.theme.pageTopBarContainerColor
import io.legado.app.ui.widget.components.card.GlassCard
// ... 其他导入
修改前:
backgroundColor = Color(0xFFE0E0E0)
修改后:
backgroundColor = pageCardContainerColor()
修改前:
Card(modifier, colors = CardDefaults.cardColors(...)) { ... }
修改后:
GlassCard(modifier) { ... }
修改前:
@Composable
fun MyScreen() {
// ...
}
修改后:
@Composable
fun MyScreen() {
LegadoTheme {
// ...
}
}
## 示例
### 示例 1:良好用法
正确使用主题系统的文件:
```kotlin
import io.legado.app.ui.theme.LegadoTheme
import io.legado.app.ui.theme.pageTopBarContainerColor
import io.legado.app.ui.theme.pageCardContainerColor
import io.legado.app.ui.widget.components.card.GlassCard
@Composable
fun GoodScreen() {
LegadoTheme {
val topBarColor = pageTopBarContainerColor()
val cardColor = pageCardContainerColor()
GlassCard(containerColor = cardColor) {
Text("Content")
}
}
}
使用硬编码颜色的文件:
// ❌ 缺少导入
// ❌ 硬编码背景颜色
// ❌ 缺少 LegadoTheme 包装
@Composable
fun BadScreen() {
Column(modifier = Modifier.background(Color(0xFFF5F5F5))) {
Card(modifier = Modifier.background(Color.White)) {
Text("Content")
}
}
}
CommonPageColors.kt 中的 pageTopBarContainerColor() 等函数ReadRecordColors.kt 中的做法)GlassCard 而不是原始 Card 以实现玻璃效果LegadoTheme 包装内容以保持主题一致性MaterialTheme.colorScheme.* 替代硬编码颜色来处理 Material 组件通过对比 entities、schema JSON 和迁移方案,诊断并修复 Android Room 数据库在 entity 或 database 变更后的 schema 校验崩溃;增加数据库版本号,添加重命名/新增/删除列的迁移,并验证生成的 Room 代码。
优化Markdown文件中的ASCII流程图,使其更适合手机显示。将宽大的ASCII边框图转换为紧凑的树形结构。当用户要求修复流程图在手机上的显示问题时调用。
检查备份系统中选择器、备份逻辑、恢复逻辑、备份信息显示之间的数据一致性。当用户问备份对不对、备份选漏了没、恢复和备份匹配吗、备份信息准不准时调用。
Legado Plus 模块学习讲解器。当用户想学习某个模块、询问模块功能、请求讲解代码架构时调用。提供生动详尽的模块讲解,包括架构图、代码走读、实践任务。
Critical Android code review for Payoo Android app. Focuses on high-impact issues - naming conventions, memory leaks, UIState patterns, business logic placement, lifecycle management, and MVI/MVVM pattern violations. Use when reviewing Kotlin files, pull requests, or checking ViewModels, Activities, Fragments, UseCases, and Repositories.
安卓原生模块学习讲解器。当用户想学习某个模块、询问模块功能、请求讲解代码架构时调用。提供生动详尽的模块讲解,包括架构图、代码走读、实践任务。