@@ -46,6 +46,15 @@ - (NSString *)generateAct: (CMMotionActivity *) activity {
46
46
return @" UNKNOWN" ;
47
47
}
48
48
49
+ - (NSDictionary *)constantsToExport
50
+ {
51
+ // Export a few common activity types to allow easier mocking.
52
+ return @{
53
+ @" IOS_STATIONARY" : @" STATIONARY" ,
54
+ @" IOS_WALKING" : @" WALKING" ,
55
+ @" IOS_AUTOMOTIVE" : @" AUTOMOTIVE" ,
56
+ };
57
+ }
49
58
50
59
- (void )activityManager
51
60
{
@@ -69,6 +78,19 @@ - (void)activityManager
69
78
}
70
79
}
71
80
81
+ - (void )mockActivityManager : (NSTimer *)timer
82
+ {
83
+ // Receive the data.
84
+ NSString * mockActivity = timer.userInfo ;
85
+
86
+ if (mockActivity == nil ) mockActivity = @" UNKNOWN" ;
87
+
88
+ dispatch_async (dispatch_get_main_queue (), ^{
89
+ _activityEvent = @{ mockActivity: @100 };
90
+ [self sendEventWithName: @" ActivityDetection" body: _activityEvent];
91
+ });
92
+ }
93
+
72
94
RCT_EXPORT_METHOD (startActivity:(float )time callback:(RCTResponseSenderBlock)callback)
73
95
{
74
96
NSString * errorMsg = checkActivityConfig (callback);
@@ -87,6 +109,24 @@ - (void)activityManager
87
109
callback (@[[NSNull null ]]);
88
110
}
89
111
112
+ RCT_EXPORT_METHOD (startMockedActivity:(float )time mockActivity:(NSString *)mockActivity callback:(RCTResponseSenderBlock)callback)
113
+ {
114
+ _timeout = time/1000 ;
115
+ RCTLogInfo (@" Starting Mock Activity Detection" );
116
+ _timer = [NSTimer scheduledTimerWithTimeInterval: _timeout
117
+ target: self selector: @selector (mockActivityManager: ) userInfo: mockActivity repeats: YES ];
118
+
119
+ callback (@[[NSNull null ]]);
120
+ }
121
+
122
+ RCT_EXPORT_METHOD (stopMockedActivity:(RCTResponseSenderBlock)callback)
123
+ {
124
+ RCTLogInfo (@" Stopping Mock Activity Detection" );
125
+ [_timer invalidate ];
126
+
127
+ callback (@[[NSNull null ]]);
128
+ }
129
+
90
130
RCT_EXPORT_METHOD (stopActivity:(RCTResponseSenderBlock)callback)
91
131
{
92
132
RCTLogInfo (@" Stopping Activity Detection" );
0 commit comments