| OLD | NEW |
| 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 (function() { | 5 (function() { |
| 6 'use strict'; | 6 'use strict'; |
| 7 | 7 |
| 8 Polymer('track-list', { | 8 /** |
| 9 * @constructor |
| 10 * @extends {PolymerElement} |
| 11 */ |
| 12 var TrackListElement = function() {}; |
| 13 |
| 14 TrackListElement.prototype = { |
| 9 /** | 15 /** |
| 10 * Initializes an element. This method is called automatically when the | 16 * Initializes an element. This method is called automatically when the |
| 11 * element is ready. | 17 * element is ready. |
| 12 */ | 18 */ |
| 13 ready: function() { | 19 ready: function() { |
| 14 this.observeTrackList(); | 20 this.observeTrackList(); |
| 15 | 21 |
| 16 window.addEventListener('resize', this.onWindowResize_.bind(this)); | 22 window.addEventListener('resize', this.onWindowResize_.bind(this)); |
| 17 }, | 23 }, |
| 18 | 24 |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 99 | 105 |
| 100 // Invalid index | 106 // Invalid index |
| 101 if (this.tracks.length === 0) | 107 if (this.tracks.length === 0) |
| 102 this.currentTrackIndex = -1; | 108 this.currentTrackIndex = -1; |
| 103 else | 109 else |
| 104 this.generatePlayOrder(false /* no need to keep the current track */); | 110 this.generatePlayOrder(false /* no need to keep the current track */); |
| 105 }, | 111 }, |
| 106 | 112 |
| 107 /** | 113 /** |
| 108 * Invoked when 'tracks' property is changed. | 114 * Invoked when 'tracks' property is changed. |
| 109 * @param {Array.<TrackInfo>} oldValue Old value. | 115 * @param {Array.<AudioPlayer.TrackInfo>} oldValue Old value. |
| 110 * @param {Array.<TrackInfo>} newValue New value. | 116 * @param {Array.<AudioPlayer.TrackInfo>} newValue New value. |
| 111 */ | 117 */ |
| 112 tracksChanged: function(oldValue, newValue) { | 118 tracksChanged: function(oldValue, newValue) { |
| 113 // Note: Sometimes both oldValue and newValue are null though the actual | 119 // Note: Sometimes both oldValue and newValue are null though the actual |
| 114 // values are not null. Maybe it's a bug of Polymer. | 120 // values are not null. Maybe it's a bug of Polymer. |
| 115 | 121 |
| 116 // Re-register the observer of 'this.tracks'. | 122 // Re-register the observer of 'this.tracks'. |
| 117 this.observeTrackList(); | 123 this.observeTrackList(); |
| 118 | 124 |
| 119 if (this.tracks.length !== 0) { | 125 if (this.tracks.length !== 0) { |
| 120 // Restore the active track. | 126 // Restore the active track. |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 253 | 259 |
| 254 /** | 260 /** |
| 255 * Request to replay the current music. | 261 * Request to replay the current music. |
| 256 */ | 262 */ |
| 257 replayCurrentTrack: function() { | 263 replayCurrentTrack: function() { |
| 258 this.fire('replay'); | 264 this.fire('replay'); |
| 259 }, | 265 }, |
| 260 | 266 |
| 261 /** | 267 /** |
| 262 * Returns the current track. | 268 * Returns the current track. |
| 263 * @param {AudioPlayer.TrackInfo} track TrackInfo of the current track. | 269 * @return {AudioPlayer.TrackInfo} track TrackInfo of the current track. |
| 264 */ | 270 */ |
| 265 getCurrentTrack: function() { | 271 getCurrentTrack: function() { |
| 266 if (this.tracks.length === 0) | 272 if (this.tracks.length === 0) |
| 267 return null; | 273 return null; |
| 268 | 274 |
| 269 return this.tracks[this.currentTrackIndex]; | 275 return this.tracks[this.currentTrackIndex]; |
| 270 }, | 276 }, |
| 271 | 277 |
| 272 /** | 278 /** |
| 273 * Returns the next (or previous) track in the track list. If there is no | 279 * Returns the next (or previous) track in the track list. If there is no |
| (...skipping 23 matching lines...) Expand all Loading... |
| 297 if (newPlayOrder === -1 || newPlayOrder === this.tracks.length) | 303 if (newPlayOrder === -1 || newPlayOrder === this.tracks.length) |
| 298 return cyclic ? defaultTrackIndex : -1; | 304 return cyclic ? defaultTrackIndex : -1; |
| 299 | 305 |
| 300 var newTrackIndex = this.playOrder[newPlayOrder]; | 306 var newTrackIndex = this.playOrder[newPlayOrder]; |
| 301 console.assert( | 307 console.assert( |
| 302 (0 <= newTrackIndex && newTrackIndex < this.tracks.length), | 308 (0 <= newTrackIndex && newTrackIndex < this.tracks.length), |
| 303 'Insufficient TrackList.playOrder. New Play Order: ' + newPlayOrder); | 309 'Insufficient TrackList.playOrder. New Play Order: ' + newPlayOrder); |
| 304 | 310 |
| 305 return newTrackIndex; | 311 return newTrackIndex; |
| 306 }, | 312 }, |
| 307 }); // Polymer('track-list') block | 313 }; // TrackListElement.prototype for 'track-list' |
| 314 |
| 315 Polymer('track-list', TrackListElement.prototype); |
| 308 })(); // Anonymous closure | 316 })(); // Anonymous closure |
| OLD | NEW |