Description
Is your feature request related to a problem? Please describe.
In order to listen to multiple measurement types in the background, you have to create 4 event emitters for every type. e.g.
NativeAppEventEmitter.addListener('healthKit:HeartRate:setup:success', callback)
NativeAppEventEmitter.addListener('healthKit:HeartRate:new', callback)
NativeAppEventEmitter.addListener('healthKit:HeartRate:setup:failure', callback)
NativeAppEventEmitter.addListener('healthKit:HeartRate:failure', callback)
NativeAppEventEmitter.addListener('healthKit:Workout:setup:success', callback)
NativeAppEventEmitter.addListener('healthKit:Workout:new', callback)
NativeAppEventEmitter.addListener('healthKit:Workout:setup:failure', callback)
NativeAppEventEmitter.addListener('healthKit:Workout:failure', callback)
Describe the solution you'd like
It seems like we could refactor this to reuse the 4 events and pass the measurement type as the parameter instead of an empty object
Describe alternatives you've considered
None
Additional context
We could use the following five events (the four listed above plus "sample)
@"healthKit:new",
@"healthKit:failure",
@"healthKit:enabled",
@"healthKit:sample",
@"healthKit:setup:success",
@"healthKit:setup:failure"
And instead of inserting the type into the string of the event emitter
NSString *successEvent = [NSString stringWithFormat:@"healthKit:%@:setup:success", type];
We could instead pass
NSString *successEvent = [NSString stringWithFormat:@"healthKit:setup:success"];
[self sendEventWithName:successEvent body:type];
And in the js side
eventListener = eventEmitter.addListener(`healthKit:new`, (type) => {
// Inspect the measurement type (workout, heartrate, etc...)
})
I can open a PR for this. I just want to make sure the community agreed this was the right approach first