OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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 * @fileoverview | 6 * @fileoverview |
7 * night-light-slider is used to set the custom automatic schedule of the | 7 * night-light-slider is used to set the custom automatic schedule of the |
8 * Night Light feature, so that users can set their desired start and end | 8 * Night Light feature, so that users can set their desired start and end |
9 * times. | 9 * times. |
10 */ | 10 */ |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 * (which is the slider bar). | 184 * (which is the slider bar). |
185 * @param {HTMLDivElement} knob Either one of the two knobs. | 185 * @param {HTMLDivElement} knob Either one of the two knobs. |
186 * @return {number} | 186 * @return {number} |
187 * @private | 187 * @private |
188 */ | 188 */ |
189 getKnobRatio_: function(knob) { | 189 getKnobRatio_: function(knob) { |
190 return parseFloat(knob.style.left) / this.$.sliderBar.offsetWidth; | 190 return parseFloat(knob.style.left) / this.$.sliderBar.offsetWidth; |
191 }, | 191 }, |
192 | 192 |
193 /** | 193 /** |
194 * Pads the given number |num| with leading zeros such that its length as a | 194 * Converts the time of day, given as |hour| and |minutes|, to its language- |
195 * string is 2. | 195 * sensitive time string representation. |
196 * @param {number} num | 196 * @param {number} hour The hour of the day (0 - 23). |
| 197 * @param {number} minutes The minutes of the hour (0 - 59). |
197 * @return {string} | 198 * @return {string} |
198 * @private | 199 * @private |
199 */ | 200 */ |
200 pad2_: function(num) { | 201 getLocaleTimeString_: function(hour, minutes) { |
201 var s = String(num); | 202 var d = new Date(); |
202 if (s.length == 2) | 203 d.setHours(hour); |
203 return s; | 204 d.setMinutes(minutes); |
| 205 d.setSeconds(0); |
| 206 d.setMilliseconds(0); |
204 | 207 |
205 return '0' + s; | 208 return d.toLocaleTimeString([], {hour: '2-digit', minute:'2-digit'}); |
206 }, | 209 }, |
207 | 210 |
208 /** | 211 /** |
209 * Converts the |offsetMinutes| value (which the number of minutes since | 212 * Converts the |offsetMinutes| value (which the number of minutes since |
210 * 00:00) to its string representation in the format 6:30 PM. | 213 * 00:00) to its language-sensitive time string representation. |
211 * @param {number} offsetMinutes The time of day represented as the number of | 214 * @param {number} offsetMinutes The time of day represented as the number of |
212 * minutes from 00:00. | 215 * minutes from 00:00. |
213 * @return {string} | 216 * @return {string} |
214 * @private | 217 * @private |
215 */ | 218 */ |
216 offsetMinutesToTimeString_: function(offsetMinutes) { | 219 offsetMinutesToTimeString_: function(offsetMinutes) { |
217 // TODO(afakhry): Check if these values need to be localized. | |
218 var hour = Math.floor(offsetMinutes / 60); | 220 var hour = Math.floor(offsetMinutes / 60); |
219 var amPm = hour >= 12 ? ' PM' : ' AM'; | |
220 hour %= 12; | |
221 hour = hour == 0 ? 12 : hour; | |
222 var minute = Math.floor(offsetMinutes % 60); | 221 var minute = Math.floor(offsetMinutes % 60); |
223 return hour + ':' + this.pad2_(minute) + amPm; | 222 |
| 223 return this.getLocaleTimeString_(hour, minute); |
224 }, | 224 }, |
225 | 225 |
226 /** | 226 /** |
227 * Handles changes in the start and end times prefs. | 227 * Handles changes in the start and end times prefs. |
228 * @private | 228 * @private |
229 */ | 229 */ |
230 customTimesChanged_: function() { | 230 customTimesChanged_: function() { |
231 var startOffsetMinutes = /** @type {number} */( | 231 var startOffsetMinutes = /** @type {number} */( |
232 this.getPref('ash.night_light.custom_start_time').value); | 232 this.getPref('ash.night_light.custom_start_time').value); |
233 this.startTime_ = this.offsetMinutesToTimeString_(startOffsetMinutes); | 233 this.startTime_ = this.offsetMinutesToTimeString_(startOffsetMinutes); |
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
440 */ | 440 */ |
441 onRightKey_: function(e) { | 441 onRightKey_: function(e) { |
442 e.preventDefault(); | 442 e.preventDefault(); |
443 var knobPref = this.getFocusedKnobPrefPathIfAny_(); | 443 var knobPref = this.getFocusedKnobPrefPathIfAny_(); |
444 if (!knobPref) | 444 if (!knobPref) |
445 return; | 445 return; |
446 | 446 |
447 this.incrementPref_(knobPref, 1); | 447 this.incrementPref_(knobPref, 1); |
448 }, | 448 }, |
449 }); | 449 }); |
OLD | NEW |