gracefully ignore exceptions caused by callers not implementing all
authorRusty Lynch <rusty.lynch@intel.com>
Mon, 20 Aug 2012 03:35:53 +0000 (20:35 -0700)
committerRusty Lynch <rusty.lynch@intel.com>
Mon, 20 Aug 2012 03:35:53 +0000 (20:35 -0700)
call handler callback methods

Tizen.Device.js

index dce5707..4b6b175 100644 (file)
@@ -63,69 +63,73 @@ var __callmanager = function () {
                    tmp.push(calls[i]);
            calls = tmp;
        } else if (ev.type == "PropertyChanged" && ev.State) {
-            if (ev.State == "incoming") {
-                for (var index in callHandlers)
-                   for (var i in calls)
-                       if (calls[i].id == ev.id)
-                           callHandlers[index].onIncoming(calls[i]);
-           } else if (ev.State == "dialing") {
-                for (var index in callHandlers)
-                   for (var i in calls)
-                       if (calls[i].id == ev.id)
-                           callHandlers[index].onDialing(calls[i]);
-           } else if (ev.State == "alerting") {
-                for (var index in callHandlers)
-                   for (var i in calls)
-                       if (calls[i].id == ev.id)
-                           callHandlers[index].onAlerting(calls[i]);
-            } else if (ev.State == "hold") {
-                for (var index in callHandlers)
-                   for (var i in calls)
-                       if (calls[i].id == ev.id)
-                           callHandlers[index].onHold(calls[i]);
-            } else if (ev.State == "waiting") {
-                for (var index in callHandlers)
-                   for (var i in calls)
-                       if (calls[i].id == ev.id)
-                           callHandlers[index].onWaiting(calls[i]);
-            } else if (ev.State == "disconnected") {
-                for (var index in callHandlers)
-                   for (var i in calls)
-                       if (calls[i].id == ev.id)
-                           callHandlers[index].onDisconnected(calls[i]);
-            } else if (ev.State == "disconnecting") {
-                for (var index in callHandlers)
-                   for (var i in calls)
-                       if (calls[i].id == ev.id)
-                           callHandlers[index].onDisconnecting(calls[i]);
-            } else if (ev.State == "accepted") {
-                for (var index in callHandlers)
-                   for (var i in calls)
-                       if (calls[i].id == ev.id)
-                           callHandlers[index].onAccepted(calls[i]);
-           } else if (ev.State == "remotelyheld") {
-                for (var index in callHandlers)
-                   for (var i in calls)
-                       if (calls[i].id == ev.id)
-                           callHandlers[index].onRemotelyHeld(calls[i]);
-            } else if (ev.State == "active") {
-                for (var index in callHandlers)
-                   for (var i in calls)
-                       if (calls[i].id == ev.id)
-                           callHandlers[index].onActivated(calls[i]);
-            } else if (ev.State == "initializing") {
-                for (var index in callHandlers)
-                   for (var i in calls)
-                       if (calls[i].id == ev.id)
-                           callHandlers[index].onInitializing(calls[i]);
-            } else if (ev.State == "initialized") {
-                for (var index in callHandlers)
-                   for (var i in calls)
-                       if (calls[i].id == ev.id)
-                           callHandlers[index].onInitialized(calls[i]);
-           } else {
-               console.log("Unhandled state: " + ev.State);
-           }
+            try {
+                if (ev.State == "incoming") {
+                    for (var index in callHandlers)
+                       for (var i in calls)
+                           if (calls[i].id == ev.id)
+                               callHandlers[index].onIncoming(calls[i]);
+               } else if (ev.State == "dialing") {
+                    for (var index in callHandlers)
+                       for (var i in calls)
+                           if (calls[i].id == ev.id)
+                               callHandlers[index].onDialing(calls[i]);
+               } else if (ev.State == "alerting") {
+                    for (var index in callHandlers)
+                       for (var i in calls)
+                           if (calls[i].id == ev.id)
+                               callHandlers[index].onAlerting(calls[i]);
+                } else if (ev.State == "hold") {
+                    for (var index in callHandlers)
+                       for (var i in calls)
+                           if (calls[i].id == ev.id)
+                               callHandlers[index].onHold(calls[i]);
+                } else if (ev.State == "waiting") {
+                    for (var index in callHandlers)
+                       for (var i in calls)
+                           if (calls[i].id == ev.id)
+                               callHandlers[index].onWaiting(calls[i]);
+                } else if (ev.State == "disconnected") {
+                    for (var index in callHandlers)
+                       for (var i in calls)
+                           if (calls[i].id == ev.id)
+                               callHandlers[index].onDisconnected(calls[i]);
+                } else if (ev.State == "disconnecting") {
+                    for (var index in callHandlers)
+                       for (var i in calls)
+                           if (calls[i].id == ev.id)
+                               callHandlers[index].onDisconnecting(calls[i]);
+                } else if (ev.State == "accepted") {
+                    for (var index in callHandlers)
+                       for (var i in calls)
+                           if (calls[i].id == ev.id)
+                               callHandlers[index].onAccepted(calls[i]);
+               } else if (ev.State == "remotelyheld") {
+                    for (var index in callHandlers)
+                       for (var i in calls)
+                           if (calls[i].id == ev.id)
+                               callHandlers[index].onRemotelyHeld(calls[i]);
+                } else if (ev.State == "active") {
+                    for (var index in callHandlers)
+                       for (var i in calls)
+                           if (calls[i].id == ev.id)
+                               callHandlers[index].onActivated(calls[i]);
+                } else if (ev.State == "initializing") {
+                    for (var index in callHandlers)
+                       for (var i in calls)
+                           if (calls[i].id == ev.id)
+                               callHandlers[index].onInitializing(calls[i]);
+                } else if (ev.State == "initialized") {
+                    for (var index in callHandlers)
+                       for (var i in calls)
+                           if (calls[i].id == ev.id)
+                               callHandlers[index].onInitialized(calls[i]);
+               } else {
+                   console.log("Unhandled state: " + ev.State);
+               }
+            } catch (err) {
+                // handlers do not have to implement every callback
+            }
        } else {
            console.log("Unhandled event");
            console.log(ev);