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

Side by Side Diff: ui/file_manager/video_player/js/video_player.js

Issue 456653002: Video Player: Show a checkmark on the currently playing device in cast menu (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed the comment Created 6 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « ui/file_manager/video_player/css/cast_menu.css ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 'use strict'; 5 'use strict';
6 6
7 /** 7 /**
8 * @param {Element} playerContainer Main container. 8 * @param {Element} playerContainer Main container.
9 * @param {Element} videoContainer Container for the video element. 9 * @param {Element} videoContainer Container for the video element.
10 * @param {Element} controlsContainer Container for video controls. 10 * @param {Element} controlsContainer Container for video controls.
(...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after
477 /** 477 /**
478 * Invokes when a menuitem in the cast menu is selected. 478 * Invokes when a menuitem in the cast menu is selected.
479 * @param {Object} cast Selected element in the list of casts. 479 * @param {Object} cast Selected element in the list of casts.
480 */ 480 */
481 VideoPlayer.prototype.onCastSelected_ = function(cast) { 481 VideoPlayer.prototype.onCastSelected_ = function(cast) {
482 // If the selected item is same as the current item, do nothing. 482 // If the selected item is same as the current item, do nothing.
483 if ((this.currentCast_ && this.currentCast_.label) === (cast && cast.label)) 483 if ((this.currentCast_ && this.currentCast_.label) === (cast && cast.label))
484 return; 484 return;
485 485
486 this.currentCast_ = cast || null; 486 this.currentCast_ = cast || null;
487 this.updateCheckOnCastMenu_();
487 this.reloadCurrentVideo(); 488 this.reloadCurrentVideo();
488 }; 489 };
489 490
490 /** 491 /**
491 * Set the list of casts. 492 * Set the list of casts.
492 * @param {Array.<Object>} casts List of casts. 493 * @param {Array.<Object>} casts List of casts.
493 */ 494 */
494 VideoPlayer.prototype.setCastList = function(casts) { 495 VideoPlayer.prototype.setCastList = function(casts) {
495 var button = document.querySelector('.cast-button'); 496 var button = document.querySelector('.cast-button');
496 var menu = document.querySelector('#cast-menu'); 497 var menu = document.querySelector('#cast-menu');
(...skipping 12 matching lines...) Expand all
509 var currentCastAvailable = casts.some(function(cast) { 510 var currentCastAvailable = casts.some(function(cast) {
510 return this.currentCast_.label === cast.label; 511 return this.currentCast_.label === cast.label;
511 }.wrap(this)); 512 }.wrap(this));
512 513
513 if (!currentCastAvailable) 514 if (!currentCastAvailable)
514 this.onCurrentCastDisappear_(); 515 this.onCurrentCastDisappear_();
515 } 516 }
516 517
517 var item = new cr.ui.MenuItem(); 518 var item = new cr.ui.MenuItem();
518 item.label = loadTimeData.getString('VIDEO_PLAYER_PLAY_THIS_COMPUTER'); 519 item.label = loadTimeData.getString('VIDEO_PLAYER_PLAY_THIS_COMPUTER');
520 item.castLabel = '';
519 item.addEventListener('activate', this.onCastSelected_.wrap(this, null)); 521 item.addEventListener('activate', this.onCastSelected_.wrap(this, null));
520 menu.appendChild(item); 522 menu.appendChild(item);
521 523
522 for (var i = 0; i < casts.length; i++) { 524 for (var i = 0; i < casts.length; i++) {
523 var item = new cr.ui.MenuItem(); 525 var item = new cr.ui.MenuItem();
524 item.label = casts[i].friendlyName; 526 item.label = casts[i].friendlyName;
527 item.castLabel = casts[i].label;
525 item.addEventListener('activate', 528 item.addEventListener('activate',
526 this.onCastSelected_.wrap(this, casts[i])); 529 this.onCastSelected_.wrap(this, casts[i]));
527 menu.appendChild(item); 530 menu.appendChild(item);
528 } 531 }
532 this.updateCheckOnCastMenu_();
529 button.classList.remove('hidden'); 533 button.classList.remove('hidden');
530 }; 534 };
531 535
532 /** 536 /**
537 * Updates the check status of the cast menu items.
538 * @private
539 */
540 VideoPlayer.prototype.updateCheckOnCastMenu_ = function() {
541 var menu = document.querySelector('#cast-menu');
542 var menuItems = menu.menuItems;
543 for (var i = 0; i < menuItems.length; i++) {
544 var item = menuItems[i];
545 if (this.currentCast_ === null) {
546 // Playing on this computer.
547 if (item.castLabel === '')
548 item.checked = true;
549 else
550 item.checked = false;
551 } else {
552 // Playing on cast device.
553 if (item.castLabel === this.currentCast_.label)
554 item.checked = true;
555 else
556 item.checked = false;
557 }
558 }
559 };
560
561 /**
533 * Called when the current cast is disappear from the cast list. 562 * Called when the current cast is disappear from the cast list.
534 * @private 563 * @private
535 */ 564 */
536 VideoPlayer.prototype.onCurrentCastDisappear_ = function() { 565 VideoPlayer.prototype.onCurrentCastDisappear_ = function() {
537 this.currentCast_ = null; 566 this.currentCast_ = null;
538 this.currentSession_ = null; 567 this.currentSession_ = null;
539 this.controls.showErrorMessage('GALLERY_VIDEO_DECODING_ERROR'); 568 this.controls.showErrorMessage('GALLERY_VIDEO_DECODING_ERROR');
540 this.unloadVideo(); 569 this.unloadVideo();
541 }; 570 };
542 571
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
577 var initPromise = Promise.all( 606 var initPromise = Promise.all(
578 [new Promise(initVideos.wrap(null)), 607 [new Promise(initVideos.wrap(null)),
579 new Promise(initStrings.wrap(null)), 608 new Promise(initStrings.wrap(null)),
580 new Promise(util.addPageLoadHandler.wrap(null))]); 609 new Promise(util.addPageLoadHandler.wrap(null))]);
581 610
582 initPromise.then(function(results) { 611 initPromise.then(function(results) {
583 var videos = results[0]; 612 var videos = results[0];
584 player.prepare(videos); 613 player.prepare(videos);
585 return new Promise(player.playFirstVideo.wrap(player)); 614 return new Promise(player.playFirstVideo.wrap(player));
586 }.wrap(null)); 615 }.wrap(null));
OLDNEW
« no previous file with comments | « ui/file_manager/video_player/css/cast_menu.css ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698