urbanairship-gimbal-adapter-react-native
Version:
Airship Gimbal Adapter for React Native apps.
50 lines (43 loc) • 1.13 kB
text/typescript
import {
NativeModules,
NativeEventEmitter,
EmitterSubscription,
Platform,
} from "react-native";
/**
* @hidden
*/
const { AirshipGimbalAdapterModule } = NativeModules;
/**
* @hidden
*/
export default class AirshipGimbalEventEmitter extends NativeEventEmitter {
constructor() {
super(AirshipGimbalAdapterModule);
}
addListener(
eventType: string,
listener: (event: any) => void,
context?: Object
): EmitterSubscription {
if (Platform.OS === "android") {
AirshipGimbalAdapterModule.addAndroidListener(eventType);
}
// @ts-ignore
return super.addListener(eventType, listener, context);
}
removeAllListeners(eventType: string) {
if (Platform.OS === "android") {
// @ts-ignore
const count = this.listeners(eventType).length;
AirshipGimbalAdapterModule.removeAndroidListeners(count);
}
super.removeAllListeners(eventType);
}
removeSubscription(subscription: EmitterSubscription) {
if (Platform.OS === "android") {
AirshipGimbalAdapterModule.removeAndroidListeners(1);
}
super.removeSubscription(subscription);
}
}