Chromium Code Reviews| Index: chrome/browser/resources/settings/internet_page/network_summary_item.js |
| diff --git a/chrome/browser/resources/settings/internet_page/network_summary_item.js b/chrome/browser/resources/settings/internet_page/network_summary_item.js |
| index 114c0f5db9e194c91637e55ecec47b728adcf41e..617216cf81fd8b0d9cc12fb81a8206e1e63e74f0 100644 |
| --- a/chrome/browser/resources/settings/internet_page/network_summary_item.js |
| +++ b/chrome/browser/resources/settings/internet_page/network_summary_item.js |
| @@ -13,6 +13,8 @@ var DeviceStateProperties; |
| Polymer({ |
| is: 'network-summary-item', |
| + behaviors: [Polymer.IronA11yKeysBehavior], |
| + |
| properties: { |
| /** |
| * Device state for the network type. |
| @@ -27,10 +29,7 @@ Polymer({ |
| * Network state for the active network. |
| * @type {!CrOnc.NetworkStateProperties|undefined} |
| */ |
| - activeNetworkState: { |
| - type: Object, |
| - observer: 'activeNetworkStateChanged_', |
| - }, |
| + activeNetworkState: Object, |
| /** |
| * List of all network state data for the network type. |
| @@ -41,7 +40,6 @@ Polymer({ |
| value: function() { |
| return []; |
| }, |
| - observer: 'networkStateListChanged_', |
| }, |
| /** The maximum height in pixels for the list of networks. */ |
| @@ -51,6 +49,12 @@ Polymer({ |
| }, |
| /** |
| + * Interface for networkingPrivate calls, passed from internet_page. |
| + * @type {NetworkingPrivate} |
| + */ |
| + networkingPrivate: Object, |
| + |
| + /** |
| * The expanded state of the list of networks. |
| * @private |
| */ |
| @@ -71,6 +75,10 @@ Polymer({ |
| }, |
| }, |
| + keyBindings: { |
| + 'enter': 'onDetailsTap_', |
| + }, |
| + |
| /** @private */ |
| expandedChanged_: function() { |
| var type = this.deviceState ? this.deviceState.Type : ''; |
| @@ -79,27 +87,52 @@ Polymer({ |
| /** @private */ |
| deviceStateChanged_: function() { |
| - this.updateSelectable_(); |
| if (this.expanded_ && !this.deviceIsEnabled_()) |
| this.expanded_ = false; |
| }, |
| - /** @private */ |
| - activeNetworkStateChanged_: function() { |
| - this.updateSelectable_(); |
| + /** |
| + * @return {boolean} Whether or not the scanning spinner should be shown. |
| + * @private |
| + */ |
| + showScanning_: function() { |
| + return !!this.expanded_ && !!this.deviceState.Scanning; |
| }, |
| - /** @private */ |
| - networkStateListChanged_: function() { |
| - this.updateSelectable_(); |
| + /** |
| + * Show the <network-siminfo> element if this is a disabled and locked |
| + * cellular device. |
| + * @return {boolean} |
| + * @private |
| + */ |
| + showSimInfo_: function() { |
| + let device = this.deviceState; |
| + if (device.Type != CrOnc.Type.CELLULAR || this.deviceIsEnabled_()) |
| + return false; |
| + return device.SimPresent === false || |
| + device.SimLockType == CrOnc.LockType.PIN || |
| + device.SimLockType == CrOnc.LockType.PUK; |
| }, |
| /** |
| - * @return {boolean} Whether or not the scanning spinner should be shown. |
| + * Returns a NetworkProperties object for <network-siminfo> built from |
| + * the device properties (since there will be no active network). |
| + * @return {!CrOnc.NetworkProperties} |
| * @private |
| */ |
| - showScanning_: function() { |
| - return !!this.expanded_ && !!this.deviceState.Scanning; |
| + getCellularState_: function() { |
| + let device = this.deviceState; |
| + return { |
| + GUID: '', |
| + Type: CrOnc.Type.CELLULAR, |
| + Cellular: { |
| + SIMLockStatus: { |
| + LockType: device.SimLockType || '', |
| + LockEnabled: device.SimLockType != CrOnc.LockType.NONE |
| + }, |
| + SIMPresent: device.SimPresent, |
| + }, |
| + }; |
| }, |
| /** |
| @@ -144,11 +177,20 @@ Polymer({ |
| * @private |
| */ |
| enableIsVisible_: function() { |
| - return !!this.deviceState && this.deviceState.Type != CrOnc.Type.ETHERNET && |
| + return this.deviceState.Type != CrOnc.Type.ETHERNET && |
| this.deviceState.Type != CrOnc.Type.VPN; |
| }, |
| /** |
| + * @return {boolean} |
| + * @private |
| + */ |
| + showDetailsIsVisible_: function() { |
| + return this.deviceState.Type == CrOnc.Type.CELLULAR && |
| + this.networkStateList.length == 1; |
| + }, |
| + |
| + /** |
| * @return {boolean} Whether or not to show the UI to expand the list. |
| * @private |
| */ |
| @@ -176,7 +218,7 @@ Polymer({ |
| * @private |
| */ |
| onDetailsTap_: function(event) { |
| - if ((event.target.id == 'expandListButton') || |
| + if ((event.target && event.target.id == 'expandListButton') || |
| (this.deviceState && !this.deviceIsEnabled_())) { |
| // Already handled or disabled, do nothing. |
| return; |
| @@ -191,6 +233,17 @@ Polymer({ |
| }, |
| /** |
| + * @param {Event} event The enable button event. |
|
michaelpg
2016/09/06 21:10:38
!Event
stevenjb
2016/09/12 19:46:42
Done.
|
| + * @private |
| + */ |
| + onShowDetailsTap_: function(event) { |
| + if (this.activeNetworkState.GUID != '') { |
| + this.fire('show-detail', this.activeNetworkState); |
|
michaelpg
2016/09/06 21:10:38
optional: early return?
stevenjb
2016/09/12 19:46:42
Done.
|
| + event.stopPropagation(); |
| + } |
| + }, |
| + |
| + /** |
| * Event triggered when the known networks button is tapped. |
| * @private |
| */ |
| @@ -213,11 +266,10 @@ Polymer({ |
| }, |
| /** |
| - * Called whenever the 'selectable' state might change. |
| + * @return {string} |
| * @private |
| */ |
| - updateSelectable_: function() { |
| - var selectable = this.deviceIsEnabled_(); |
| - this.$.details.classList.toggle('selectable', selectable); |
| + getTabIndex_: function() { |
| + return this.deviceIsEnabled_() ? '0' : '-1'; |
| }, |
| }); |