| 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 Element which shows toasts. | 6 * @fileoverview Element which shows toasts. |
| 7 */ | 7 */ |
| 8 cr.define('bookmarks', function() { | 8 cr.define('bookmarks', function() { |
| 9 | 9 |
| 10 var ToastManager = Polymer({ | 10 var ToastManager = Polymer({ |
| 11 is: 'bookmarks-toast-manager', | 11 is: 'bookmarks-toast-manager', |
| 12 | 12 |
| 13 properties: { | 13 properties: { |
| 14 duration: { | 14 duration: { |
| 15 type: Number, | 15 type: Number, |
| 16 value: 0, | 16 value: 0, |
| 17 }, | 17 }, |
| 18 | 18 |
| 19 /** @private */ | 19 /** @private */ |
| 20 open_: { | 20 open_: { |
| 21 type: Boolean, | 21 type: Boolean, |
| 22 reflectToAttribute: true, | 22 reflectToAttribute: true, |
| 23 }, | 23 }, |
| 24 | 24 |
| 25 /** @private */ | 25 /** @private */ |
| 26 showUndo_: Boolean, | 26 showUndo_: Boolean, |
| 27 }, | 27 }, |
| 28 | 28 |
| 29 /** @private {function(number)} */ | 29 /** @private {bookmarks.TimerProxy} */ |
| 30 clearTimeout_: window.clearTimeout.bind(window), | 30 timerProxy_: new bookmarks.TimerProxy(), |
| 31 | |
| 32 /** @private {function((Function|null|string), number)} */ | |
| 33 setTimeout_: window.setTimeout.bind(window), | |
| 34 | 31 |
| 35 /** @private {number|null} */ | 32 /** @private {number|null} */ |
| 36 hideTimeout_: null, | 33 hideTimeoutId_: null, |
| 37 | 34 |
| 38 /** @override */ | 35 /** @override */ |
| 39 attached: function() { | 36 attached: function() { |
| 40 assert(ToastManager.instance_ == null); | 37 assert(ToastManager.instance_ == null); |
| 41 ToastManager.instance_ = this; | 38 ToastManager.instance_ = this; |
| 42 }, | 39 }, |
| 43 | 40 |
| 44 /** @override */ | 41 /** @override */ |
| 45 detached: function() { | 42 detached: function() { |
| 46 ToastManager.instance_ = null; | 43 ToastManager.instance_ = null; |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 82 * @param {boolean} showUndo Whether the undo button should be shown. | 79 * @param {boolean} showUndo Whether the undo button should be shown. |
| 83 * @private | 80 * @private |
| 84 */ | 81 */ |
| 85 showInternal_: function(showUndo) { | 82 showInternal_: function(showUndo) { |
| 86 this.open_ = true; | 83 this.open_ = true; |
| 87 this.showUndo_ = showUndo; | 84 this.showUndo_ = showUndo; |
| 88 | 85 |
| 89 if (!this.duration) | 86 if (!this.duration) |
| 90 return; | 87 return; |
| 91 | 88 |
| 92 if (this.hideTimeout_ != null) { | 89 if (this.hideTimeoutId_ != null) |
| 93 this.clearTimeout_(this.hideTimeout_); | 90 this.timerProxy_.clearTimeout(this.hideTimeoutId_); |
| 94 this.hideTimeout_ = null; | |
| 95 } | |
| 96 | 91 |
| 97 this.hideTimeout_ = this.setTimeout_(function() { | 92 this.hideTimeoutId_ = this.timerProxy_.setTimeout(function() { |
| 98 this.open_ = false; | 93 this.open_ = false; |
| 99 this.hideTimeout_ = null; | 94 this.hideTimeoutId_ = null; |
| 100 }.bind(this), this.duration); | 95 }.bind(this), this.duration); |
| 101 }, | 96 }, |
| 102 | 97 |
| 103 hide: function() { | 98 hide: function() { |
| 104 this.open_ = false; | 99 this.open_ = false; |
| 105 }, | 100 }, |
| 106 | 101 |
| 107 /** @private */ | 102 /** @private */ |
| 108 onUndoTap_: function() { | 103 onUndoTap_: function() { |
| 109 // Will hide the toast. | 104 // Will hide the toast. |
| 110 this.fire('command-undo'); | 105 this.fire('command-undo'); |
| 111 }, | 106 }, |
| 112 }); | 107 }); |
| 113 | 108 |
| 114 /** @private {?bookmarks.ToastManager} */ | 109 /** @private {?bookmarks.ToastManager} */ |
| 115 ToastManager.instance_ = null; | 110 ToastManager.instance_ = null; |
| 116 | 111 |
| 117 /** @return {!bookmarks.ToastManager} */ | 112 /** @return {!bookmarks.ToastManager} */ |
| 118 ToastManager.getInstance = function() { | 113 ToastManager.getInstance = function() { |
| 119 return assert(ToastManager.instance_); | 114 return assert(ToastManager.instance_); |
| 120 }; | 115 }; |
| 121 | 116 |
| 122 return { | 117 return { |
| 123 ToastManager: ToastManager, | 118 ToastManager: ToastManager, |
| 124 }; | 119 }; |
| 125 }); | 120 }); |
| OLD | NEW |