# 按键版电子吧唧功能规划

## 硬件按键

- **BOOT按键** (GPIO9)：确认/执行/返回
- **KEY按键** (GPIO8)：导航/切换

## 按键驱动

采用 ESP-IDF 官方 `iot_button` 组件，原生支持单击、双击、长按检测，替代原有自定义 GPIO 中断驱动。

## 全局规则

| 操作 | 功能 |
|------|------|
| 双击BOOT | 任何界面/模式下→返回Home |
| 任意键按下 | 熄屏状态→唤醒屏幕（仅唤醒，不触发业务） |

## 各界面按键功能

### 1. Home界面

| 操作 | 功能 |
|------|------|
| KEY单击 | 切换到Img界面（图片浏览） |
| BOOT单击 | 切换到Set界面（设置） |
| BOOT双击 | 无操作（已在Home） |

### 2. Img界面（图片浏览）

#### 正常浏览模式

| 操作 | 功能 |
|------|------|
| KEY单击 | 显示下一张图片（循环） |
| BOOT单击 | 返回Home界面 |
| BOOT双击 | 返回Home界面 |

#### 删除模式（从Set界面进入，显示ContainerDle）

| 操作 | 功能 |
|------|------|
| BOOT单击 | 确认删除当前图片，顺位显示下一张 |
| KEY单击 | 取消删除，隐藏ContainerDle，回到正常浏览模式 |
| BOOT双击 | 返回Home界面 |

### 3. Set界面（设置）

#### 焦点导航

进入Set界面默认无焦点选中。KEY单击按顺序轮询选中功能图标：

```
无选中 → 节能 → 应援灯 → 删除 → 亮度 → 无选中（循环）
```

- 选中的图标显示**蓝色加粗边框**
- 切换到下一个图标时，上一个取消边框
- 离开Set界面或返回Home后，边框状态全部清除
- 下次进入Set界面默认无选中

#### 未选中状态

| 操作 | 功能 |
|------|------|
| KEY单击 | 选中第一个图标（节能） |
| BOOT单击 | 返回前一界面（Home或Img） |
| BOOT双击 | 返回Home界面 |

#### 已选中图标但未激活功能

| 操作 | 功能 |
|------|------|
| KEY单击 | 切换到下一个图标 |
| BOOT单击 | 激活当前选中图标的功能 |
| BOOT双击 | 返回Home界面 |

#### 各功能详细操作

**1）节能模式**
- BOOT单击激活：切换节能模式开/关
- 激活后立即生效，焦点保持在节能图标
- 继续KEY单击→移到下一个图标

**2）应援灯（手电筒）**
- BOOT单击激活：进入应援灯全屏模式
- 进入后按键上下文切换为应援灯模式：

| 操作 | 功能 |
|------|------|
| BOOT单击 | 切换颜色（红→绿→蓝循环） |
| KEY单击 | 退出应援灯，返回Set界面 |
| BOOT双击 | 退出应援灯，返回Home界面 |

**3）删除图片**
- BOOT单击激活：跳转Img界面，显示删除容器（ContainerDle）
- 进入删除模式后按键行为见上方「Img界面-删除模式」

**4）亮度调节**
- BOOT单击激活：进入亮度调节模式
- 进入后按键行为：

| 操作 | 功能 |
|------|------|
| KEY单击 | 亮度-10%（最低10%） |
| BOOT单击 | 亮度+10%（最高100%） |
| KEY长按2秒 | 退出亮度调节，继续焦点轮询 |
| BOOT双击 | 返回Home界面 |

## 实施步骤

1. 添加 `iot_button` 组件依赖，替代自定义按键驱动
2. 新建按键导航管理器（key_nav模块），管理界面上下文和焦点状态
3. 改造各界面：移除触摸手势，添加按键驱动的导航逻辑
4. Set界面添加蓝色边框高亮样式
5. 适配休眠管理器

## 设计说明

1. **取消触摸芯片**：本次改版取消触摸芯片以降低成本，所有交互通过两个物理按键实现
2. **iot_button组件**：使用ESP官方组件，自带去抖、单击/双击/长按检测，稳定可靠
3. **上下文隔离**：不同界面/模式的按键行为完全独立，通过导航管理器统一调度
4. **双击BOOT全局返回**：任何状态下双击BOOT都能回Home，用户不会"迷路"
