TF-3719 Add handle export log to device if need

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-05-16 20:16:11 +07:00
committed by Dat H. Pham
parent a891e07887
commit 0ca3ca170d
20 changed files with 541 additions and 6 deletions
@@ -0,0 +1,51 @@
import 'package:flutter/material.dart';
import '../../../utils/app_logger.dart';
class MultiClickWidget extends StatefulWidget {
final Widget child;
final int requiredClicks;
final Duration interval;
final VoidCallback onMultiTap;
const MultiClickWidget({
Key? key,
required this.child,
required this.onMultiTap,
this.requiredClicks = 7,
this.interval = const Duration(seconds: 2),
}) : super(key: key);
@override
State<MultiClickWidget> createState() => _MultiClickWidgetState();
}
class _MultiClickWidgetState extends State<MultiClickWidget> {
int _clickCount = 0;
DateTime? _lastClickTime;
void _handleTap() {
final now = DateTime.now();
if (_lastClickTime == null ||
now.difference(_lastClickTime!) > widget.interval) {
_clickCount = 1;
} else {
_clickCount++;
}
_lastClickTime = now;
log('_MultiClickWidgetState::_handleTap: ClickCount: $_clickCount');
if (_clickCount >= widget.requiredClicks) {
_clickCount = 0;
widget.onMultiTap();
}
}
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: _handleTap,
child: widget.child,
);
}
}