Chromium Code Reviews| Index: ui/file_manager/audio_player/elements/control_panel.js |
| diff --git a/ui/file_manager/audio_player/elements/control_panel.js b/ui/file_manager/audio_player/elements/control_panel.js |
| index e4de2f68a077ac742d1dd27c04524ea519e76412..0379ea6c8845188faa156a178e1a94eea43e56ea 100644 |
| --- a/ui/file_manager/audio_player/elements/control_panel.js |
| +++ b/ui/file_manager/audio_player/elements/control_panel.js |
| @@ -26,21 +26,84 @@ |
| } |
| /** |
| - * Converts the time into human friendly string. |
| - * @param {number} time Time to be converted. |
| - * @return {string} String representation of the given time |
| - */ |
| - function time2string(time) { |
| - return ~~(time / 60000) + ':' + ('0' + ~~(time / 1000 % 60)).slice(-2); |
| - } |
| - |
| - /** |
| * @constructor |
| * @extends {PolymerElement} |
| */ |
| var ControlPanelElement = function() {}; |
| ControlPanelElement.prototype = { |
| + is: 'control-panel', |
| + |
| + properties: { |
| + /** |
| + * Flag whether the audio is playing or paused. True if playing, or false |
| + * paused. |
| + */ |
| + playing: { |
| + type: Boolean, |
| + notify: true |
| + }, |
| + |
| + /** |
| + * Current elapsed time in the current music in millisecond. |
| + */ |
| + time: { |
| + type: Number, |
| + value: 0, |
| + notify: true |
| + }, |
| + |
| + /** |
| + * Total length of the current music in millisecond. |
| + */ |
| + duration: { |
| + type: Number, |
| + value: 0, |
| + notify: true |
|
yawano
2015/06/10 05:47:48
notify: false? Since this is property is bound as
fukino
2015/06/10 06:24:03
Yes, you are right. Done.
|
| + }, |
| + |
| + /** |
| + * Whether the shuffle button is ON. |
| + */ |
| + shuffle: { |
| + type: Boolean, |
| + notify: true |
| + }, |
| + |
| + /** |
| + * Whether the repeat button is ON. |
| + */ |
| + repeat: { |
| + type: Boolean, |
| + notify: true |
| + }, |
| + |
| + /** |
| + * The audio volume. 0 is silent, and 100 is maximum loud. |
| + */ |
| + volume: { |
| + type: Number, |
| + notify: true |
| + }, |
| + |
| + /** |
| + * Whether the expanded button is ON. |
| + */ |
| + expanded: { |
| + type: Boolean, |
| + notify: true |
| + }, |
| + |
| + /** |
| + * Whether the volume slider is expanded or not. |
| + */ |
| + volumeSliderShown: { |
| + type: Boolean, |
| + value: false, |
|
yawano
2015/06/10 05:47:48
nit: Why some properties have default value and so
fukino
2015/06/10 06:24:03
Basically, it was based on whether we have default
yawano
2015/06/10 06:46:18
SGTM.
|
| + notify: true |
| + } |
| + }, |
| + |
| /** |
| * Initializes an element. This method is called automatically when the |
| * element is ready. |
| @@ -57,64 +120,6 @@ |
| }, |
| /** |
| - * Model object of the Audio Player. |
| - * @type {AudioPlayerModel} |
| - */ |
| - model: null, |
| - |
| - /** |
| - * Invoked when the model changed. |
| - * @param {AudioPlayerModel} oldValue Old Value. |
| - * @param {AudioPlayerModel} newValue New Value. |
| - */ |
| - modelChanged: function(oldValue, newValue) { |
| - this.volumeSlider.model = newValue; |
| - }, |
| - |
| - /** |
| - * Current elapsed time in the current music in millisecond. |
| - * @type {number} |
| - */ |
| - time: 0, |
| - |
| - /** |
| - * String representation of 'time'. |
| - * @type {number} |
| - * @private |
| - */ |
| - get timeString_() { |
| - return time2string(this.time); |
| - }, |
| - |
| - /** |
| - * Total length of the current music in millisecond. |
| - * @type {number} |
| - */ |
| - duration: 0, |
| - |
| - /** |
| - * String representation of 'duration'. |
| - * @type {string} |
| - * @private |
| - */ |
| - get durationString_() { |
| - return time2string(this.duration); |
| - }, |
| - |
| - /** |
| - * Flag whether the volume slider is expanded or not. |
| - * @type {boolean} |
| - */ |
| - volumeSliderShown: false, |
| - |
| - /** |
| - * Flag whether the audio is playing or paused. True if playing, or false |
| - * paused. |
| - * @type {boolean} |
| - */ |
| - playing: false, |
| - |
| - /** |
| * Invoked when the next button is clicked. |
| */ |
| nextClick: function() { |
| @@ -174,7 +179,32 @@ |
| this.volumeContainer.style.visibility = 'hidden'; |
| } |
| }, |
| + |
| + /** |
| + * Converts the time into human friendly string. |
| + * @param {number} time Time to be converted. |
| + * @return {string} String representation of the given time |
| + */ |
| + time2string_: function(time) { |
| + return ~~(time / 60000) + ':' + ('0' + ~~(time / 1000 % 60)).slice(-2); |
| + }, |
| + |
| + /** |
| + * Computes state for play button based on 'playing' property. |
| + * @return {string} |
| + */ |
| + computePlayState_: function(playing) { |
| + return playing ? "playing" : "ended"; |
| + }, |
| + |
| + /** |
| + * Computes style for '.filled' element of progress bar. |
| + * @return {string} |
| + */ |
| + computeProgressBarStyle_: function(time, duration) { |
| + return 'width: ' + (time / duration * 100) + '%;'; |
| + } |
| }; |
| - Polymer('control-panel', ControlPanelElement.prototype); |
| + Polymer(ControlPanelElement.prototype); |
| })(); // Anonymous closure |