Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(42)

Side by Side Diff: chrome/browser/resources/bluetooth_internals/bluetooth_internals.js

Issue 2567983007: bluetooth: Add adapter page to internals page. (Closed)
Patch Set: Update comments Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 /** 5 /**
6 * Javascript for bluetooth_internals.html, served from 6 * Javascript for bluetooth_internals.html, served from
7 * chrome://bluetooth-internals/. 7 * chrome://bluetooth-internals/.
8 */ 8 */
9 9
10 // Expose for testing. 10 // Expose for testing.
11 var adapterBroker = null; 11 var adapterBroker = null;
12 var devices = null; 12 var devices = null;
13 var sidebarObj = null; 13 var sidebarObj = null;
14 14
15 cr.define('bluetooth_internals', function() { 15 cr.define('bluetooth_internals', function() {
16 /** @const */ var AdapterPage = adapter_page.AdapterPage;
16 /** @const */ var DevicesPage = devices_page.DevicesPage; 17 /** @const */ var DevicesPage = devices_page.DevicesPage;
17 /** @const */ var PageManager = cr.ui.pageManager.PageManager; 18 /** @const */ var PageManager = cr.ui.pageManager.PageManager;
18 /** @const */ var Snackbar = snackbar.Snackbar; 19 /** @const */ var Snackbar = snackbar.Snackbar;
19 /** @const */ var SnackbarType = snackbar.SnackbarType; 20 /** @const */ var SnackbarType = snackbar.SnackbarType;
20 21
21 /** 22 /**
22 * Observer for page changes. Used to update page title header. 23 * Observer for page changes. Used to update page title header.
23 * @extends {cr.ui.pageManager.PageManager.Observer} 24 * @extends {cr.ui.pageManager.PageManager.Observer}
24 */ 25 */
25 var PageObserver = function() {}; 26 var PageObserver = function() {};
(...skipping 14 matching lines...) Expand all
40 document.querySelector('.page-title').textContent = title; 41 document.querySelector('.page-title').textContent = title;
41 }, 42 },
42 }; 43 };
43 44
44 /** @type {!Map<string, !interfaces.BluetoothDevice.DevicePtr>} */ 45 /** @type {!Map<string, !interfaces.BluetoothDevice.DevicePtr>} */
45 var deviceAddressToProxy = new Map(); 46 var deviceAddressToProxy = new Map();
46 47
47 /** @type {!device_collection.DeviceCollection} */ 48 /** @type {!device_collection.DeviceCollection} */
48 devices = new device_collection.DeviceCollection([]); 49 devices = new device_collection.DeviceCollection([]);
49 50
51 /** @type {adapter_page.AdapterPage} */
52 var adapterPage = null;
50 /** @type {devices_page.DevicesPage} */ 53 /** @type {devices_page.DevicesPage} */
51 var devicesPage = null; 54 var devicesPage = null;
52 55
53 /** @type {interfaces.BluetoothAdapter.DiscoverySession.ptrClass} */ 56 /** @type {interfaces.BluetoothAdapter.DiscoverySession.ptrClass} */
54 var discoverySession = null; 57 var discoverySession = null;
55 58
56 /** @type {boolean} */ 59 /** @type {boolean} */
57 var userRequestedScanStop = false; 60 var userRequestedScanStop = false;
58 61
59 function handleInspect(event) { 62 function handleInspect(event) {
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 }); 117 });
115 } 118 }
116 119
117 function updateStoppedDiscoverySession() { 120 function updateStoppedDiscoverySession() {
118 devicesPage.setScanStatus(devices_page.ScanStatus.OFF); 121 devicesPage.setScanStatus(devices_page.ScanStatus.OFF);
119 discoverySession.ptr.reset(); 122 discoverySession.ptr.reset();
120 discoverySession = null; 123 discoverySession = null;
121 } 124 }
122 125
123 function setupAdapterSystem(response) { 126 function setupAdapterSystem(response) {
124 console.log('adapter', response.info); 127 adapterBroker.addEventListener('adapterchanged', function(event) {
128 var detail = event.detail;
129 adapterPage.adapterFieldSet.value[detail.property] = detail.value;
130 adapterPage.redraw();
125 131
126 adapterBroker.addEventListener('adapterchanged', function(event) {
127 if (event.detail.property === 'discovering') { 132 if (event.detail.property === 'discovering') {
128 if (!event.detail.value && !userRequestedScanStop && discoverySession) { 133 if (!event.detail.value && !userRequestedScanStop && discoverySession) {
129 updateStoppedDiscoverySession(); 134 updateStoppedDiscoverySession();
130 Snackbar.show( 135 Snackbar.show(
131 'Discovery session ended unexpectedly', SnackbarType.WARNING); 136 'Discovery session ended unexpectedly', SnackbarType.WARNING);
132 } 137 }
133 } 138 }
134 }); 139 });
140
141 adapterPage.setAdapterInfo(response.info);
142
143 adapterPage.pageDiv.addEventListener('refreshpressed', function() {
144 adapterBroker.getInfo().then(function(response) {
145 adapterPage.setAdapterInfo(response.info);
146 });
147 });
135 } 148 }
136 149
137 function setupDeviceSystem(response) { 150 function setupDeviceSystem(response) {
138 // Hook up device collection events. 151 // Hook up device collection events.
139 adapterBroker.addEventListener('deviceadded', function(event) { 152 adapterBroker.addEventListener('deviceadded', function(event) {
140 devices.addOrUpdate(event.detail.deviceInfo); 153 devices.addOrUpdate(event.detail.deviceInfo);
141 }); 154 });
142 adapterBroker.addEventListener('devicechanged', function(event) { 155 adapterBroker.addEventListener('devicechanged', function(event) {
143 devices.addOrUpdate(event.detail.deviceInfo); 156 devices.addOrUpdate(event.detail.deviceInfo);
144 }); 157 });
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 } 204 }
192 205
193 function setupPages() { 206 function setupPages() {
194 sidebarObj = new window.sidebar.Sidebar($('sidebar')); 207 sidebarObj = new window.sidebar.Sidebar($('sidebar'));
195 $('menu-btn').addEventListener('click', function() { sidebarObj.open(); }); 208 $('menu-btn').addEventListener('click', function() { sidebarObj.open(); });
196 PageManager.addObserver(sidebarObj); 209 PageManager.addObserver(sidebarObj);
197 PageManager.addObserver(new PageObserver()); 210 PageManager.addObserver(new PageObserver());
198 211
199 devicesPage = new DevicesPage(); 212 devicesPage = new DevicesPage();
200 PageManager.register(devicesPage); 213 PageManager.register(devicesPage);
214 adapterPage = new AdapterPage();
215 PageManager.register(adapterPage);
201 216
202 // Set up hash-based navigation. 217 // Set up hash-based navigation.
203 window.addEventListener('hashchange', function() { 218 window.addEventListener('hashchange', function() {
204 PageManager.showPageByName(window.location.hash.substr(1)); 219 PageManager.showPageByName(window.location.hash.substr(1));
205 }); 220 });
206 221
207 if (!window.location.hash) { 222 if (!window.location.hash) {
208 PageManager.showPageByName(devicesPage.name); 223 PageManager.showPageByName(adapterPage.name);
209 return; 224 return;
210 } 225 }
211 226
212 PageManager.showPageByName(window.location.hash.substr(1)); 227 PageManager.showPageByName(window.location.hash.substr(1));
213 } 228 }
214 229
215 function initializeViews() { 230 function initializeViews() {
216 setupPages(); 231 setupPages();
217 232
218 adapter_broker.getAdapterBroker() 233 adapter_broker.getAdapterBroker()
219 .then(function(broker) { adapterBroker = broker; }) 234 .then(function(broker) { adapterBroker = broker; })
220 .then(function() { return adapterBroker.getInfo(); }) 235 .then(function() { return adapterBroker.getInfo(); })
221 .then(setupAdapterSystem) 236 .then(setupAdapterSystem)
222 .then(function() { return adapterBroker.getDevices(); }) 237 .then(function() { return adapterBroker.getDevices(); })
223 .then(setupDeviceSystem) 238 .then(setupDeviceSystem)
224 .catch(function(error) { 239 .catch(function(error) {
225 Snackbar.show(error.message, SnackbarType.ERROR); 240 Snackbar.show(error.message, SnackbarType.ERROR);
226 console.error(error); 241 console.error(error);
227 }); 242 });
228 } 243 }
229 244
230 return { 245 return {
231 initializeViews: initializeViews 246 initializeViews: initializeViews
232 }; 247 };
233 }); 248 });
234 249
235 document.addEventListener( 250 document.addEventListener(
236 'DOMContentLoaded', bluetooth_internals.initializeViews); 251 'DOMContentLoaded', bluetooth_internals.initializeViews);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698