File tree Expand file tree Collapse file tree 5 files changed +66
-79
lines changed Expand file tree Collapse file tree 5 files changed +66
-79
lines changed Original file line number Diff line number Diff line change 2
2
library logger_flutter;
3
3
4
4
import 'dart:collection' ;
5
- import 'dart:io' ;
6
5
7
- import 'package:flutter/cupertino.dart' ;
8
6
import 'package:flutter/material.dart' ;
9
7
import 'package:logger/logger.dart' ;
10
8
11
9
import 'src/ansi_parser.dart' ;
12
- import 'src/shake_detector.dart' ;
10
+
11
+ export 'src/shake/default_shake_detector.dart' ;
12
+ export 'src/shake/shake_detector.dart' ;
13
+ export 'src/shake_detector_widget.dart' ;
13
14
14
15
part 'src/log_console.dart' ;
15
- part 'src/log_console_on_shake.dart' ;
Load Diff This file was deleted.
Original file line number Diff line number Diff line change @@ -2,29 +2,35 @@ import 'dart:async';
2
2
import 'dart:math' ;
3
3
4
4
import 'package:flutter/material.dart' ;
5
+ import 'package:logger_flutter_plus/src/shake/shake_detector.dart' ;
5
6
import 'package:sensors_plus/sensors_plus.dart' ;
6
7
7
- class ShakeDetector {
8
- ShakeDetector ({
8
+ class DefaultShakeDetector implements ShakeDetector {
9
+ DefaultShakeDetector ({
9
10
required this .onPhoneShake,
10
11
this .shakeThresholdGravity = 1.25 ,
11
12
this .minTimeBetweenShakes = 160 ,
12
13
this .shakeCountResetTime = 1500 ,
13
14
this .minShakeCount = 2 ,
14
15
});
15
16
17
+ @override
16
18
final VoidCallback onPhoneShake;
17
-
19
+ @override
18
20
final double shakeThresholdGravity;
21
+ @override
19
22
final int minTimeBetweenShakes;
23
+ @override
20
24
final int shakeCountResetTime;
25
+ @override
21
26
final int minShakeCount;
22
27
23
28
int _shakeCount = 0 ;
24
29
int _lastShakeTimestamp = DateTime .now ().millisecondsSinceEpoch;
25
30
StreamSubscription ? _streamSubscription;
26
31
27
32
/// Starts listening to accerelometer events
33
+ @override
28
34
void startListening () {
29
35
_streamSubscription = accelerometerEvents
30
36
.map ((event) {
@@ -57,6 +63,7 @@ class ShakeDetector {
57
63
}
58
64
59
65
/// Stops listening to accelerometer events
66
+ @override
60
67
void stopListening () {
61
68
_streamSubscription? .cancel ();
62
69
_streamSubscription = null ;
Original file line number Diff line number Diff line change
1
+ import 'package:flutter/material.dart' ;
2
+
3
+ abstract class ShakeDetector {
4
+ abstract final VoidCallback onPhoneShake;
5
+
6
+ abstract final double shakeThresholdGravity;
7
+ abstract final int minTimeBetweenShakes;
8
+ abstract final int shakeCountResetTime;
9
+ abstract final int minShakeCount;
10
+
11
+ /// Starts listening to accerelometer events
12
+ void startListening ();
13
+
14
+ /// Stops listening to accelerometer events
15
+ void stopListening ();
16
+ }
Original file line number Diff line number Diff line change
1
+ import 'package:flutter/material.dart' ;
2
+ import 'package:logger_flutter_plus/src/shake/shake_detector.dart' ;
3
+
4
+ class ShakeDetectorWidget extends StatefulWidget {
5
+ const ShakeDetectorWidget ({
6
+ Key ? key,
7
+ required this .child,
8
+ required this .shakeDetector,
9
+ }) : super (key: key);
10
+
11
+ final Widget child;
12
+ final ShakeDetector shakeDetector;
13
+
14
+ @override
15
+ _ShakeDetectorWidgetState createState () => _ShakeDetectorWidgetState ();
16
+ }
17
+
18
+ class _ShakeDetectorWidgetState extends State <ShakeDetectorWidget > {
19
+ @override
20
+ void initState () {
21
+ super .initState ();
22
+
23
+ widget.shakeDetector.startListening ();
24
+ }
25
+
26
+ @override
27
+ Widget build (BuildContext context) {
28
+ return widget.child;
29
+ }
30
+
31
+ @override
32
+ void dispose () {
33
+ widget.shakeDetector.stopListening ();
34
+ super .dispose ();
35
+ }
36
+ }
You can’t perform that action at this time.
0 commit comments