diff --git a/lib/managers/file_manager.dart b/lib/managers/file_manager.dart index af1dfff..a764e20 100644 --- a/lib/managers/file_manager.dart +++ b/lib/managers/file_manager.dart @@ -112,7 +112,9 @@ class FileManager { final cacheData = String.fromCharCodes(data); - await cache.write(key, cacheData, CACHE_INVALIDATION_DURATION.inMinutes); + try { + await cache.write(key, cacheData, CACHE_INVALIDATION_DURATION.inMinutes); + } catch (error) {} return data; } diff --git a/lib/screens/main_screen/record_button.dart b/lib/screens/main_screen/record_button.dart index c55a7a1..8dcb110 100644 --- a/lib/screens/main_screen/record_button.dart +++ b/lib/screens/main_screen/record_button.dart @@ -1,6 +1,8 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:quid_faciam_hodie/enums/record_button_behavior.dart'; +import 'package:quid_faciam_hodie/managers/global_values_manager.dart'; class RecordButton extends StatefulWidget { final bool active; @@ -26,6 +28,7 @@ const OUT_DURATION = Duration(milliseconds: 300); class _RecordButtonState extends State { bool animateToVideoIcon = false; + void cancelAnimation() { if (widget.active) { return; @@ -36,8 +39,22 @@ class _RecordButtonState extends State { }); } + @override + void initState() { + super.initState(); + + final settings = GlobalValuesManager.settings!; + + // Update UI when settings change + settings.addListener(() { + setState(() {}); + }); + } + @override Widget build(BuildContext context) { + final settings = GlobalValuesManager.settings!; + return GestureDetector( // Take photo onTap: () { @@ -81,14 +98,18 @@ class _RecordButtonState extends State { return; } - setState(() { - animateToVideoIcon = false; - }); + if (settings.recordButtonBehavior == + RecordButtonBehavior.holdRecording) { + // Stop recording + setState(() { + animateToVideoIcon = false; + }); - if (widget.active) { - HapticFeedback.lightImpact(); + if (widget.active) { + HapticFeedback.lightImpact(); - widget.onVideoEnd(); + widget.onVideoEnd(); + } } }, // Animate to video icon