Skip to content

Instantly share code, notes, and snippets.

Created June 13, 2013 11:24
Show Gist options
  • Save anonymous/5772986 to your computer and use it in GitHub Desktop.
Save anonymous/5772986 to your computer and use it in GitHub Desktop.
var Ti = {
_event_listeners: [],
createEventListener: function(eventName,listener) {
var newListener = {eventName : eventName, listener: listener, systemId: -1, index: this._event_listeners.length };
this._event_listeners.push(newListener);
return newListener;
},
getEventListenerByKey: function(key, arg) {
for (var i = 0;i < this._event_listeners.length; i++) {
if (this._event_listeners[i][key] == arg) {
return this._event_listeners[i];
}
}
return null;
},
getEventListenerByName: function(name) {
for (var i = 0;i < this._event_listeners.length; i++) {
if (this._event_listeners[i]['eventName'] == name) {
return this._event_listeners[i];
}
}
return null;
},
App: {
addEventListener: function(eventName, listener)
{
var newListener = Ti.createEventListener(eventName,listener);
return newListener.systemId;
},
removeEventListener: function(eventName, listener)
{
if (typeof listener == 'number') {
var l = Ti.getEventListenerByKey('systemId', listener);
if (l !== null) {
Ti._event_listeners.splice(l.index, 1);
}
} else {
l = Ti.getEventListenerByKey('listener', listener);
if (l !== null) {
Ti._event_listeners.splice(l.index, 1);
}
}
},
fireEvent: function(eventName, data)
{
var obj = {
id : eventName,
data: JSON.stringify(data)
}
navigator.cascades.postMessage(JSON.stringify(obj));
}
},
executeListener: function(id, data)
{
var listener = this.getEventListenerByName(id);
if (listener !== null) {
listener.listener.call(listener.listener, data);
}
}
};
navigator.cascades.onmessage = function onmessage(message){
message = JSON.parse(message)
Ti.executeListener(message.id,message.data);
}
var Titanium = Ti;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment