Showing
14 changed files
with
77 additions
and
24 deletions
@@ -2,7 +2,7 @@ library autotrack; | @@ -2,7 +2,7 @@ library autotrack; | ||
2 | 2 | ||
3 | export './auto_track/index.dart'; | 3 | export './auto_track/index.dart'; |
4 | export './auto_track/config/config.dart'; | 4 | export './auto_track/config/config.dart'; |
5 | -export './auto_track/page_view/navigation_observer.dart'; | ||
6 | -export './auto_track/click/navigator_key.dart'; | ||
7 | -export './auto_track/click/element_key.dart'; | 5 | +export './auto_track/listener/page_view/navigation_observer.dart'; |
6 | +export './auto_track/listener/click/navigator_key.dart'; | ||
7 | +export './auto_track/listener/click/element_key.dart'; | ||
8 | export './auto_track/log/logger.dart'; | 8 | export './auto_track/log/logger.dart'; |
@@ -76,6 +76,53 @@ class AutoTrackConfig { | @@ -76,6 +76,53 @@ class AutoTrackConfig { | ||
76 | bool enableDrag; | 76 | bool enableDrag; |
77 | 77 | ||
78 | bool enableIgnoreNullKey; | 78 | bool enableIgnoreNullKey; |
79 | + | ||
80 | + copyWith({ | ||
81 | + String? host, | ||
82 | + String? appKey, | ||
83 | + String? appSecret, | ||
84 | + String? trackId, | ||
85 | + String? userId, | ||
86 | + String? uniqueId, | ||
87 | + double? samplingRate, | ||
88 | + int? uploadInterval, | ||
89 | + Function? signature, | ||
90 | + EventHandlerFunc? eventHandler, | ||
91 | + List<AutoTrackPageConfig>? pageConfigs, | ||
92 | + bool? useCustomRoute, | ||
93 | + List<Key>? ignoreElementKeys, | ||
94 | + List<String>? ignoreElementStringKeys, | ||
95 | + bool? enablePageView, | ||
96 | + bool? enablePageLeave, | ||
97 | + bool? enableClick, | ||
98 | + bool? enableUpload, | ||
99 | + bool? enableDrag, | ||
100 | + bool? enableIgnoreNullKey, | ||
101 | + }) { | ||
102 | + return AutoTrackConfig( | ||
103 | + host: host ?? this.host, | ||
104 | + appKey: appKey ?? this.appKey, | ||
105 | + appSecret: appSecret ?? this.appSecret, | ||
106 | + trackId: trackId ?? this.trackId, | ||
107 | + userId: userId ?? this.userId, | ||
108 | + uniqueId: uniqueId ?? this.uniqueId, | ||
109 | + samplingRate: samplingRate ?? this.samplingRate, | ||
110 | + uploadInterval: uploadInterval ?? this.uploadInterval, | ||
111 | + signature: signature ?? this.signature, | ||
112 | + eventHandler: eventHandler ?? this.eventHandler, | ||
113 | + pageConfigs: pageConfigs ?? this.pageConfigs, | ||
114 | + useCustomRoute: useCustomRoute ?? this.useCustomRoute, | ||
115 | + ignoreElementKeys: ignoreElementKeys ?? this.ignoreElementKeys, | ||
116 | + ignoreElementStringKeys: | ||
117 | + ignoreElementStringKeys ?? this.ignoreElementStringKeys, | ||
118 | + enablePageView: enablePageView ?? this.enablePageView, | ||
119 | + enablePageLeave: enablePageLeave ?? this.enablePageLeave, | ||
120 | + enableClick: enableClick ?? this.enableClick, | ||
121 | + enableUpload: enableUpload ?? this.enableUpload, | ||
122 | + enableDrag: enableDrag ?? this.enableDrag, | ||
123 | + enableIgnoreNullKey: enableIgnoreNullKey ?? this.enableIgnoreNullKey, | ||
124 | + ); | ||
125 | + } | ||
79 | } | 126 | } |
80 | 127 | ||
81 | typedef PageWidgetFunc = bool Function(Widget); | 128 | typedef PageWidgetFunc = bool Function(Widget); |
1 | -import 'package:auto_track/auto_track/drag/drag_pointer_event_listener.dart'; | ||
2 | import 'package:flutter/foundation.dart'; | 1 | import 'package:flutter/foundation.dart'; |
3 | 2 | ||
4 | -import 'click/pointer_event_listener.dart'; | 3 | +import 'listener/click/pointer_event_listener.dart'; |
5 | import 'config/config.dart'; | 4 | import 'config/config.dart'; |
6 | import 'config/manager.dart'; | 5 | import 'config/manager.dart'; |
6 | +import 'listener/drag/drag_pointer_event_listener.dart'; | ||
7 | import 'log/logger.dart'; | 7 | import 'log/logger.dart'; |
8 | 8 | ||
9 | class AutoTrack { | 9 | class AutoTrack { |
@@ -3,9 +3,9 @@ import 'dart:convert'; | @@ -3,9 +3,9 @@ import 'dart:convert'; | ||
3 | import 'package:crypto/crypto.dart'; | 3 | import 'package:crypto/crypto.dart'; |
4 | import 'package:flutter/widgets.dart'; | 4 | import 'package:flutter/widgets.dart'; |
5 | 5 | ||
6 | -import '../config/manager.dart'; | 6 | +import '../../config/manager.dart'; |
7 | import '../page_view/page_info.dart'; | 7 | import '../page_view/page_info.dart'; |
8 | -import '../utils/element_util.dart'; | 8 | +import '../../utils/element_util.dart'; |
9 | import 'element_key.dart'; | 9 | import 'element_key.dart'; |
10 | import 'xpath.dart'; | 10 | import 'xpath.dart'; |
11 | 11 |
@@ -5,11 +5,11 @@ import 'package:flutter/rendering.dart'; | @@ -5,11 +5,11 @@ import 'package:flutter/rendering.dart'; | ||
5 | import 'package:flutter/widgets.dart'; | 5 | import 'package:flutter/widgets.dart'; |
6 | 6 | ||
7 | 7 | ||
8 | -import '../log/logger.dart'; | 8 | +import '../../log/logger.dart'; |
9 | import '../page_view/page_info.dart'; | 9 | import '../page_view/page_info.dart'; |
10 | import '../page_view/page_stack.dart'; | 10 | import '../page_view/page_stack.dart'; |
11 | -import '../track/track.dart'; | ||
12 | -import '../utils/element_util.dart'; | 11 | +import '../../track/track.dart'; |
12 | +import '../../utils/element_util.dart'; | ||
13 | import 'click_info.dart'; | 13 | import 'click_info.dart'; |
14 | 14 | ||
15 | class PointerEventListener { | 15 | class PointerEventListener { |
1 | -import 'package:auto_track/auto_track/drag/drag_info.dart'; | ||
2 | import 'package:auto_track/auto_track/track/track.dart'; | 1 | import 'package:auto_track/auto_track/track/track.dart'; |
3 | import 'package:flutter/gestures.dart'; | 2 | import 'package:flutter/gestures.dart'; |
4 | 3 | ||
5 | import '../page_view/page_stack.dart'; | 4 | import '../page_view/page_stack.dart'; |
5 | +import 'drag_info.dart'; | ||
6 | 6 | ||
7 | class DragPointerEventListener { | 7 | class DragPointerEventListener { |
8 | static final DragPointerEventListener instance = DragPointerEventListener._(); | 8 | static final DragPointerEventListener instance = DragPointerEventListener._(); |
1 | import 'package:flutter/material.dart'; | 1 | import 'package:flutter/material.dart'; |
2 | import 'package:flutter/scheduler.dart'; | 2 | import 'package:flutter/scheduler.dart'; |
3 | 3 | ||
4 | -import '../config/config.dart'; | ||
5 | -import '../config/manager.dart'; | ||
6 | -import '../log/logger.dart'; | ||
7 | -import '../utils/element_util.dart'; | 4 | +import '../../config/config.dart'; |
5 | +import '../../config/manager.dart'; | ||
6 | +import '../../log/logger.dart'; | ||
7 | +import '../../utils/element_util.dart'; | ||
8 | import 'page_stack.dart'; | 8 | import 'page_stack.dart'; |
9 | 9 | ||
10 | class AutoTrackNavigationObserver extends NavigatorObserver { | 10 | class AutoTrackNavigationObserver extends NavigatorObserver { |
@@ -3,9 +3,9 @@ import 'dart:convert'; | @@ -3,9 +3,9 @@ import 'dart:convert'; | ||
3 | import 'package:crypto/crypto.dart'; | 3 | import 'package:crypto/crypto.dart'; |
4 | import 'package:flutter/material.dart'; | 4 | import 'package:flutter/material.dart'; |
5 | 5 | ||
6 | -import '../config/config.dart'; | ||
7 | -import '../config/manager.dart'; | ||
8 | -import '../utils/element_util.dart'; | 6 | +import '../../config/config.dart'; |
7 | +import '../../config/manager.dart'; | ||
8 | +import '../../utils/element_util.dart'; | ||
9 | 9 | ||
10 | class PageInfo { | 10 | class PageInfo { |
11 | PageInfo._(this.timer); | 11 | PageInfo._(this.timer); |
@@ -3,7 +3,7 @@ import 'dart:core'; | @@ -3,7 +3,7 @@ import 'dart:core'; | ||
3 | 3 | ||
4 | import 'package:flutter/widgets.dart'; | 4 | import 'package:flutter/widgets.dart'; |
5 | 5 | ||
6 | -import '../track/track.dart'; | 6 | +import '../../track/track.dart'; |
7 | import 'page_info.dart'; | 7 | import 'page_info.dart'; |
8 | 8 | ||
9 | class PageStack with WidgetsBindingObserver { | 9 | class PageStack with WidgetsBindingObserver { |
1 | import 'package:auto_track/auto_track/config/queue.dart'; | 1 | import 'package:auto_track/auto_track/config/queue.dart'; |
2 | -import 'package:auto_track/auto_track/drag/drag_info.dart'; | ||
3 | import 'package:auto_track/auto_track/utils/error_model.dart'; | 2 | import 'package:auto_track/auto_track/utils/error_model.dart'; |
3 | +import 'package:auto_track/auto_track/utils/request_model.dart'; | ||
4 | import 'package:auto_track/auto_track/utils/track_model.dart'; | 4 | import 'package:auto_track/auto_track/utils/track_model.dart'; |
5 | 5 | ||
6 | -import '../click/click_info.dart'; | 6 | +import '../listener/click/click_info.dart'; |
7 | import '../config/manager.dart'; | 7 | import '../config/manager.dart'; |
8 | +import '../listener/drag/drag_info.dart'; | ||
8 | import '../log/logger.dart'; | 9 | import '../log/logger.dart'; |
9 | -import '../page_view/page_info.dart'; | 10 | +import '../listener/page_view/page_info.dart'; |
10 | 11 | ||
11 | class Track { | 12 | class Track { |
12 | static final Track instance = Track._(); | 13 | static final Track instance = Track._(); |
@@ -104,7 +105,13 @@ class Track { | @@ -104,7 +105,13 @@ class Track { | ||
104 | } | 105 | } |
105 | 106 | ||
106 | void reportError(Object error, StackTrace stack) { | 107 | void reportError(Object error, StackTrace stack) { |
107 | - _TrackPlugin.customEvent('error', ErrorModel(error: error, stack: stack).toMap()); | 108 | + final model = ErrorModel(error: error, stack: stack); |
109 | + _TrackPlugin.customEvent('error', model.toMap()); | ||
110 | + AutoTrackLogger.getInstance().debug('track error => ${model.toMap()}'); | ||
111 | + } | ||
112 | + | ||
113 | + void reportHttpRequest(RequestModel requestModel) { | ||
114 | + AutoTrackLogger.getInstance().debug('track request => ${requestModel.toMap()}'); | ||
108 | } | 115 | } |
109 | } | 116 | } |
110 | 117 |
-
Please register or login to post a comment