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:
@@ -53,4 +53,26 @@ export const triggerErrorHaptic = () => {
|
||||
if (Platform.OS === 'ios') {
|
||||
Haptics.notificationAsync(Haptics.NotificationFeedbackType.Error);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* 通用震动反馈函数 (仅在 iOS 上生效)
|
||||
*/
|
||||
export const triggerHapticFeedback = (type: 'impactLight' | 'impactMedium' | 'impactHeavy' | 'success' | 'warning' | 'error') => {
|
||||
if (Platform.OS === 'ios') {
|
||||
switch (type) {
|
||||
case 'impactLight':
|
||||
return Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light);
|
||||
case 'impactMedium':
|
||||
return Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Medium);
|
||||
case 'impactHeavy':
|
||||
return Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Heavy);
|
||||
case 'success':
|
||||
return Haptics.notificationAsync(Haptics.NotificationFeedbackType.Success);
|
||||
case 'warning':
|
||||
return Haptics.notificationAsync(Haptics.NotificationFeedbackType.Warning);
|
||||
case 'error':
|
||||
return Haptics.notificationAsync(Haptics.NotificationFeedbackType.Error);
|
||||
}
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user