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

Side by Side Diff: chrome/browser/resources/settings/people_page/change_picture.js

Issue 2555373003: MD Settings: Deactivate the Camera when leaving the Change Picture page. (Closed)
Patch Set: fix closure compile Created 4 years 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 * Contains the possible types of Change Picture selections. 6 * Contains the possible types of Change Picture selections.
7 * @enum {string} 7 * @enum {string}
8 */ 8 */
9 var ChangePictureSelectionTypes = { 9 var ChangePictureSelectionTypes = {
10 CAMERA: 'camera', 10 CAMERA: 'camera',
(...skipping 17 matching lines...) Expand all
28 28
29 /** 29 /**
30 * @fileoverview 30 * @fileoverview
31 * 'settings-change-picture' is the settings subpage containing controls to 31 * 'settings-change-picture' is the settings subpage containing controls to
32 * edit a ChromeOS user's picture. 32 * edit a ChromeOS user's picture.
33 */ 33 */
34 Polymer({ 34 Polymer({
35 is: 'settings-change-picture', 35 is: 'settings-change-picture',
36 36
37 behaviors: [ 37 behaviors: [
38 settings.RouteObserverBehavior,
38 I18nBehavior, 39 I18nBehavior,
39 WebUIListenerBehavior, 40 WebUIListenerBehavior,
40 ], 41 ],
41 42
42 properties: { 43 properties: {
43 /** 44 /**
44 * True if the user has a plugged-in webcam. 45 * True if the user has a plugged-in webcam.
45 * @private {boolean} 46 * @private {boolean}
46 */ 47 */
47 cameraPresent_: { 48 cameraPresent_: {
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 this.addWebUIListener('default-images-changed', 126 this.addWebUIListener('default-images-changed',
126 this.receiveDefaultImages_.bind(this)); 127 this.receiveDefaultImages_.bind(this));
127 this.addWebUIListener('selected-image-changed', 128 this.addWebUIListener('selected-image-changed',
128 this.receiveSelectedImage_.bind(this)); 129 this.receiveSelectedImage_.bind(this));
129 this.addWebUIListener('old-image-changed', 130 this.addWebUIListener('old-image-changed',
130 this.receiveOldImage_.bind(this)); 131 this.receiveOldImage_.bind(this));
131 this.addWebUIListener('profile-image-changed', 132 this.addWebUIListener('profile-image-changed',
132 this.receiveProfileImage_.bind(this)); 133 this.receiveProfileImage_.bind(this));
133 this.addWebUIListener('camera-presence-changed', 134 this.addWebUIListener('camera-presence-changed',
134 this.receiveCameraPresence_.bind(this)); 135 this.receiveCameraPresence_.bind(this));
136 },
135 137
136 this.browserProxy_.initialize(); 138
139 /** @protected */
140 currentRouteChanged: function(newRoute) {
141 // Reset the selection state when we navigate to this page.
142 if (newRoute == settings.Route.CHANGE_PICTURE) {
143 this.browserProxy_.initialize();
144 } else {
145 // Ensure we deactivate the camera when we navigate away.
146 this.selectedItem_ = null;
147 }
137 }, 148 },
138 149
139 /** 150 /**
140 * Handler for the 'default-images-changed' event. 151 * Handler for the 'default-images-changed' event.
141 * @param {!Array<!settings.DefaultImage>} images 152 * @param {!Array<!settings.DefaultImage>} images
142 * @private 153 * @private
143 */ 154 */
144 receiveDefaultImages_: function(images) { 155 receiveDefaultImages_: function(images) {
145 this.defaultImages_ = images; 156 this.defaultImages_ = images;
146 }, 157 },
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 type != ChangePictureSelectionTypes.OLD; 378 type != ChangePictureSelectionTypes.OLD;
368 }, 379 },
369 380
370 /** 381 /**
371 * @param {boolean} cameraPresent 382 * @param {boolean} cameraPresent
372 * @param {ChangePictureImageElement} selectedItem 383 * @param {ChangePictureImageElement} selectedItem
373 * @return {boolean} True if the camera is selected in the image grid. 384 * @return {boolean} True if the camera is selected in the image grid.
374 * @private 385 * @private
375 */ 386 */
376 isCameraActive_: function(cameraPresent, selectedItem) { 387 isCameraActive_: function(cameraPresent, selectedItem) {
377 return cameraPresent && selectedItem && 388 return cameraPresent && !!selectedItem &&
378 selectedItem.dataset.type == ChangePictureSelectionTypes.CAMERA; 389 selectedItem.dataset.type == ChangePictureSelectionTypes.CAMERA;
379 }, 390 },
380 391
381 /** 392 /**
382 * @param {ChangePictureImageElement} selectedItem 393 * @param {ChangePictureImageElement} selectedItem
383 * @return {boolean} True if the discard controls should be hidden. 394 * @return {boolean} True if the discard controls should be hidden.
384 * @private 395 * @private
385 */ 396 */
386 isDiscardHidden_: function(selectedItem) { 397 isDiscardHidden_: function(selectedItem) {
387 return !selectedItem || 398 return !selectedItem ||
388 selectedItem.dataset.type != ChangePictureSelectionTypes.OLD; 399 selectedItem.dataset.type != ChangePictureSelectionTypes.OLD;
389 }, 400 },
390 401
391 /** 402 /**
392 * @param {ChangePictureImageElement} selectedItem 403 * @param {ChangePictureImageElement} selectedItem
393 * @return {boolean} True if the author credit text is shown. 404 * @return {boolean} True if the author credit text is shown.
394 * @private 405 * @private
395 */ 406 */
396 isAuthorCreditShown_: function(selectedItem) { 407 isAuthorCreditShown_: function(selectedItem) {
397 return selectedItem && 408 return !!selectedItem &&
398 selectedItem.dataset.type == ChangePictureSelectionTypes.DEFAULT; 409 selectedItem.dataset.type == ChangePictureSelectionTypes.DEFAULT;
399 }, 410 },
400 411
401 /** 412 /**
402 * @param {!ChangePictureImageElement} selectedItem 413 * @param {!ChangePictureImageElement} selectedItem
403 * @param {!Array<!settings.DefaultImage>} defaultImages 414 * @param {!Array<!settings.DefaultImage>} defaultImages
404 * @return {string} The author name for the selected default image. An empty 415 * @return {string} The author name for the selected default image. An empty
405 * string is returned if there is no valid author name. 416 * string is returned if there is no valid author name.
406 * @private 417 * @private
407 */ 418 */
(...skipping 15 matching lines...) Expand all
423 */ 434 */
424 getAuthorWebsite_: function(selectedItem, defaultImages) { 435 getAuthorWebsite_: function(selectedItem, defaultImages) {
425 if (!this.isAuthorCreditShown_(selectedItem)) 436 if (!this.isAuthorCreditShown_(selectedItem))
426 return ''; 437 return '';
427 438
428 assert(selectedItem.dataset.defaultImageIndex !== null && 439 assert(selectedItem.dataset.defaultImageIndex !== null &&
429 selectedItem.dataset.defaultImageIndex < defaultImages.length); 440 selectedItem.dataset.defaultImageIndex < defaultImages.length);
430 return defaultImages[selectedItem.dataset.defaultImageIndex].website; 441 return defaultImages[selectedItem.dataset.defaultImageIndex].website;
431 }, 442 },
432 }); 443 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698