Index: chrome/browser/resources/chromeos/login/oobe_screen_hid_detection.js |
diff --git a/chrome/browser/resources/chromeos/login/oobe_screen_hid_detection.js b/chrome/browser/resources/chromeos/login/oobe_screen_hid_detection.js |
index 165dae7fa7c50c99fdddd466c14ea85c1e4fcb16..e03f99ed17ebbb09bb33952ea5db7c1f9c7c0ff7 100644 |
--- a/chrome/browser/resources/chromeos/login/oobe_screen_hid_detection.js |
+++ b/chrome/browser/resources/chromeos/login/oobe_screen_hid_detection.js |
@@ -8,6 +8,30 @@ |
login.createScreen('HIDDetectionScreen', 'hid-detection', function() { |
return { |
+ EXTERNAL_API: [ |
+ 'setPointingDeviceState', |
+ 'setKeyboardDeviceState', |
+ ], |
+ |
+ /** |
+ * Enumeration of possible states during pairing. The value associated with |
+ * each state maps to a localized string in the global variable |
+ * |loadTimeData|. |
+ * @enum {string} |
+ */ |
+ PAIRING: { |
+ STARTUP: 'bluetoothStartConnecting', |
+ ENTER_PIN_CODE: 'bluetoothEnterPinCode', |
+ ENTER_PASSKEY: 'bluetoothEnterPasskey', |
+ REMOTE_PIN_CODE: 'bluetoothRemotePinCode', |
+ REMOTE_PASSKEY: 'bluetoothRemotePasskey', |
+ CONFIRM_PASSKEY: 'bluetoothConfirmPasskey', |
+ CONNECT_FAILED: 'bluetoothConnectFailed', |
+ CANCELED: 'bluetoothPairingCanceled', |
+ DISMISSED: 'bluetoothPairingDismissed', // pairing dismissed(succeeded or |
ygorshenin1
2014/04/24 11:30:24
nit: move the comment between lines #30 and #31.
Nikita (slow)
2014/04/24 12:14:23
nit: Capitalize comment.
merkulova
2014/04/24 12:49:46
Done.
merkulova
2014/04/24 12:49:46
Done.
|
+ // canceled). |
+ }, |
+ |
/** |
* Button to move to usual OOBE flow after detection. |
* @private |
@@ -42,11 +66,89 @@ login.createScreen('HIDDetectionScreen', 'hid-detection', function() { |
}, |
/** |
+ * Sets a device-block css class to reflect device state of searching, |
+ * connected, pairing or paired (for BT devices). |
+ * @param {blockId} id one of 'hid-mouse-block' or 'hid-keyboard-block'. |
+ * @param {state} one of 'searching', 'connected', 'pairing', 'paired'. |
ygorshenin1
2014/04/24 11:30:24
Add tag @private.
merkulova
2014/04/24 12:49:46
Done.
|
+ */ |
+ setDeviceBlockState_: function(blockId, state) { |
+ var deviceBlock = $(blockId); |
+ var states = ['searching', 'connected', 'pairing', 'paired']; |
+ for (var i = 0; i < states.length; ++i) { |
+ if (states[i] != state) |
+ deviceBlock.classList.remove(states[i]); |
+ } |
+ deviceBlock.classList.add(state); |
+ }, |
+ |
+ setPointingDeviceState: function(data) { |
+ if (data === undefined) |
+ return; |
+ if ('searching' in data) { |
ygorshenin1
2014/04/24 11:30:24
No need in curly braces here, as all branches are
merkulova
2014/04/24 12:49:46
Done.
|
+ this.setDeviceBlockState_('hid-mouse-block', 'searching'); |
+ } else if ('USBConnected' in data) { |
+ this.setDeviceBlockState_('hid-mouse-block', 'connected'); |
+ } else if ('BTPaired' in data) { |
+ this.setDeviceBlockState_('hid-mouse-block', 'paired'); |
+ } |
+ }, |
+ |
+ setKeyboardDeviceState: function(data) { |
+ if (data === undefined) |
+ return; |
+ if ('searching' in data) { |
+ this.setDeviceBlockState_('hid-keyboard-block', 'searching'); |
+ } else if ('USBConnected' in data) { |
+ this.setDeviceBlockState_('hid-keyboard-block', 'connected'); |
+ } else if ('paired' in data) { |
+ this.setDeviceBlockState_('hid-keyboard-block', 'paired'); |
+ } else if ('pairing' in data) { |
+ this.setDeviceBlockState_('hid-keyboard-block', 'pairing'); |
+ $('hid-keyboard-label-pairing').textContent = data['keyboard-label']; |
+ if (data['pairing'] == this.PAIRING.REMOTE_PIN_CODE) { |
+ // remove pincode pictures if exist. |
+ var pincodeBlock = $('hid-keyboard-pincode'); |
+ while (pincodeBlock.firstChild.id != 'hid-keyboard-pincode-enter') { |
+ pincodeBlock.removeChild(pincodeBlock.firstChild); |
+ } |
+ for (var i = 0, len = data['pincode'].length; i < len; i++) { |
+ var pincodeSymbol = this.ownerDocument.createElement('div'); |
+ pincodeSymbol.textContent = data['pincode'][i]; |
+ pincodeSymbol.classList.add('bluetooth-keyboard-button'); |
+ $('hid-keyboard-pincode').insertBefore( |
+ pincodeSymbol, $('hid-keyboard-pincode-enter')); |
+ } |
+ |
+ } |
+ } |
+ }, |
+ |
+ |
+ /** |
* Event handler that is invoked just before the screen in shown. |
* @param {Object} data Screen init payload. |
*/ |
onBeforeShow: function(data) { |
$('hid-continue-button').disabled = true; |
+ this.setDeviceBlockState_('hid-mouse-block', 'searching'); |
+ this.setDeviceBlockState_('hid-keyboard-block', 'searching'); |
}, |
+ |
+ addBluetoothDevice: function(device) { |
+ // One device can be in the process of pairing. If found, display |
+ // the Bluetooth pairing overlay. |
+ if (device.pairing) |
+ this.showPairingLayout(device); |
+ }, |
+ |
+ /** |
+ * Displays the pairing overlay. |
+ * @param {Object} device Description of the Bluetooth device. |
+ */ |
+ showPairingLayout: function(device) { |
+ BluetoothPairing.getInstance().update(device); |
+ OptionsPage.showPageByName('bluetoothPairing', false); |
+ }, |
+ |
}; |
}); |