Dubhe

style: format code

@@ -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:flutter/widgets.dart'; 1 import 'package:flutter/widgets.dart';
2 2
3 -import '../config/manager.dart';  
4 import '../page_view/page_info.dart'; 3 import '../page_view/page_info.dart';
5 4
6 class DragInfo { 5 class DragInfo {
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