nativescript-opentok
Version:
Integrates OpenTok for NativeScript.
176 lines • 6.64 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var observable_1 = require("tns-core-modules/data/observable");
var view_1 = require("tns-core-modules/ui/core/view");
var session_1 = require("./session");
var TNSOTSubscriber = (function (_super) {
__extends(TNSOTSubscriber, _super);
function TNSOTSubscriber() {
return _super !== null && _super.apply(this, arguments) || this;
}
TNSOTSubscriber.prototype.createNativeView = function () {
return UIView.new();
};
TNSOTSubscriber.prototype.initNativeView = function () {
this._subscriberKitDelegate = TNSSubscriberKitDelegateImpl.initWithOwner(new WeakRef(this));
};
TNSOTSubscriber.prototype.disposeNativeView = function () {
this._subscriberKitDelegate = null;
};
TNSOTSubscriber.prototype.onMeasure = function (widthMeasureSpec, heightMeasureSpec) {
var nativeView = this.nativeView;
if (nativeView) {
var width = view_1.layout.getMeasureSpecSize(widthMeasureSpec);
var height = view_1.layout.getMeasureSpecSize(heightMeasureSpec);
this.setMeasuredDimension(width, height);
}
};
TNSOTSubscriber.prototype.subscribe = function (session, stream) {
this._ios = new OTSubscriber(stream, this._subscriberKitDelegate);
this._ios.view.frame = this.nativeView.bounds;
this.nativeView.addSubview(this._ios.view);
var errorRef = new interop.Reference();
if (session instanceof session_1.TNSOTSession) {
session._ios.subscribeError(this._ios, errorRef);
}
else if (session instanceof OTSession) {
session.subscribeError(this._ios, errorRef);
}
if (errorRef.value) {
console.log(errorRef.value);
}
};
TNSOTSubscriber.prototype.unsubscribe = function (session) {
try {
var errorRef = new interop.Reference();
session._ios.unsubscribeError(this._ios, errorRef);
if (errorRef.value) {
console.log(errorRef.value);
}
}
catch (error) {
console.log(error);
}
};
Object.defineProperty(TNSOTSubscriber.prototype, "events", {
get: function () {
return this._subscriberKitDelegate.events;
},
enumerable: true,
configurable: true
});
Object.defineProperty(TNSOTSubscriber.prototype, "ios", {
get: function () {
return this._ios;
},
enumerable: true,
configurable: true
});
return TNSOTSubscriber;
}(view_1.View));
exports.TNSOTSubscriber = TNSOTSubscriber;
var TNSSubscriberKitDelegateImpl = (function (_super) {
__extends(TNSSubscriberKitDelegateImpl, _super);
function TNSSubscriberKitDelegateImpl() {
return _super !== null && _super.apply(this, arguments) || this;
}
TNSSubscriberKitDelegateImpl.initWithOwner = function (owner) {
var subscriberKiDelegate = new TNSSubscriberKitDelegateImpl();
subscriberKiDelegate._events = new observable_1.Observable();
subscriberKiDelegate._owner = owner;
return subscriberKiDelegate;
};
TNSSubscriberKitDelegateImpl.prototype.subscriberDidFailWithError = function (subscriber, error) {
if (this._events) {
this._events.notify({
eventName: 'didFailWithError',
object: observable_1.fromObject({
subscriber: subscriber,
error: error
})
});
}
};
TNSSubscriberKitDelegateImpl.prototype.subscriberDidConnectToStream = function (subscriber) {
if (this._events) {
this._events.notify({
eventName: 'subscriberDidConnectToStream',
object: observable_1.fromObject({
subscriber: subscriber
})
});
}
};
TNSSubscriberKitDelegateImpl.prototype.subscriberDidDisconnectFromStream = function (subscriber) {
if (this._events) {
this._events.notify({
eventName: 'didDisconnectFromStream',
object: observable_1.fromObject({
subscriber: subscriber
})
});
}
};
TNSSubscriberKitDelegateImpl.prototype.subscriberDidReconnectToStream = function (subscriber) {
if (this._events) {
this._events.notify({
eventName: 'didReconnectToStream',
object: observable_1.fromObject({
subscriber: subscriber
})
});
}
};
TNSSubscriberKitDelegateImpl.prototype.subscriberVideoDisableWarning = function (subscriber) {
if (this._events) {
this._events.notify({
eventName: 'subscriberVideoDisableWarning',
object: observable_1.fromObject({
subscriber: subscriber
})
});
}
};
TNSSubscriberKitDelegateImpl.prototype.subscriberVideoDisableWarningLifted = function (subscriber) {
if (this._events) {
this._events.notify({
eventName: 'subscriberVideoDisableWarningLifted',
object: observable_1.fromObject({
subscriber: subscriber
})
});
}
};
TNSSubscriberKitDelegateImpl.prototype.subscriberVideoDisabledReason = function (subscriber, reason) {
if (this._events) {
this._events.notify({
eventName: 'subscriberVideoDisabledReason',
object: observable_1.fromObject({
subscriber: subscriber,
reason: reason
})
});
}
};
TNSSubscriberKitDelegateImpl.prototype.subscriberVideoEnabledReason = function (subscriber, reason) {
if (this._events) {
this._events.notify({
eventName: 'subscriberVideoEnabledReason',
object: observable_1.fromObject({
subscriber: subscriber,
reason: reason
})
});
}
};
Object.defineProperty(TNSSubscriberKitDelegateImpl.prototype, "events", {
get: function () {
return this._events;
},
enumerable: true,
configurable: true
});
return TNSSubscriberKitDelegateImpl;
}(NSObject));
TNSSubscriberKitDelegateImpl.ObjCProtocols = [OTSubscriberKitDelegate];
//# sourceMappingURL=subscriber.js.map