Line data Source code
1 : import 'package:meta/meta.dart'; 2 : 3 : import 'tree.dart'; 4 : 5 : abstract class AnalyticsTree { 6 : Set<Type> get supportedTypes; 7 : 8 1 : @protected 9 : bool isSupportedType(value) { 10 2 : return supportedTypes.contains(value); 11 : } 12 : 13 : @protected 14 : bool isSupportedEventName(String name); 15 : 16 : Future<void> performLogEvent( 17 : {@required String name, Map<String, dynamic> parameters}); 18 : 19 : Future<void> timingEvent(String name); 20 : 21 : Future<void> setCurrentScreen( 22 : {@required String screenName, String screenClassOverride = 'Flutter'}); 23 : 24 : Future<void> reset(); 25 : 26 : Future<void> flush(); 27 : } 28 : 29 3 : final _alphaNumeric = RegExp(r'^[a-zA-Z0-9_]*$'); 30 : 31 : extension StringX on String { 32 1 : bool get isAlphaNumeric { 33 2 : return _alphaNumeric.hasMatch(this); 34 : } 35 : } 36 : 37 : abstract class UserAnalyticsTree { 38 1 : String get emailProperty => 'email'; 39 : 40 1 : String get phoneProperty => 'phone'; 41 : 42 1 : String get userIdProperty => 'userId'; 43 : 44 1 : String get uidProperty => 'uid'; 45 : 46 1 : String get nameProperty => 'name'; 47 : 48 : /// userId 설정 49 1 : Future<void> setUserId(String id) { 50 2 : return setUserProperty(userIdProperty, id); 51 : } 52 : 53 : /// email 설정 54 1 : Future<void> setEmail(String email) async { 55 2 : return setUserProperty(emailProperty, email); 56 : } 57 : 58 : /// 전화번호 설정 59 1 : Future<void> setPhone(String phone) async { 60 2 : return setUserProperty(phoneProperty, phone); 61 : } 62 : 63 : /// uid 설정 64 1 : Future<void> setUid(String uid) { 65 2 : return setUserProperty(uidProperty, uid); 66 : } 67 : 68 : Future<void> union(Map<String, List<dynamic>> properties); 69 : 70 : Future<void> setUserProperty(String name, dynamic value); 71 : 72 : Future<void> increment(Map<String, num> properties); 73 : 74 : Future<void> setOnce(Map<String, dynamic> properties); 75 : 76 1 : Future<void> setUserName(value) { 77 2 : return setUserProperty(nameProperty, value); 78 : } 79 : 80 : Future<void> reset(); 81 : 82 : Future<void> flush(); 83 : }