| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 cr.define('network.status', function() { | 5 cr.define('network.status', function() { |
| 6 var ArrayDataModel = cr.ui.ArrayDataModel; | 6 var ArrayDataModel = cr.ui.ArrayDataModel; |
| 7 var List = cr.ui.List; | 7 var List = cr.ui.List; |
| 8 var ListItem = cr.ui.ListItem; | 8 var ListItem = cr.ui.ListItem; |
| 9 var ListSingleSelectionModel = cr.ui.ListSingleSelectionModel; | 9 var ListSingleSelectionModel = cr.ui.ListSingleSelectionModel; |
| 10 | 10 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 * @return {Array.<Array.<T>>} . | 30 * @return {Array.<Array.<T>>} . |
| 31 */ | 31 */ |
| 32 function differenceBy(a, b, toKey) { | 32 function differenceBy(a, b, toKey) { |
| 33 var inA = {}; | 33 var inA = {}; |
| 34 a.forEach(function(elA) { | 34 a.forEach(function(elA) { |
| 35 inA[toKey(elA)] = elA; | 35 inA[toKey(elA)] = elA; |
| 36 }); | 36 }); |
| 37 var bMinusA = []; | 37 var bMinusA = []; |
| 38 b.forEach(function(elB) { | 38 b.forEach(function(elB) { |
| 39 var keyB = toKey(elB); | 39 var keyB = toKey(elB); |
| 40 if (inA[keyB]) { | 40 if (inA[keyB]) |
| 41 delete inA[keyB]; | 41 delete inA[keyB]; |
| 42 } else { | 42 else |
| 43 bMinusA.push(elB); | 43 bMinusA.push(elB); |
| 44 } | |
| 45 }); | 44 }); |
| 46 var aMinusB = []; | 45 var aMinusB = []; |
| 47 for (var keyA in inA) { | 46 for (var keyA in inA) { |
| 48 aMinusB.push(inA[keyA]); | 47 aMinusB.push(inA[keyA]); |
| 49 } | 48 } |
| 50 return [aMinusB, bMinusA]; | 49 return [aMinusB, bMinusA]; |
| 51 } | 50 } |
| 52 | 51 |
| 53 /** | 52 /** |
| 54 * Updates the data model of |uiList| to |newList|. Ensures that unchanged | 53 * Updates the data model of |uiList| to |newList|. Ensures that unchanged |
| (...skipping 512 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 567 */ | 566 */ |
| 568 getTechnologyButtonForType_: function(networkType) { | 567 getTechnologyButtonForType_: function(networkType) { |
| 569 var buttons = this.items; | 568 var buttons = this.items; |
| 570 for (var i = 0; i < buttons.length; i++) { | 569 for (var i = 0; i < buttons.length; i++) { |
| 571 var button = buttons[i]; | 570 var button = buttons[i]; |
| 572 if (button instanceof TechnologyButton && | 571 if (button instanceof TechnologyButton && |
| 573 button.technology === networkType) { | 572 button.technology === networkType) { |
| 574 return button; | 573 return button; |
| 575 } | 574 } |
| 576 } | 575 } |
| 576 console.log('TechnologyButton for type ' + networkType + |
| 577 ' requested but not found.'); |
| 577 return null; | 578 return null; |
| 578 }, | 579 }, |
| 579 | 580 |
| 580 updateTechnologiesFromNetworks_: function() { | 581 updateTechnologiesFromNetworks_: function() { |
| 581 var newTechnologies = {}; | 582 var newTechnologies = {}; |
| 582 Object.keys(this.networkIDsByType_).forEach(function(technology) { | 583 Object.keys(this.networkIDsByType_).forEach(function(technology) { |
| 583 newTechnologies[technology] = true; | 584 newTechnologies[technology] = true; |
| 584 }); | 585 }); |
| 585 this.technologies_ = newTechnologies; | 586 this.technologies_ = newTechnologies; |
| 586 }, | 587 }, |
| (...skipping 26 matching lines...) Expand all Loading... |
| 613 */ | 614 */ |
| 614 onNetworkListChanged_: function(networkIDs) { | 615 onNetworkListChanged_: function(networkIDs) { |
| 615 var diff = differenceBy(Object.keys(this.networkByID_), | 616 var diff = differenceBy(Object.keys(this.networkByID_), |
| 616 networkIDs, | 617 networkIDs, |
| 617 function(e) { return e; }); | 618 function(e) { return e; }); |
| 618 var toRemove = diff[0]; | 619 var toRemove = diff[0]; |
| 619 var toAdd = diff[1]; | 620 var toAdd = diff[1]; |
| 620 | 621 |
| 621 var addCallback = this.addNetworkCallback_.bind(this); | 622 var addCallback = this.addNetworkCallback_.bind(this); |
| 622 toAdd.forEach(function(id) { | 623 toAdd.forEach(function(id) { |
| 624 console.log('NetworkStatus: Network ' + id + ' added.'); |
| 623 chrome.networkingPrivate.getProperties(id, addCallback); | 625 chrome.networkingPrivate.getProperties(id, addCallback); |
| 624 }); | 626 }); |
| 625 | 627 |
| 626 toRemove.forEach(function(id) { | 628 toRemove.forEach(function(id) { |
| 629 console.log('NetworkStatus: Network ' + id + ' removed.'); |
| 627 delete this.networkByID_[id]; | 630 delete this.networkByID_[id]; |
| 628 }, this); | 631 }, this); |
| 629 | 632 |
| 630 this.updateIndexes_(networkIDs); | 633 this.updateIndexes_(networkIDs); |
| 631 this.updateDataStructuresAndButtons_(); | 634 this.updateDataStructuresAndButtons_(); |
| 632 }, | 635 }, |
| 633 | 636 |
| 634 /** | 637 /** |
| 635 * @param {Array.<string>} networkIDs . | 638 * @param {Array.<string>} networkIDs . |
| 636 */ | 639 */ |
| 637 onNetworksChanged_: function(networkIDs) { | 640 onNetworksChanged_: function(networkIDs) { |
| 638 var updateCallback = this.updateNetworkCallback_.bind(this); | 641 var updateCallback = this.updateNetworkCallback_.bind(this); |
| 639 networkIDs.forEach(function(id) { | 642 networkIDs.forEach(function(id) { |
| 643 console.log('NetworkStatus: Network ' + id + ' changed.'); |
| 640 chrome.networkingPrivate.getProperties(id, updateCallback); | 644 chrome.networkingPrivate.getProperties(id, updateCallback); |
| 641 }); | 645 }); |
| 642 }, | 646 }, |
| 643 | 647 |
| 644 /** | 648 /** |
| 645 * @param {Object} network . | 649 * @param {Object} network . |
| 646 */ | 650 */ |
| 647 updateNetworkCallback_: function(network) { | 651 updateNetworkCallback_: function(network) { |
| 648 this.networkByID_[network.GUID] = network; | 652 this.networkByID_[network.GUID] = network; |
| 649 this.getTechnologyButtonForType_(network.Type).update(); | 653 this.getTechnologyButtonForType_(network.Type).update(); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 684 chrome.networkingPrivate.getVisibleNetworks( | 688 chrome.networkingPrivate.getVisibleNetworks( |
| 685 'All', | 689 'All', |
| 686 this.setVisibleNetworks.bind(this)); | 690 this.setVisibleNetworks.bind(this)); |
| 687 } | 691 } |
| 688 }; | 692 }; |
| 689 | 693 |
| 690 return { | 694 return { |
| 691 NetworkStatusList: NetworkStatusList | 695 NetworkStatusList: NetworkStatusList |
| 692 }; | 696 }; |
| 693 }); | 697 }); |
| OLD | NEW |