feat: 新增语音记录饮食功能与开发者调试模块

- 集成 @react-native-voice/voice 实现中文语音识别,支持“一句话记录”餐食
- 新增语音录制页面,含波形动画、音量反馈与识别结果确认
- FloatingFoodOverlay 新增语音入口,打通拍照/库/语音三种记录方式
- 添加麦克风与语音识别权限描述(iOS Info.plist 与 Android manifest)
- 实现开发者模式:连续三次点击用户名激活,含日志查看、导出与清除
- 新增 logger 工具类,统一日志存储(AsyncStorage)与按级别输出
- 重构 BackgroundTaskManager 为单例并支持 Promise 初始化,避免重复注册
- 移除 sleep-detail 多余渐变背景,改用 ThemedView 统一主题
- 新增通用 haptic 反馈函数,支持多种震动类型(iOS only)
- 升级 expo-background-task、expo-notifications、expo-task-manager 至兼容版本
This commit is contained in:
richarjiang
2025-09-11 19:11:09 +08:00
parent 35d6b74451
commit 3a4a55b78e
17 changed files with 1427 additions and 75 deletions

View File

@@ -30,6 +30,11 @@ export function FloatingFoodOverlay({ visible, onClose, mealType = 'dinner' }: F
router.push(`/food/camera?mealType=${mealType}`);
};
const handleVoiceRecord = () => {
onClose();
router.push(`${ROUTES.VOICE_RECORD}?mealType=${mealType}`);
};
const menuItems = [
{
id: 'scan',
@@ -45,6 +50,13 @@ export function FloatingFoodOverlay({ visible, onClose, mealType = 'dinner' }: F
backgroundColor: '#FF9500',
onPress: handleFoodLibrary,
},
{
id: 'voice-record',
title: '一句话记录',
icon: '🎤',
backgroundColor: '#7B68EE',
onPress: handleVoiceRecord,
},
];
return (