From fd57fb843c36c1d6d87174d44359ffb094dbc2ed Mon Sep 17 00:00:00 2001 From: Chris Jones Date: Sat, 8 Dec 2012 00:07:14 +0100 Subject: [PATCH] Bug 818230 - Pairing does not stop when cancelled from bluetooth pairing page --- apps/settings/js/bluetooth.js | 14 +++++++++----- apps/settings/js/onpair.js | 3 ++- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/apps/settings/js/bluetooth.js b/apps/settings/js/bluetooth.js index 8e504ab400ed..827c5dbf54d4 100644 --- a/apps/settings/js/bluetooth.js +++ b/apps/settings/js/bluetooth.js @@ -247,6 +247,7 @@ onLocalized(function bluetoothSettings() { var childWindow = null; var pairingMode = 'active'; + var userCanceledPairing = false; var pairingAddress = null; var connectingAddress = null; var connectedAddress = null; @@ -427,11 +428,13 @@ onLocalized(function bluetoothSettings() { // if the attention screen still open, close it if (childWindow) childWindow.close(); - // show pair process fail. - var msg = _('error-pair-title') + '\n' + _('error-pair-pincode'); // display failure only when active request - if (pairingMode === 'active') + if (pairingMode === 'active' && !userCanceledPairing) { + // show pair process fail. + var msg = _('error-pair-title') + '\n' + _('error-pair-pincode'); window.alert(msg); + } + userCanceledPairing = false; // rollback device status if (openList.index[pairingAddress]) { var item = openList.index[pairingAddress][1]; @@ -561,10 +564,11 @@ onLocalized(function bluetoothSettings() { discoverTimeout = null; } - function setConfirmation(address) { + function setConfirmation(address, confirmed) { if (!defaultAdapter) return; - var req = defaultAdapter.setPairingConfirmation(address, true); + userCanceledPairing = !confirmed; + var req = defaultAdapter.setPairingConfirmation(address, confirmed); } function setPinCode(address, pincode) { diff --git a/apps/settings/js/onpair.js b/apps/settings/js/onpair.js index 4dd645893207..c5c2558de713 100644 --- a/apps/settings/js/onpair.js +++ b/apps/settings/js/onpair.js @@ -99,7 +99,7 @@ var PairView = { this.closeButton.disabled = true; switch (this._pairMethod) { case 'confirmation': - window.opener.gDeviceList.setConfirmation(this._device.address); + window.opener.gDeviceList.setConfirmation(this._device.address, true); break; case 'pincode': var value = this.pinInput.value; @@ -114,6 +114,7 @@ var PairView = { break; case 'button-close': + window.opener.gDeviceList.setConfirmation(this._device.address, false); window.close(); break; }