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