mirror of
https://github.com/kuhyx/diet-guard.git
synced 2026-11-11 12:47:39 +01:00
Some checks are pending
dependency freshness / dependencies on newest stable (push) Waiting to run
file-length / file length <= 250 lines (push) Waiting to run
md-naming / markdown naming convention (push) Waiting to run
pre-commit / pre-commit (${{ matrix.group }}) (mypy, mypy, ) (push) Waiting to run
pre-commit / pre-commit (${{ matrix.group }}) (pylint, pylint, ) (push) Waiting to run
pre-commit / pre-commit (${{ matrix.group }}) (rest, , mypy,pylint) (push) Waiting to run
Tests / test (push) Waiting to run
release-apk / release (APK) (push) Waiting to run
repo-contract / repo contract (push) Waiting to run
- lightImpact + 160 ms confirm cue on a validated log (audioplayers, no audio focus); device-local opt-out switch in Settings, on by default - post-log card: confirmation line (slot + the meal's kcal), entrance and kcal/streak count-up on motion tokens transcribed into ui/theme.dart; durations collapse to zero under disableAnimations - test/flutter_test_config.dart mutes the cue suite-wide Todo: 8e66c1b9 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WzxdWVHMLzeojNP4AaPoEj
20 lines
651 B
Dart
20 lines
651 B
Dart
import 'dart:async';
|
|
|
|
import 'package:diet_guard_app/services/app_settings_service.dart';
|
|
import 'package:diet_guard_app/services/confirm_cue_player.dart';
|
|
import 'package:flutter/services.dart';
|
|
|
|
/// `lightImpact` + `confirm` on a recorded meal, whatever its kcal.
|
|
abstract final class LogFeedback {
|
|
/// Swapped out by test/flutter_test_config.dart.
|
|
static Future<void> Function() playConfirmCue = playConfirmCueAsset;
|
|
|
|
/// Fires both without awaiting, so the write is not delayed.
|
|
static void mealLogged() {
|
|
unawaited(HapticFeedback.lightImpact());
|
|
if (AppSettingsService.soundOnLog) {
|
|
unawaited(playConfirmCue());
|
|
}
|
|
}
|
|
}
|