Index: /usr/palm/applications/com.palm.app.phone/app/controllers/activecall-assistant.js =================================================================== --- .orig/usr/palm/applications/com.palm.app.phone/app/controllers/activecall-assistant.js +++ /usr/palm/applications/com.palm.app.phone/app/controllers/activecall-assistant.js @@ -20,6 +20,19 @@ var ActivecallAssistant = Class.create({ }, initialize: function(params){ + +//BEGIN Slider Patch block 1 of 3 + var request = new Mojo.Service.Request('palm://com.palm.keys/switches', { + method: 'status', + parameters: {"get" : "slider"}, + onFailure: function() { + QDLogger.log("Slider: Failed to get slider status"); + }, + onSuccess: this.getSliderPos.bind(this) + }); + this.sliderSubscriptionx = TelephonyCommands.sliderSubscribe(this.onSliderEventDuringCall.bind(this)); +//END Slider Patch block 1 of 3 + this.appAssistant = Mojo.Controller.getAppController().assistant; this.eventListener = this.appAssistant.telephonyEventListener; this.announcer = this.appAssistant.announcer; @@ -139,7 +152,44 @@ var ActivecallAssistant = Class.create({ this.controller.setupWidget(Mojo.Menu.appMenu, {omitDefaultItems: false}, appMenuModel); }, - + +//BEGIN Slider Patch block 2 of 3 + getSliderPos: function(response) { + QDLogger.log("****getting slider position****"); + if (response.key === "slider") { + this.sliderPos = response.state; + QDLogger.log("Slider Position:", response.state); + } + }, + onSliderEventDuringCall: function(response) { + if (response && response.key && response.state) { + QDLogger.log( "ActivecallAssistant#onSliderEvent", response.key , response.state); + } else { + return; + } + if (response.key == "slider") { + QDLogger.log( "log: ", this.sliderPos, response.state); + if (this.sliderPos=='up'&&response.state == "down") { + QDLogger.log( "**********UP DOWN************"); + //First, "tap" each Disconnect Button. + for (i = 0; i < 3; i++) { + if (this.controller.get("disc_button_" + i)) { + QDLogger.log( "**** disconnecting line:" + i + "****"); + Mojo.Event.send(this.controller.get("disc_button_" + i), Mojo.Event.tap); + } + } + QDLogger.log( "******** end loop **********"); + //In case the Disconnect Buttons don't work, or there are calls not disconnected, just call the function to disconnect all calls. + //The reason we don't just do this one function is that the screen redraw is not pretty. + QDLogger.log( "********disconnecting all calls********"); + this.eventListener.disconnectAllCalls(); + QDLogger.log( "********finished routine********"); + } + this.sliderPos = response.state; + } + }, +//END Slider Patch block 2 of 3 + handleCommand: function(event) { if (event.type == Mojo.Event.command) { switch (event.command) { @@ -1230,6 +1280,10 @@ break; this.controller.document.removeEventListener('keydown', this.boundStartDTMFHardKey); this.controller.document.removeEventListener('keyup', this.boundEndDTMFHardKey); +//BEGIN Slider Patch block 3 of 3 + this.sliderSubscriptionx.cancel(); //remove slider listener +//END Slider Patch block 3 of 3 + // drop puck subscription this.puckSubscription.cancel(); delete this.puckSubscription;